Recently, we were discussing our clients reasons for needing help with their software development functions.Â As the "need" stories and examples flew, we found the same few words kept coming up again and again: Failure, Fear of Failure, Control and Value. Moreover, it became clear that we were talking about different states that the same organization could find itself in at different times and in response to different internal and external changes. With apologies to Maslow, we created the Harris Hierarchy of Software Development Needs: As with Maslow's Hierarchy, software development group's can move up and down through the tiers as their circumstances change.Â Broadly, the more mature a software development organization is (Our Tier 4 or "Value" Tier), the more time it will spend being concerned about delivering value.Â Immature software development groups (Tier 1 - "Failure") lurch from failure to failure dependent on heroes to pull success from the teeth of failure by working ridiculous hours or renegotiating the scope, duration or price of the project. Between these extremes, the Tier 2 SD organization experiences frequent, apparently random failures because they do not have repeatable processes - they continually operate in "Fear of Failure" mode in which estimates have ranges of +/- 50% or more.Â Our Tier 3 "Control" SD organization is mature enough to have repeatable processes but has not dealt with the governance issues that ensure it continues to deliver value to its internal (and external) clients. You can think of software development maturity in terms of CMMI, "Plan, measure, do" or any other framework you'd care to choose. It is important to recognize that SD organizations in each Tier are benefiting from our help but that the nature of the goals are very different! If you work in a software development group or you are managing outsourced software development, Which Tier are you in right now? What do you need to do to get to the next tier in the Harris Hierarchy of Software Development Needs?