Marketing: Engineered to Fail
"We don't have time to do it right, but we have time to do it thrice."
In commercial software development, marketing typically drives the requirements of the next product (or product revision). These requirements typically fall into one of three categories:
- On Time (ie. quicker time to market)*
- In-Budget (ie. fewer resources for development)
However, the failing of a project starts right here in the beginning. The decision makers (we'll call them generally "management" for simplicity, even though it may refer to people in marketing and/or engineering at various times) typically fix the delivery date, won't allow for more developers (which requires more funding), and won't budge on features.
This eventually leads to a problem where the project is incomplete, over-budget, and perpetually 6-months late. Curiously, the common management solution to this problem the next time around is to continue to demand an uncompromised release date, full features, and a "commitment from the team" (which translates to long hours for engineers, due to mis-management).
The solution to this is good management from the beginning. But what is "good management"? There's many books on this subject with no definitive answers. It is, unfortunately, one of those areas that's a little more art than science. But, much like software development, that doesn't mean we can't take a systematic approach to it.
No matter what other approach you take, the most important step is going to be feedback: the process of improvement. There must be mechanisms in place in a company to review what was done before and for people to ask "how can we make this better?" In addition, people (from various levels of the organization) must be able to answer that question openly and honestly. In addition, for this to work, employees must feel like their input is actually valued. It's not enough to gather people's feedback. But the company must be doing this with the honest intention of improving it's own processes.
Stay tuned for my guide to managing technology development...