Innovation
Over the past decade general development practices have drastically changed across many an industry, and it has particularly evolved in the IT sector. These days’ businesses are opting to use “Agile” methodology over the classic “Waterfall” process that we are more than familiar with. But what exactly is agile development, and why are companies thriving on this type ofmethodology?
First of all let’s go back to the beginning to why agile came about in the first place. Its manifestation came from the need to perfect the development process, after too many projects were failing during production. Professionals in the field felt that there must be an easier method of development, than the typical waterfall method that derived from the manufacturing industry. Agile became a new method that could allow experts to revisit the different stages of development at any point in time.
As an insight….
By implementing Agile methodology meant there was a specific type of Rapid Application Development. But what is the difference between Waterfall and Agile?
The Waterfall model is a sequential (non-iterative) design process, in which progress is seen as flowing steadily downwards (like a waterfall).The waterfall model maintains that one should move to a phase only when its preceding phase is reviewed and verified.
The phases of the Waterfall model includes:
1. System Engineering
2. Analysis
3. Design
4. Coding or Development
5. Testing
6. Production/implementation
7. Maintenance
Taking a step forward & then taking steps backwards is hard, and can make changes prohibitively costly.
AGILE PROCESS
Agile methodology is around leveraging Iterative processes to ensure you have the focus to get your product ready.
Its four key values are around:
• People rather than processes
• Product over documentation
• Working together over Admin Paper Work
• Flexibility and agility for changes during project work
There is also a sub type of Agile development that is often used which is referred to as Scrum Agile. The Scrum process consists of Planning, a Sprint cycle which is a block of work, and the eventual closure.Scrum is based on the principles and values of The Agile Manifesto (http://agilemanifesto.org/principles.html),and has three roles:
- Product Owner
- Scrum Master
- Team
So Scrum in effect is around the input of planning & high level design, followed by Scrum Cycle or Cycles depending on the project, till the point your product is ready for the market.
Now you know the difference between both Waterfall and Agile methodology, let’s have a look at some of the positives and negatives of both.
Waterfall Positives:
- Developers and clients agree on deliverables at an early stage
- Progress is easy to measure as scope is known and fixed
- Different resources with different skill sets can be applied at different times in the development lifecycle.
- After the requirements stage the client’s involvement is not necessary, so time spent by the client is less.
Waterfall Negatives:
- Everything relies on the accuracy of the requirements – if the specific details needed are not there at the beginning then this will cause issues further down the line
- Sometimes the customer may not even see the completed product or development until completion thus having no time to give feedback previously in case something was not as required. Imagine, a project going on for 3 months & the client is not able to see anything.
Agile Positives
- The customer has frequent opportunities to see the work being produced, and provides their comments, feedback and input.
- Through working with the team the customer gains a great working relationship, and a high sense of ownership of the project, and in this way the team can provide suggestions, inputsand ideas about the product as well.
- Agile is the best methodology to use if the application needs to go to market quickly – you can create an Minimum Viable Product and complete in subsequent phases
- As the client is heavily involved the project tends to become more user focused, and usually the gaps which are found later on when the product goes live, can be found earlier on.
Agile Negatives:
- If a customer doesn’t have the motivation or time for the project this can cause issues
- Because Agile focuses on time-bound delivery and frequent changes on priorities, it’s possible that some items set for delivery will not be completed within the allotted timeframe.
- Teams either need to be in the same physical location or need to have a highly developed project management tool, to work with proper communication channels.
So as you can see although Agile has a few negative factors, it is still highly favourable for companies in the IT industry around the globe. With Agile in place you can expect to deliver rapid application development, with a solid B2C relationship, which in turn will safeguard the future of your business!