One of the major factors that impact the success rate of a project is the development methodology that would be applied from the inception to the end of the project.
The Waterfall methodology (often known as the “traditional approach”) has been in existence for over 30 years. The sequential phases in Waterfall model are requirements gathering and analysis; design; development; integration and testing; deployment of system and maintenance. Once each phase is completed the next phase will start in a sequence and the scope of the project will be sealed off before development work starts, while the deadline remains fixed.
However, studies have proven that nearly 80% of complex waterfall projects tend to fail due to the following reasons:
● Defining all the requirements at the start of the project is quite difficult and there’s a 60% tendency for the requirements to change while the project progresses.
● Since the development happens in a linear approach, it’s very hard to manage change while also keeping up with the fixed deadlines.
● Schedule risks are higher since there’s less certainty that the development would be completed until the end of the project.
● Since testing is conducted late in the project, the architecture and design cannot be validated early on.
● When the project gradually starts to run out of time and money, scheduled time for the testing phase is usually cut short and this could usually result in a low quality product release to the customer.
● There’s an overall product risk since the customer is only able to see the releases towards the end of each milestone. Hence, there’s no way to guarantee if the right thing is been built and it’s too late to make any changes.
● All of these factors demotivates the project team and therefore there’s a huge risk towards people leaving the project.
New Approach to Software Development: Agile Development
Throughout the years of learning from the tough times faced in delivering software, 17 independent-minded software practitioners met together in February, 2001.
They uncovered better ways of developing and delivering software by establishing the Agile Manifesto around these four main values:
1. Individuals and interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
Agile Development is an umbrella term used for several iterative and incremental software development methodologies such as Extreme Programming (XP), Scrum, Crystal, Dynamic Systems Development Method (DSDM), Lean Development, and Feature-Driven Development (FDD). All of these methodologies share the common values of the Agile Manifesto.
Overview of the Scrum Process
Considering some of these Agile software development methodologies, most projectized organizations have begun to embrace Scrum as they understand the many practical benefits.
In 1993 when Jeff Sutherland created the scrum process, he got the term from an analogy that was published in the Harvard Business Review study by Takeuchi and Nonaka in 1986 which compared it with the high performing, cross-functional team formation most often used by rugby teams.
Scrum focuses on delivering a “potentially shippable product” which comprises of complete functional components within time-boxed iterations called “Sprints.” The three main roles in Scrum include the – Product Owner, Scrum Master and Scrum Team.
The Product Owner focuses on setting up a Product Backlog that includes a list of deliverables that are prioritized based on business value and cost to develop.
Each sprint is time-boxed for a fixed period (most commonly in weeks). The scrum master and scrum team come up with the sprint backlog by taking the most high priority items from the product backlog.
If all planned work found in the sprint backlog cannot be completed, and then work is reprioritized and taken up for future sprint planning.
Once the work in each sprint has been completed, it would be released so that it can be reviewed and evaluated by the product owner together with the scrum master and scrum team.
All feedback based on walkthroughs of the system are taken at the end of each sprint so that they can be taken up as improvements when planning future sprints.
Courtesy of: Kenneth S. Rubin and Innolution, LLC. (2012)
Benefits of applying Scrum in Software Development Projects
● Improved product quality – The “Definition of Done” is established for development, testing, integration, and documentation related activities for the scrum team to follow. Acceptance criteria are established for all product features by the product owner. Releases provided to the product owner at the end of each sprint ensure that product has been reviewed and feedback is taken to improve the product continually.
● Better team moral – The project team is highly involved in the scrum process in providing estimations and ideas towards the work that is conducted in a planned sprint. Furthermore, once a sprint is completed the team is able to provide their feedback for improvements. Since all the members of the team are highly involved in creating the best possible product, this builds a higher sense of achievement for the entire team and helps to lift the morals of all the members.
● Reduced time to market – Scrum has proven to deliver value to customers 40% faster than more traditional methods. Requirements are elaborated progressively by the dedicated product owner according to the highest priority so that clarifications can be taken real time. At the end of each sprint, deliverables relating to the specific items taken up for a particular sprint can be then shipped to the customer.
● Increased customer satisfaction – Customers are geared closer into the scrum process and given more responsibility as at times they play the Product Owner role and this helps them to provide better feedback. This also improves collaboration towards what exactly is required in the end product.
● Increased return on investment (ROI) – Since the time to market is reduced, scrum projects tend to receive a higher ROI. Furthermore, since changes or improvements come early in the process, the overall cost for changes reduces too.
● Better visibility of progress – In a scrum project, there’s a higher level of transparency at any given time to the entire team as well as the various stakeholders. In the daily scrum stand-up meeting, each member provides an update of what has been completed the previous day and what they wish to accomplish during the course of the day, together with any impediments. Progress tracking is done on the burn down chart so that the entire team has an idea about the amount of work that is left to complete in order to accomplish the sprint goals. The sprint retrospective meetings allow the team to express what they need to start doing, what they are doing well and anything that needs to be stopped.
There are many more benefits of scrum that makes it an ideal model for professionals to follow in projectized organizations.
Mastering Agile with TinkTank™!
Our experienced Agile coaches can help coach your team and support you throughout the process. Our coaches have helped organisations to solve the challenges associated with product development in larger, more complex enterprises besides leading major projects and Agile transformations in many global enterprises. Drop us an email at firstname.lastname@example.org for further information on how we can assist you.