Saturday, September 18, 2021

Pathways#Innovative Planning#Level1#2.2 Evaluation & Feedback - Being Agile

 Being Agile

Good evening toastmaster of the evening & audience.  How many of you are using software’s daily? Software`s have become inseparable part of daily life. Starting from the time of daily from mobile phone to the time to sleep we are using software applications without which we can`t survive in the modern world. Today I am going to share info about the agile practices in software development which is the progressing trend now. I am also started working on the agile projects.

All major organizations have started adapting to Agile methodologies. Some of the familiar organizations are

1.      Apple

2.      Microsoft

3.      IBM

4.      Amazon

5.      Google

6.      Cisco

7.      Etc

The traditional way of developing any software is to follow a waterfall model. Here the scope is fixed, Cost & schedule are variables. Strict processes is to be adhered. Comprehensive documentation has to be maintained for all the processes.

Below are the difficulties identified in the traditional model.

1.      Customers can touch the software only at the end of the project.

2.      If the project duration is long & in the course of the time if the technology & requirement changed, it becomes very difficult to accommodate it in the same project. Sometimes after years of work, projects are getting scrapped.

To address this issues, agile practices in software development are introduced. Below are the key principles of Agile manifesto.

1.      Individuals & interactions over processes & tools.

2.      Working software over comprehensive documentation.

3.      Customer collaboration over contract negotiation

4.      Responding to change over following a plan.

 

There are many methodologies in Agile practices. Some of the key methods are

1.      Scrum

2.      Kanban – got familiar from Toyota

3.      Xtreme Programming(XP)

4.      Crystal

5.      Etc

The most popular is Scrum. Below are the roles available in the Scrum methodology of software development.

1.      Product owner – Who owns the product & he will be the chief steward officer who will determine the priority of the items in the product backlog.

2.      Scrum master – It is equivalent to the project manager role in the traditional method but here the role is of servant leader role where he has to serve the team & try to resolve for any impediments.

3.      Development/Testing team – In scrum, the general expectation of the team is T shaped skills, meaning members should have a general understanding of wide variety of skills & a deep understanding of one skill.

A scrum team can be of 3 to nine members. For bigger teams, there will be scrum of scrums.

Scrum can be of iterative cum incremental. A typical iteration duration is 2-4 weeks. At the end of an iteration depending upon the understanding a release can be done in the production or till the UAT(User acceptance test)

Below is the flow in the Scrum.

1.      Product backlog – Which contains the requirements in the form of user stories

2.      Sprint planning – Product owner & the team will do the planning for the number of sprints.

3.      Sprint backlog - Product owner & the team will prioritize the back log for that particular sprint.

4.      Sprint execution/Daily standup(15 min meeting-What done yesterday, what will be done today, impediments)

5.      Sprint Review

6.      Release(Depends on iterative/incremental)

7.      Sprint Retrospective

From step#2 to sprint#7 will be called as an iteration. Iteration will be repeated till all the requirements are done.  The main philosophy of Agile is that changes are welcome even at the end. In agile, Scope is variable, Cost & schedule are fixed.

It is difficult for the organizations to directly switch over to agile from traditional methodologies. So organizations are using hybrid methodologies which is a combination of traditional & agile practices. Eg. Till design it can be waterfall, then agile practices can be followed for development till release.

 

Agile practices in software development are causing major disruptions in software development. The release are made incremental by which time to reach the market is reduced. Agile brings visibility, adaptability, accountability & value at the beginning of the project & minimizes the risks during the project. It has saved billions of dollars for countless companies. Over to the TMOE.