Email: software [at] flexss [dot] co [dot] uk
The Art of Developing a Good Software Process
Zen and the Art of Developing a Good Software Process
This article is one of our "zen series" software engineering articles, inspired by the Zen and the Art of Mororcycle Maintenance book.
Some definitions:
The importance of using the most appropriate software development process
Common Software Development Methodologies and Related Processes

V Model Development methodology
May be thought of as an extension of the waterfall model, it still breaks the implementation down into discrete phases, it recognises that there is feedback from testing that feeds in at the requirements level, it also shows at each stage the abstraction from the implementation. This is also a type of “top down” approach.

Spiral development methodology

Iterative development methodology

Agile Development Methodology

Software Methodologies – Associated Processes , Pros and Cons
Waterfall Software Development Methodology
| Associated Processes | Methodology Pros | Methodology Cons |
|
Typically company standards, or large organisation standards.
e.g. DoD 2716 (Us Milatary standard) plus other formal government standards for large projects from 1970s and 1980s.
|
• Easy to understand
• Top level management easy, as simple defined cut off points in process.
• Good for small projects with well understood requirements.
• Customers understand it!
• Good for implementation off load if requirements are fully documented and understood.
• Staff can be experts in a single process stage.
|
• Changing requirements, or improvements in requirement understanding not easily catered for.
• Working software is seen late on.
• High risk and uncertainty especially on large programmes.
|
V-Model Software Development Methodology
| Associated Processes | Methodology Pros | Methodology Cons |
|
Typically company standards, rather than popularised process.
|
• Easy to understand
• Deliverables easily defined for each stage.
• Testing considered fairly early, improves likelihood of success.
• Top level management relatively easy as stages are rigid.
• Customers can understand the process and relate to progress reports.
• Staff can be experts in a single process stage.
|
• Changing requirements can be expensive to accommodate.
• No focus on early prototyping or de-risking
• High risk on large programmes.
• Working code seen late on.
|
Spiral Software Development Methodology
| Associated Processes | Methodology Pros | Methodology Cons |
|
Tailored UP (Unified Process) e.g. Rational Unified Process (Trade Marked by IBM) Clean Room
|
• Easy to understand
• Plenty of risk analysis, makes this attractive for “high-risk” or cutting edge projects.
• Suits large projects and mission /safety critical software development.
• Working software seen early.
|
• Not suitable for small projects, due to admin cost per cycle.
• Hard to estimate costs and timeframe, especially if full scope of requirements and their relative risk is not known up front.
• Tendency to do the easy stuff first must be overcome.
|
Iterative Software Development Methodology
| Associated Processes | Methodology Pros | Methodology Cons |
|
Tailored UP (Unified Process) e.g. Rational Unified Process (Trade Marked by IBM) Clean Room, Internal Company Standards
|
• Combines the well understood waterfall model with iterations, making change management easier.
• Can suit large projects, especially those where payment milestones can be tied to iteration definitions.
• Working software can be seen early.
• Working software seen early.
• Teams can be stage based, rather than functional area based. Stage off-load is theoretically possible
|
• No overlap between phases, leads to teams specialised on stage rather than function – good communication is essential.
• Dependency on previous stage, means scheduling difficult when things go wrong.
• Tendency to do the easy stuff first must be overcome.
|
Agile Software Development Methodology
| Associated Processes | Methodology Pros | Methodology Cons |
|
Agile Data, Agile Unified Process (AUP), SCRUM, AMDD
|
• Combines the well understood waterfall model with iterations, making change management easier.
• Adaptive to meet stakeholders needs.
• Working software is seen early.
• Hybrid between top-down and bottom-up development.
• Adaptive and responsive to requirements changes.
• Focuses on value to the stakeholders.
• Working functionality prioritised.
• Defines guiding principles and development roles.
|
• Means different things to different people, need to redefine the core agile principles in terms of the stakeholders interests up front.
• Less well understood, often misunderstood, can be hard to attain acceptance of this process from the customer.
• Harder to manage, but applying the appropriate process with the methodology helps.
• Difficult to explain to formal organisations.
• Principles and process does not easilly map onto safety / mission critical standards for software development.
|
Process Selection and Process Adaptation
final word....
The author (Rob Harwood-Smith) has been developing software and managing projects and teams for more years than he cares to mention, his experience ranges from embedded safety critical software, large scale database systems and also to custom business software solutions. After a few years as a software consultant Rob joint founded Flexible Software Solutions.
