Development Delivery Methodologies
Category : Delivery Methodology
The Waterfall flavour of development methodology is adopted where the requirements can be frozen during the requirements gathering phase of the project. When there are changes required, the change management process is invoked.
This model is typically used for non-eBusiness development projects or when the functionality extension to existing application is smaller in scope, complexity and has minimal risks associated with it. Characteristics of projects that use the waterfall model include:
- Clear requirements definition
- Shorter project duration
- Design / technology to be used are of a proven / mature nature
The Incremental development methodology is used in project situations where most of the project requirements are known upfront. In this model, organisation collects most of the requirements. The technical architecture is finalised up-front. The development is performed in increments, with each increment fine-tuning and fine-graining the requirements. The first increment incorporates part of the planned capabilities; the next build adds more capabilities, and so on, until the system is complete.
Characteristics of projects which use the Incremental model include:
- Most of the requirements are well-understood but some TBDs (To Be Decided) requirements may exist
- Total project duration is greater (7-8 months and upwards)
- Initial increment may focus on validating architecture and key technical risks
- Functionality built over increments, initial increment may focus on high-priority functionality, last increment may focus on nice-to-have
- Mostly used for large projects where the design and technology are proven and mature
In this model, the initial definition phase focus on creating a domain model and architecture that satisfies the non-functional requirements of the proposed application. The definition phase focuses on arriving at a roadmap for development of various features, depicting dependencies and relationship between the various features. This serves as an input to a coarse-grained (roadmap) plan for the entire engagement.
As iteration approaches, the plan is revisited and a detailed plan is drawn. Any impact on the roadmap is assessed from time-to-time. Each iteration may deliver a functionally working code base that may be released to the customer independently; however production releases may combine one or more iterations as required by the business. This model integrates the best practices of evolutionary development models and agile best practices.
Characteristics of projects which use the Iterative/ feature driven Incremental model include:
- Requirements are not clear
- Initial planning broadly scopes the iterations and arrives at a roadmap
- Initial iterations may evolve architecture, UI frameworks etc.
- Subsequently, every iteration focuses on the set of requirements that need to be built into that iteration
- Iterations may be individually delivered to the customer
- A release to production can combine one or more iterations
- Review Design Ready Requirements
- Participate in the WPP to Prioritise Requirements
- Define Storyboards and Use cases
- Assimilate Features
- Prepare detailed Plan by Feature
- Design/Build and Release by Feature
- Design/Execute/Wrap Test Cases
- Perf Test Features
- User Acceptance
- Deployment into Production
- Warranty Support7
Scrum Main concepts
- Product backlog – Broken down into a list of features
- Release backlog – Top priority backlog items / features
- Sprint = Iteration – Usually 2-4 week cycles and backlog items.
- Priorities – For backlog items (features)
- Estimates – Rough estimate for backlog items. Estimate individual tasks. Backlog item estimates are revised being the sum of task estimates.
- Team roles – Product owner (steers the product) – Scrum master
- Daily Scrum – Daily 15 min meeting – what was done? What will do? Impediments?
- Metrics – Burn-down chart – project velocity
- Allows to accommodate changes and ensure predictability of the end date
- At any point of time, there is a testable version of the product
- Brings in Continuous Integration
- Delivery on time and on budget with complete transparency
- Embedded culture that embraces iteration, adopting a ‘learn fast’ mentality
- Internal collaboration – break down silos and communicate across teams
- Empowered workforce – unlocked latent talent and celebrated new behaviours
- Improved efficiency by the challenging of legacy behaviours
- Synchronising and automating of your business processes
- Reduce delays, rework, and other problems during implementation with a detailed implementation plan and accurate estimation of the time and resource requirements
- Support solution adoption by receiving post-implementation support and knowledge transfer throughout the engagement
- Scalable development and support of your applications
- Real-time communication, collaboration, transparency, and direct accountability
- End-to-end program control and management
- High-impact value delivery to you identifying and mitigating business risks or dependency
- Identifying and executing business benefit case for the program
- Identifying and leveraging best practices across the program
- Mitigating cross-project operational risk
- Effective up-skilling and communication
- Streamlining business-as-usual processes
- Providing opportunity to standardise business processes
- Addressing non-value-add activities and organisational restructure
- Managing organisation change requirements