How to Maximize your Agile Software Development Projects
Find out five people-factors that influence the success of agile software development projects based on research.
Agile is an iterative approach to software development that focuses on how people work together inside a cross-functional team. This approach suggests that those teams don’t have to have a specific role, instead, it relies on the team’s collective skill sets and self-organizing capability.
In this article, we’ll dive a little deeper into agile software development (SD) and discover the factors that influence its success according to research conducted by C Tam, EJ da Costa Moura, T Oliveira, and J Varajão (2020).
A Little Agile 101
I’m going to put a quote from Agile Alliance’s website that I think perfectly sums up the essence of agile SD.
Agile software development is an umbrella term for a set of frameworks and practices based on the values and principles expressed in the Manifesto for Agile Software Development and the 12 Principles behind it.
Agile has actually been implemented since the mid-nineties when people started tinkering with the idea and framework to help develop their software. It isn’t until 2001, that the manifesto came about when a group of 17 people discusses differences and similarities to how they develop software in order to build a foundation for agile SD.
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
After the meetup, one of the authors, Ward Cunningham, then posted 12 principles of agile on agilemanifesto.org.
12 Principles of Agile
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity — the art of maximizing the amount of work not done — is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Maximize Agile Software Development
As stated by Henriksen and Pedersen (2017), the publishing of agile manifesto and principles have increased the success rate of agile SD projects, though there is still room for further improvements from the people dimension. Several authors such as C Tam, EJ da Costa Moura, T Oliveira, and J Varajão (2020) then conducted research that selected and characterized five people-factors that significantly influence agile SD projects to success.
In order to further describe how these characteristics could be implemented, I’m going to give some examples here and there on how I relate each of the factors with my on-going software development group project. Mind you, our project is following Scrum methodology, but I think these people-factors would give the same effect regardless of what agile methodologies your team agrees to follow.
1. Personal characteristics
This aspect pertains to qualities such as communication skills, sense of responsibility, and attitude. This is such an important aspect especially in Scrum, where we are continuously trying to finish tasks in order to be able to catch up on the next sprint. My team understands that work conflicts are normal, and how we respond is what matters. We would always update each other on what we are working on and honestly seek help for things we don’t understand.
2. Societal culture
This is a system composed of shared values, beliefs, and norms. In any group of people, there is a certainty that there will be different perspectives. Fortunately, where my team is concerned, we don’t really come across a lot of friction in this area. The risk of friction, however, will more or less affect the individuals’ and team’s capability for growth.
3. Training and Learning
There is an effort to continuously experiment and facilitate guided discussions. Since the Scrum methodology requires us to learn new things in such short intervals, we often struggle to understand our tasks. Our team made it a habit to arrange short mentoring sessions with members of superior skills in the related topic.
4. Team capability
This factor contributes to the team’s ability to utilize each other’s potentials and knowledge to drive toward the project's success. Not only concerning technical skills, but also each of the member’s motivation and commitment.
5. Customer involvement
This is related to the interactions between customers and agile teams throughout the development process. A project will be benefited with customer satisfaction by carrying out this factor considering the engagement it produces. There is a whole process that revolves around this called ‘User Centered Design’, which maybe I will cover in the future. On my current team project, we plan to implement this by conducting usability testing to gather user feedback for our product.
So, hurry up and check, does your current agile team tick all of these people-factors? If they do, keep up the good work! If not, then there’s no better time to start working on it than right about… now.
If you want to get a little more technical, check out my previous article to know more about how to start your agile team’s first git project!
The factors influencing the success of on-going agile software development projects
We examine the people factors that contribute to agile software project success. * Based on literature we have built a…