Common Software Delevopment Practises

When speaking in relation to software development, there is a general code of practise and a localised framework that is followed by the majority of the sector. This framework, known simply as the Agile framework, brings programmers, designers, and stakeholders of a product together in order to collaborate and work towards a complete and satisfactory final product.

The Agile framework, or Agile for short, was established in 2001 through a meeting between seventeen other software developers. Before Agile, a multitude of separate methods were used for organised and rapid software development. The Agile framework saw the unification of these different methods into one universal framework.

The framework follows a predetermined set of values and principles:

Values:

  • Individuals and Interactions over processes and tools
  • Working Software over comprehensive documentation
  • Customer Collaboration over contract negotiation
  • Responding to Change over following a plans

 

Principles:

  1. Customer satisfaction by early and continuous delivery of valuable software.
  2. Welcome changing requirements, even in late development.
  3. Deliver working software frequently (weeks rather than months)
  4. Close, daily cooperation between business people and developers
  5. Projects are built around motivated individuals, who should be trusted
  6. Face-to-face conversation is the best form of communication (co-location)
  7. Working software is the primary measure of progress
  8. Sustainable development, able to maintain a constant pace
  9. Continuous attention to technical excellence and good design
  10. Simplicity—the art of maximizing the amount of work not done—is essential
  11. Best architectures, requirements, and designs emerge from self-organizing teams
  12. Regularly, the team reflects on how to become more effective, and adjusts accordingly

 

As part of the Agile framework, companies undertake a process known as a scrum. A scrum involves a self-organised team or teams of between three and nine people composing of programmers and designers. These teams work on a project in increments known as sprints, which normally last for two weeks or up to a month.

scrum flow2

There are three main roles that people undertake during a scrum:

  • Product Owner
  • Developers
  • Scrum Master
  1. The product owner acts as a middleman between the stakeholders and the development team and is responsible for providing the product backlog,  maximizing the value of the final product and prioritising work based on importance. Each development team should only have one product owner overlooking them, but a product owner should overlook several teams. A product owner should list their and why it is to be achieved a certain way (as their may be a better way to do it). Empathy is an important characteristic of a product owner, as they are involved with different stakeholders with varying viewpoints, all of which need to be accounted for and communicated effectively to the development team.
  2. The developers are responsible for delivering productive development credentials after every sprint. Before a sprint, the team briefly plans what they aim to achieve during the sprint and why, known as a sprint goal. These goals are important to both the team and the stakeholders. They are self-organised, and any communication outside of the team is organised by the scrum master.
  3. The scrum master is responsible for organising the scrum. They deal with any obstruction that may delay the teams’ delivery of their goals and deliverables. Scrum master are not considered to be traditional managers, but ensure the values and principles of the Agile framework are followed by all involved.

 

Stages of a Scrum

  • Sprint planning
  • Daily Scrum
  • Sprint Review
  • Sprint Retrospective

 

  1. During the planning phase of a sprint, those involved discuss and agree on a scope of work to be done during that sprint. They choose a product backlog item to be completed during the sprint ahead. Then ,the chosen backlog item, as well as including the work needed to complete selected product backlog item is prepared. Planning should last four hours for a two-week sprint.

2. Each day during sprint, team hold stand-up meeting, known as a Daily Scrum. It starts exactly on the same time in the same place, even if some members of a team are missing. Daily Scrums are usually limited to about fifteen minutes. During this time, each member answers three questions:

  • What did I complete yesterday that contributed to the team meeting our sprint goal?
  • What do I plan to complete today to contribute to the team meeting our sprint goal?
  • Do I see any impediment that could prevent me or the team from meeting our sprint goal?

If an impediment is listed, it is noted on the team’s scrum / shared risk board. A nominated person then works on a solution to the problem outside of the daily scrum. Members are not allowed to hold detailed discussions during the daily scrum.

3. Sprint Reviews allow the members to review the work that has been achieved and work that is still yet to be done. Any completed work is shown to the stakeholders of the product and advice is gathered on what the team should work on next. Incomplete work cannot be shown to the stakeholders. A sprint review should last about two hours for a two-week sprint.

4. A Sprint Retrospective sees the members reflect on the previous sprint and is organised by the Sprint Master. They identify and agree on processes that will improve productivity continuously in the future.Team members ask themselves three questions:

  • What went well during the sprint?
  • What didn’t go well during the sprint?
  • What could be improved for better productivity in the next sprint?

A Sprint Retrospective should last one and a half hours for a two-week sprint.

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s