Thursday, August 19, 2021

Pathways#Innovative Planning#Level1#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. Below are the process followed in the 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.

1.       Requirements – We should gather all the requirements with the details in this stage

2.       Design – We should do design to cater the requirements.

3.       Development – We should do the development against the requirements

4.       Testing – All the developed components will be tested.

5.       Release – Post testing, software will be released to production

The activities should be followed in sequence. If there are any changes in the requirements the change management process has to be followed. In the traditional model, the changes are not welcomed. 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 –(Todo/WIP/Done) 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. The next time if you are using any software application, just think whether it might be developed in agile or traditional. Over to the TMOE.

No comments: