In the past several years several new software development methodologies have been developed and embraced by companies of all sizes and maturities. Some of them are Agile, Kanhan, and Extreme Programming. The underlying approach is to develop incremental iterations of a product with near constant involvement of the project “owner” or customer. This highly flexible approach allows changes to be made quickly as individual functions are developed. With rapid circuit board, soft tool, and 3D printing capabilities becoming rapidly available, the same interative process is being applied to hardware design.
There is no question that these techniques have been successful. If, for no other reason, than the near constant owner or customer feedback minimizes misunderstandings that easily occur between developers and users. There are, however, some potential downsides to these rapid development approaches that need to be constantly considered. Three analogies help to illustrate this point.
First, most people have experienced the situation that they go to sleep with a pressing problem on their mind that they may have spent the day or even weeks wrestling with, but have not been able to solve. Upon awakening the next morning, a crystal clear solution or path to resolution seems to appear. We say that the subconscious mind had worked out the issue. Without discussing the actual mechanism involved (which is well-beyond my limited knowledge), the overall process seems obvious. The issue was resolved through the use of additional resources (the subconscious) that were applied to the problem. Perhaps those resources approached the issue differently or perhaps they were not burdened with other activities.
The second analogy, related to the first, involves fine wine. To produce fine wine, the right combination of grapes and other ingredients, the soil, and the weather all play a critical role in its development. But so does time. The natural aging process allows all of the elements to interact appropriately. There is no substitute for the slow interaction.
The third analogy is a common occurrence in virtually every company. It involves the response (or reaction) to an unforeseen event. When it occurs, a group is quickly formed to discuss the issue, and a response is quickly formulated. Unfortunately, with the laser-beam focus on the new issue, the implications that the new response may have on other activities is not considered. We politely refer to this situation with the term “unintended consequences.” A more accurate description might be “poor or inadequate planning.”
In all three analogies, the common element is time. With “extra” time, considerations can be given to issues and events that may otherwise be neglected. These observations are not intended to be an indictment on the new fast-paced development methodologies. Instead, they suggest that it is reasonable and prudent to spend some reflective time to help ensure that overall, not just short-term, incremental, requirements are being met. The articles in this section, “Good Path, Wrong Destination” and “Fix It Later” discuss some of the impacts of the pressure for speedy development and product releases.
Perhaps the highway sign of “Slow Down and Live” has a place in product development.