The Ability to Improve
(while this article contains many general ideas, it is written from the perspective of product development.) If you don’t continually improve, you soon lose the… Read More »The Ability to Improve
(while this article contains many general ideas, it is written from the perspective of product development.) If you don’t continually improve, you soon lose the… Read More »The Ability to Improve
There is a popular quote in medical circles:
When you hear hoofbeats, think of horses, not zebras. — Dr. Theodore Woodward
I recently posted several debugging experiences where it was beneficial to examine simple scenarios before complex ones. Below are a few more …
Read More »Think Horses, not Zebras (Part 2)(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:
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 ZebrasSee 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 TrajectoryAs developers, we have many options for programming languages. On one hand, it is great to have choices. On the other hand, it can be… Read More »Go for IIoT Systems
With the advent of the browser, cloud, embedded Linux systems, and networked microcontrollers, distributed systems are everywhere. There are many models for communication in distributed… Read More »Layered, Event, and Data-Centric Architectures in Distributed IoT Systems
Business contracts are often executed when two companies work together. At the most basic level, a contract should describe a common understanding between the two… Read More »Business Contracts
The fire of information technology — will you use it: to create or consume? to comfort or torment? for education or entertainment? as a tool… Read More »Technology
Recently, we brought up a new PCB (printed circuit board) a customer had designed based on the Microchip ATSAMA5D27C-D1G processor. We encountered several interesting challenges.
Read More »Adventures with a ATSAMA5D27 board