Revealing the Shocking Truth Behind IT Software Development: Project Management Exposed - Part 1
The 💩 I have seen
With 37 years of experience crafting software products of all sizes, I have witnessed a multitude of shortcomings in the industry. However, the most persistent issue I've encountered is the flawed approach to managing software projects.
Software Development Lifecycles have taken a project approach more comparable to traditional stage-gated projects, such as construction projects, where each stage has well-defined objectives, inputs, and outputs. However, the nature of software development is fundamentally different, and it is more accurate to compare it to a research and development (R&D) project.
One reason for this is the inherent unpredictability of software development. Unlike physical projects, software projects involve solving intricate problems that may not have definite answers. Additionally, the ever-evolving technology landscape brings about new information and tools during the project, leading to an exploratory and iterative approach that adapts to change and uncertainty.
Another crucial aspect is the significance of feedback in software development. Unlike stage-gated projects, where feedback is only received at the end through testing or user acceptance testing, software development demands feedback throughout the entire project. This is due to the iterative process of design, implementation, testing, and refinement that software development entails. Feedback guarantees that the software satisfies the stakeholders' requirements and expectations.
Lastly, software development projects often involve collaboration between various disciplines, including designers, developers, and business stakeholders. This collaboration is crucial in creating software that meets everyone's needs. The cooperative nature of software development makes R&D approaches, such as agile methodologies, more effective than stage-gated approaches, which can result in isolated work and slow down development. The lack of continuous feedback in a stage-gated approach increases risk and hinders management's ability to correct issues early.
In conclusion, the nature of software development is fundamentally different from stage-gated projects, and it is more accurate to compare it to a research and development project. Software development projects are characterized by uncertainty, the importance of feedback, and the need for collaboration between multiple disciplines. By recognizing these differences, software development teams can better understand their challenges and adopt more effective approaches to software development.
As professionals, we must break the misconception that a new complex software product can be built perfectly on the first try using a stage-gated approach.
References:
Agile Software Development: Principles, Patterns, and Practices, by Robert C. Martin.
The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses, by Eric Ries.
The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win, by Gene Kim, Kevin Behr, and George Spafford.
Cynefin Framework: The Cynefin Framework, by The Cynefin Co (previously Cognitive Edge).