Scrum Terms


Scrurm Master - Team Lead/Project Manager
Sprint - Iteration
Product Backlog - Work Items
Daily Scrum Meeting - Daily stand up Meeting

Agile - Planning Phase


Planning Phase:
1. Project Scope: Based on the high level initial requirements, team will work actively with all the stakeholders to define the high level scope for the Project.

2. Project Planning : Project plan will be laid out and it will cover the deliverable and its time line.

3. Building Development Team: Development team will evolve over the time. But key team members are identified at the beginning of the project to work very closely with Customers.

4. Building Initial Architecture for the system: Initial team members along with key members of the team will get together and discuss about the Initial Architecture for the system (It will evolve over the time).

5. Development Environment: Development environment (Software/Hardware requirements), Development tools/license, Works stations etc

Agile Phases


Agile Phases

There are three main phases to implement Agile Methodology.

1. Planning Phase

2. Development Phase

3. Release Phase

1. Planning Phase

–Planning: Defines the system being developed. A Product backlog list is created which contains all the current requirements, and information on the project plan.
–Architecture/High level design: Using the product backlog list, the high level design is created. To make decisions on design and implementation, the team holds a design review meeting and goes over the proposals.

2. Development Phase

=> Analysis ->Design ->Develop -> Review -> Test ->Adjust -> Deliver

–System is developed in “Sprints.” Using sprints, the system is developed using an iterative approach. Each sprint is an iterative cycle. Instead of doing the requirements, analysis, design, etc. up front, each sprint covers these design phases and each sprint builds on the previous one.

3. Release phase

–This phase closes out all the design phases. The team can now prepare for release . This includes final documentation,integration, pre-release staged testing, and release.

Agile Introduction


Agile Methodology Introduction

Traditional Waterfall Approach

Traditional Waterfall Approach is used to build complex software systems, which can be built in sequence and phase-wise. Here all the requirements are captured at the beginning of the Project. Design is completed next, followed by Coding, Testing and finally Software is implemented. This approach holds very good where complex software system can be built without changing or revisiting already captured business requirements/design/layouts and have no dependencies with other systems /developments / sub projects.

Under this approach, Project Managers are putting lot of effort in the project plan.
From my experience, most of the Software Projects failed due to not meeting the project time frame and/or cost overrun. Key success factors are making timely project implementation using best practices, next generation technology vision and meeting project time line. I came across a scenario where Customer was looking for a complex ERP solution within a particular time frame, which had 'n' number of dependencies, open solutions/requirements and so many integration touch points with various legacy systems.

I attempt to put forth my experience on the reason for the failure of Traditional Waterfall Approach in so many cases.

Traditional Waterfall Approach - Issues

1. Requirements captured Up-Front: One of the biggest issue with Waterfall is the assumption that all the requirements are captured up-front at the beginning of the project. All the requirements are finalised and documented in Requirement Document.

Requirement document forms the baseline for the Functional Specification Document and is passed to development team to start the development. It is possible that the Requirement Document miss some important details at the beginning of Requirement gathering phase or leave some open issues or holds on to some assumptions. This means, we have to change the requirements outside the requirement gathering phase. This gives rise to Change Requests (CR). In many cases, this will lead to design change and will also impact the next phases of the project. It will finally affect the Project Cost as well as Project time line.

So Project cost increases exponentially over time in case of Water Fall model. A long-term business will be extremely expensive where cost of change increases exponentially.

2. Having working Software Product always: Customer always expect to see and feel something related to the project as early as possible. This will help the customer to describe their requirements effectively. Water Fall model asks the Customers to define entire product/software/application at the beginning without giving them a chance to view , feel or review the application periodically and amend the requirements as and when needed.

So Water Fall model allow us to collect the requirements up-front, develop the entire product/software/application and deploy to customer for their testing. There are two issues here, one is restriction on the amendment to the requirements as needed, secondly, the customer sees the product at the end of the development and is kept in dark until then.

Agile Methodologies

Agile is a Software development framework which allows the development team to carry the software development in iterations throughout the project life cycle and each iteration touches all the traditional phases of development life cycle.

Requirements, design, testing cycles are revisited in each release of the Software in Agile.

Agile is an iterative product development approach and has continuous design - code - test cycle throughout of the project. This helps in reducing the cost of the Change Requests.

Agile Project Management

Agile has different flavors like XP, Scrum etc used for Rapid Application Development. Scrum is one of the flavors to implement Agile methodology. It is an iterative and incremental process to develop a software product enabling the Customer to have workable software product at any point of time. Scrum consists of series of 'n' day sprints, each sprint producing a usable software product.

Scrum is a Project Management approach in which project plans are continuously inspected and has full control on four important factors of the Project.

1. Project Cost

2. Project Schedule

3. Project Scope

4. Product Quality

Functionalities developed using iteration approach will have high quality because of short feedback cycle and controls can be adjusted frequently and quickly and resources can be utilised effectively.

Agile is not expecting any Up-front requirements, this will help Customers to take the decision when they have more details or after seeing initial version of the product. Frequent releases gives a chance to the Customer to test the Product periodically and give feed backs.

Another advantage is that development can start before all the requirements are known.

Much less interesting....

  • Agile is a Software development framework which allows the development team to carry the software development in iterations throughout the project life cycle.

  • Scrum is one of the flavors to implement Agile methodology. It is an iterative and incremental process to develop a software product enabling the Customer to have workable software product at any point of time.