Since the Agile Manifesto was written in the US in 2001, Agile software development methodology has become a mainstay of innovative, high-energy developers the world over.
Agile methodology refers to a development process focused on iterative changes and updates, and encourages collaboration among self-managing teams. It replaces traditional development methodologies that focused on whole-project scopes and single, large-scale iterations that often led to disastrous end-results.
Stephan Pienaar, chief operating officer of software development company Framework One, says: “The nature of software is that it changes. What you may think you need at the start of a development process most likely will not be what you want at the end of it. Agile provides clients and developers with the opportunity to provide continuous feedback to each other and ensure that activity is aligned with the broader vision for the project.”
On becoming agile
Traditional ‘waterfall’ development, where projects are fully scoped out upfront and delivered as a whole to the client at the end, often led to disappointment as business needs change between the start and end of the development process.
“The core elements of a successful Agile development process are communication and teamwork. It’s vital to get as much feedback as possible from team members and the clients. Agile is iteration focused, which allows us to quickly adapt to new requests from the client. But without proper communication, the process invariably fails.”
Pienaar says it’s critical to develop key objectives, called “stories”, with input from the client.
“These stories are the pieces of development that need to be completed on a weekly basis. Each story is determined by the client and is linked to a business priority. Once the stories are received, the team has a meeting to determine how long each story will take, and development is prioritised according to the time allocation and perceived value to the client’s business.”
With so many small pieces of work being conducted at the same time, the challenge is to make sure each small piece fits into a larger picture. “Our architect looks after the big picture. He develops the conceptual overview of the entire project and then matches each story to this larger picture. Software needs to be written in such a way that it allows for change. Agile methodology actually encourages change, and it results in a much better end-solution.”
A focus on trust
According to Pienaar, trust is a non-negotiable element for a successful Agile development process. “You have to allow your team to deliver to their promises without interfering in the minute details. Micro-managing the process is not advised; developers are professionals and like to be treated as such. It’s important not to get in the way because of a perceived fear of delivery.”
Without proper teamwork, Agile development cannot function the way it is meant to. Pienaar says the shared responsibility for completing certain tasks within set timeframes means that a struggling team member will quickly get the help of the rest of the team so that deadlines can be met.
“We have something called ‘The Definition of Done’. This refers to the requirements that need to be met in order for a story to be considered completed. We use voting cards to determine how each team member perceives the status of a certain story.
“If the voting cards are similar, we know everyone’s on the same page. However, if there’s disparity between the team members, there’s either a lack of understanding of that specific story or someone knows something the rest of the team can benefit from.”
To help keep track of individual performance within the team environment, all developers are subject to 360-degree peer reviews.
“Developers want to improve their skillsets and do great work. By enabling each team member to receive feedback from the rest of the team, developers get an honest view of what aspects of their jobs they are good at and where room for improvement exists,” explains Pienaar. “It is important to note, however, that we have a strict ‘no-ego’ approach to our work.
“You need to be able to take honest feedback for what it is – an opportunity to continuously improve. At the end of the day, clients and team members profit from this transparency – there is more focus on the collective rather than on individual members.”