Skip to content

Blog

Why Open Source for Product Development

(this topic is also discussed in a podcast episode)

One of the paradoxes in product development is Open Source. How can you personally or as a company benefit from participating in Open Source projects? Why should you share your great ideas and code? How can you build a business or a career by giving things away? How can an open-source project be a reliable supplier without contractual guarantees? Most successful technology companies today participate in open-source projects. Why do they do this?

Open source is difficult to fully understand and much has been said about it. There are many approaches to licensing and funding. Many question the equity and sustainability. Many get bogged down in ethical, moral, and political arguments. There are messy problems that don’t seem to have good answers. But we need to go deeper and examine the core issues of why companies are turning to open-source.

We will consider several product development perspectives:

  • Our motivation is to produce something of value that society can use and benefit from.
  • Software technology is advancing at a rapid rate of change.
  • Technology in modern systems is increasingly complex.
  • How can we maintain some level of control over the resources we use to ensure they will meet our needs?
  • And how does organizational culture impact our ability to deal with these issues and build modern systems?
Read More »Why Open Source for Product Development

Think Horses, not Zebras

There is a popular quote in medical circles:

When you hear hoofbeats, think of horses, not zebras. — Dr. Theodore Woodward

“Zebra” is the American medical slang for arriving at a surprising, often exotic, medical diagnosis when a more commonplace explanation is more likely.1 What does this have to do with product development? Like the medical profession, we often diagnose problems — we call it debugging. Below are three recent cases where I would have been helped by applying this approach a little more rigorously.

Read More »Think Horses, not Zebras

The Technology Trajectory

See also a podcast episode where we discuss this topic.

Modern systems require the integration of technology, often from many sources. This can come in the form of processors, integrated circuits, operating systems, open-source software components, databases, messaging systems, cloud infrastructure, programming languages, build systems, frameworks, etc. All technology follows a trajectory — an example is shown below. The timeline may be short or long. Your usability threshold may be low or high, sloped right or left, etc. But the fact remains that most technology will eventually be replaced by something newer. We can debate whether or not newer is better, but the fact remains that time marches on.

Read More »The Technology Trajectory

Reflections on KiCad and EDA Tools

A recent interview with a KiCad developer prompted some reflection on KiCad and EDA (electronic design automation) tools in general. Below are samples of several PCB (printed circuit board) designs, created with KiCAD, and implemented as part of the SimpleIoT project in the last couple months.

The experience has been excellent. Above all, the tool is very fast, efficient to use, and stable. Schematic and PCB integration works well enough, and routing and copper pours are easy. Switching between inches and millimeters can be done on the fly. The KiCad library has many parts in it, and other organizations, such as DigiKey, Seeed, SnapEDA, and Ultra Librarian are also providing libraries. If a KiCad symbol/footprint for a part is not already available, it is relatively easy to create new symbols and footprints as needed. There is a good KiCad support forum. KiCad is a pleasure to use and production-ready for standard PCB designs.

Read More »Reflections on KiCad and EDA Tools