So you decided to build a software solution and you’re looking to learn what exactly is Agile software development, if it’s a condition that a service provider should meet or whether this is the best approach when it comes to creating new web apps. Whilst almost all responsible managers understand well, it’s that it is mandatory to prospect the market before investing resources. We recognise that it can be a little daunting to get a straightforward non-technical explanation of how software is developed nowadays, why an Agile methodology is best suited to deliver software projects, what are some common limitations and pitfalls and ultimately, what to expect and prepare for when working with a software development company, especially with the current services externalisation trend going on.
Your web application is someone’s project
Whether you need to build a bespoke CRM, design a sophisticated database, an eCommerce platform or simply redesign your current website, this will be a project for someone. Whoever is going to do this for you is going to need to plan their resources (people, time, equipment etc.), strategy (methodology/approach, order, communication channels, testing, environment etc.) and prepare to overcome the difficulties (miscommunication, inability to adequately appreciate well in advance technical or budget limitations etc.) in order to deliver your solution. No serious software company can work now without using a tested approach.
It’s worth noting that there is no fool-proof project management methodology to avoid pitfalls. We must always keep in mind that all stakeholders involved in the delivery process are people; we should expect therefore that occasional mistakes, miscommunication, burnout, good and bad days will happen, as well as unpredictable events, sometimes on multiple levels and teams. One way to deal with this aspect is to make contingency plans, whereby we account for more resources in advance precisely to cover for this. Not all software buyers are keen to do this, but it is more than a good measure to consider and it can make a world of difference when deadlines loom and spirits run high.
There are presently many methodologies to deliver projects, but our focus today will be on agile methodology.
What’s Agile Project Management?
Very succinctly, agile is a collaborative way to self-organize across teams and deliver products incrementally, whilst adapting the plan to ensure that the products are delivered as efficiently and early as possible. By utilising Agile the software development agency will attempt to present you with a minimum viable product (MVP) as soon as possible, demonstrating how the software works and behaves whilst being ready to implement changes as required. Agile is focused on defining the requirements, then developing and testing the solution and eventually performing the changes according to internal and external (client) feedback – a fruitful collaboration with the client rather than an absolute adherence to an initial agreement – where little visibility and understanding of what the project, in fact, entails before it’s delivered successfully – is one of the important principles of Agile software development.
Many software buyers and development agencies of all sizes are refraining to engage in costly projects without using Agile and Scrum (another project management methodology used for software creation, often working as part of – or included with – Agile). In fact, Agile is considered the norm for modern software development (1)
(2)
(4)
, with major corporate consulting organisations like KPMG, Boston Consulting Group, Ernst & Young, and Deloitte offering Agile consulting (1)
and most of our clients expressed interest in or requested that their projects are delivered using Agile.
Though software projects take longer than most people think (humans are known to have an estimation issue – they almost never do it right), Agile development is proven to increase project visibility and to accelerate software delivery, which is one of the main reasons software companies like Totally have decided to adopt it in the first place. Of course, once the scope of the project is defined, contingency planning should be included as a standard.
Here are some relevant numbers that will help with painting a clear picture regarding Agile software development:
- In the 13th Annual State Of Agile Report (2019) Scrum is reported as the most widely-practised agile “methodology” 72% of respondents.
(3)
- In a Hewlett Packard Enterprise survey, 51% of respondents were leaning toward Agile.
(2)
- 79% of global executives rated agile performance management as a high organizational priority in 2017
(5)
It’s probably safe to say that this methodology has matured well enough for you to want to have your solution built using Agile.
What are some of the advantages of Agile software development?
- Improved productivity & team morale
- Enhanced collaboration
- Ability to add or remove features from the final product
- Competitive edge when creating new software
- Increased customer satisfaction
- Project cost reduction
- Accelerated software delivery
- Improved project visibility
- Reduced project risk
What about some known disadvantages of Agile methodologies?
Because of its perceived ubiquity, it’s principles are adopted everywhere and soon every single software company will demand it as standard experience for DevOps and technical project managers, creating a sort of tyranny of Agile. But software has been built for more than a hundred years and companies have constantly learnt to do it better. When a method of doing things is automatically considered “the best” and everybody should, to be hired, know it/ adhere to it, it can start to dominate sound reasoning and prevent organisations from hiring good people merely because they are lacking this knowledge or experience. Such hard skills can be acquired by most people, but oftentimes it’s soft skills like empathy, perseverence and resilience that are difficult to teach or are hard to find.
And Agile, as a method of work, does come with its own limitations, some of which are:
- Difficult to plan resources adequately, which may increase risk
- Lack of realistic deadlines
- Difficulty in measuring underperforming processes
- The micromanagement and rigidity of Scrum can be detrimental to project success
- Quality people management is not properly considered
- Shoehorning activities so it fits the approach instead of modifying the approach
- Difficulty in securing the necessary budget without a hard delivery date
Conclusion
All of the above considered, we have worked with other methodologies and frameworks as well and we have concluded that Agile software management was not only the most successful approach so far, but it also allowed us to work well with organisations who would have typically opted to work with software companies 15 times our size, by demonstrating that we can plan and accommodate changes efficiently whilst keeping the eyes on the end-goal and deliver excellent bespoke solutions.
And whilst Agile has produced great results for us and our clients, we are always looking to improve on our processes and learn new skills, as you’d expect from a competitive software agency.
Citations
1. https://searchcio.techtarget.com/opinion/As-Agile-adoption-grows-its-time-to-focus-Agile-training-on-managers
2. https://cdn.totally.tech/prod/uploads/2018/08/hpe-survey-min.pdf
3. https://www.stateofagile.com/#ufh-i-521251909-13th-annual-state-of-agile-report/473508
4. https://www.infoq.com/articles/reifer-agile-study-2017/
5. https://www2.deloitte.com/content/dam/Deloitte/lu/Documents/human-capital/lu-hc-2017-global-human-capital-trends-gx.pdf
Totally has been developing bespoke software solutions for nearly 20 years, during which time it has accumulated tremendous experience in how to deliver successful projects to adequately address specific needs. Learn more about our solutions, see who our clients are and get in touch if you need experienced help with your project.