Agile Practices

The IT industry is moving towards the agile approach to the software development. This time we are learning the scrum basics, the scrum process and the technical practices. There are several reasons why the agile technology is being so well accepted in the software world. Some of them are –

  • Quick time to market
  • Respond to changes quickly with the quality
  • Develop software admist requirement volatility.

The difference between the agile technology and the other software development model is that in the agile technology the software is divided into pieces and for each of them the all the SDLC phases are applied for. Unlike the waterfall model, in which the entire code is made and then the SLDC phases are applied! It is because of the agile technology that the user has always a running part of the code.

Agile is a time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once at the end. It is governed by the four values and the 12 principles. The four values of quality are –

  1. Individual and interactions over processes and tools – In the agile technology, it is important to have conversation with team members and the stake holders. There are going to be tools and processes to support the development but the importance is always given on the people aspect and how they would like to innovate the entire system.
  2. Working software over comprehensive documentation – The focus of the team in the agile technology is no on how much documentation is done but rather on the measure of progress. it however does not mean that there is not going to be any documentation but rather the focus is going to be on evolving iterations. For instance, a skeleton code is preferred than the design document.
  3. Customer collaboration over contract negotiation – This means that there is going to be collaboration in between the business users and the teams working together. There is going to be the contract but the focus will be more on the value driven development which is reflected in the contract.
  4. Responding to change over following a plan – Plans often change in the software industry and it is going to be done in agile at dynamic level and not at the micro level for each iteration. This means that planning has to be done frequently to adapt the new changes coming up!

The agile works on the 12 principles that are listed below –

  • The highest priority is to satisfy the customers through early and continuous delivery of valuable software.
  • It is important to welcome requirements although it is late in the development. Agile process harness the change for the customers competitive advantage.
  • It is important to deliver the working software frequently from a couple of weeks to a couple of months. The preference is given to the shorter timescale, the shorter the timescale, the better it is going to be.
  • It is important for the business people and the developers to work together daily throughout the project.
  • It is important to convey the information face to face within the team.
  • In the agile technology, the entire project is build across the motivated individuals giving them the environment and support the need and trust them to get the job done.
  • The most important thing is to get the software working
  • Agile process promote sustainable development. The sponsors, developers, and users must be able to maintain a constant pace indefinitely.
  • Continuous attention must be given to technical excellence and good design enhances agility.
  • Simplicity. It is important to identify the work that has not been valuable.
  • The focus is on self-organizing teams and allow them to create best architecture, requirements and design emerge from such teams.
  • In regular times, the team reflects on how to be more effective then tune and adjust its behavior accordingly.

There are different flavors to the agile technology and the user can choose from any of them –

  1. Scrum – It is the time-boxed method with process and ceremonies for the agile technology. It is used in agile technology.
  2. Kanban – It is used to reduce the work in progress and ensure smooth flow of products in a pipelines. It is used in maintenance projects.
  3. Extreme Programming – This is the collection of technical practices for quick development of quality software which can lend itself to change. It is used with the other flavors of the agile technology.
  4. Lean – It is used to define process for removal of waste in the workflow. It is used in the manufacturing environment.

UNDERSTANDING SCRUM

The scrum cycle is the iteration in which cycles are repeated and each cycle is called sprint. A sprint consists of plan-produce-inspect-adapt. The application development is achieved by sprints in sequence with no gaps in between them. Let us understand the various concepts in detail –

  • Plan – This is the phase in which it is decided on the amount of work that has to be done and during which sprint what is going to be delivered. This is done by the team at the first phase.
  • Produce – This is the phase in which whatever has been planned is implemented by the development team.
  • Inspect – At the end of the sprint, in this phase, the customer along with the stakeholders verify the product to see if it meets the requirements as per agreed conditions defined in the contract.
  • Adapt – This phase is what is called the repetitive phase. It is in this phase that the team finds what went well in the current sprint and tries to implement in the next sprint. The mistakes are avoided in the next sprints.

Following are the common terminologies that are used in the scrum –

  1. Sprint – It is the time boxed iteration in which the deliverables are produced by the development team. Each of the sprints happen in sequence.
  2. Cross Functional – This refers to the different diversity of skill set that is present in the team ranging from developers, architects, testers, analysts etc.
  3. Self Organized – It refers to the potential of the development team to take decisions on how much and what to commit in each sprint. It also talks about the potential of the teams to resolve conflicts on their own and take collective ownership and commit to tasks rather than being assigned work.
  4. Definition of Done – DoD is a generic checklist on what refers or what are the conditions upon which the customers and team are considered to have completed the project.

Let us now look at the different artifacts that are looked upon in the agile technology.

ROLES

This refers to the people who are part of the sprint. Following are the terms often used –

  • Product Owner – This is the person who is responsible for the vision and the goals of the release, the return of investment, date and scope of release.
  • Scrum Master – This person is responsible for scrum process, problem solving and the protection of the development team.
  • Development Team – This is the team responsible for the work done in each of the sprint.

CEREMONIES

This refers to the meetings conducted in the sprint. Following are the terms often used –

  • Sprint Planning Meeting – This is the meeting conducted in the beginning of the sprint to arrive at the sprint backlog.
  • Daily Scrum Meeting – This is the everyday meeting in a sprint where the team updates on the status of their work.
  • Product Backlog Grooming – This is the session in which the requirements for the upcoming sprints are checked for.
  • Review and Retrospection – This is the meeting at the end of the sprint wherein the product owner checks if the development team has completed the project of there are any new updates required by the user.

ARTIFACTS

This refers to the products that are delivered to the user. The following terminologies being used in this case –

  • Product Backlog – It refers to the pending list of items to be developed.
  • Spring Backlog – This is the list of tasks planned for the current sprint with their effort estimate.
  • Potentially Shippable Increment – It is the working version of the software produced in the sprint.
Happy Learning 🙂
Avantika Tanubhrt


Leave a comment