CollabNet VersionOne, last month published research revealing why organizations are turning to agile. The findings, which were contained in the company’s 13th annual State of Agile Report, show a 71% increase in project cost reduction as a primary reason to adopt agile.
Emerging Agile Trends
The research also shows that many organizations are moving to agile development to accelerate the ability to get software built with high quality and get it into the hands of their customers, manage changing priorities and improve alignment between IT and business groups. Other notable findings show that:
- DevOps — software development and information technology operations to shorten the systems development life cycle — is a higher organizational priority.
- End-to-end traceability is key to improving DevOps practices.
- Value Stream Management — a sequence of activities an organization undertakes to deliver on a customer need — is new, but important.
- Scaled Agile Framework (SAFe) continues to grow in adoption and was identified as the scaling method of choice by 30% of respondents.
Related Article: Does Your Organization Really 'Get' Agile?
Agile Company Mindset
It has also become clear that cloud technology has made it possible for companies to innovate quickly and become more agile by allowing them to focus on business growth rather than worrying about managing resources and infrastructure. But agility is not just about switching to the cloud — it's also about a companywide mindset, said Dave Chapman, cloud strategist at Cloudreach.
In order to implement any successful change, a company has to start with its people, ensuring they are set up for success. Moving to the cloud and shifting to a new business model requires changes to technology, processes and culture — all of which are led by people.
“So the first and most important step when moving to a more agile model is to make sure the people are on board and truly understand the technology changes and new goals for the business. This will ensure that they are prepared for a more agile, fast-paced business environment,” he said. This means adopting an agile business management model as opposed to the traditional waterfall management.
However, often, it is the project rather than the organization itself that will dictate whether to adopt an agile or a waterfall management methodology, said Ben Wald, co-founder and VP of solutions implementation at Very, a software development and design company.
Related Article: When to Use Agile vs. Waterfall for Your Next Project
Waterfall vs. Agile
He pointed out that deciding between agile and waterfall methodologies often depends on the scope or complexity of the project. The waterfall methodology takes a linear approach to software development, with a sequence of events, each representing a distinct stage of software development:
- Waterfall: Each stage must be finished before the next one can begin, and there’s often a gate between each stage. Wald cites the example of designing a software project. The customer must sign off on the design before coding can start — this makes the linear approach of the waterfall methodology easy to wrap your head around. One of the cornerstones of waterfall is committing to an end deliverable.
- Agile: The agile approach has a steep learning curve. There’s new terminology to learn (iterations, standups, retros, etc.), and when you first start, it can feel counter-intuitive. Without experienced agile practitioners at the helm, it’s easy to botch this approach. With agile development, teams break each feature into the smallest discernible chunk of work and produce incremental value over time.
Agile focuses on delivering working software with each release, because with projects like the Internet of Things (IoT), the space is often evolving so quickly. “Aside from agile development making developers nimble to accommodating swift changes, it fosters a collaborative and adaptable environment across teams,” Wald said.
Steps to Agile Development
Being agile allows the design team to adjust modifications or approaches, but also allows the client to see real-time ROI. Agile offers the following advantages and can be applicable to project development.
1. Eliminates silos
Hardware and software design and development needs to happen simultaneously with a great deal of communication between team members with different skills. The agile methodology focuses on collaboration between teams.
2. Tight feedback loops
Agile encourages or requires frequent communication between developers and those who will ultimately accept and use the product. This pays major dividends when done well.
3. Testing early and often
Agile methodologies and continuous delivery are particularly well suited for dealing with the demands of the connected device. With agile, testing becomes an essential component of each phase of the development process, with quality being “baked in” at every stage.
4. Adaptability to change
Agile is built to account for changing requirements, making it easy to adjust your approach to target high-priority issues. Working with an iterative approach gives you more flexibility for change and evolution during product lifecycles.
Don't Stop Mid-transition
The evolution, from waterfall to agile is methodical and requires organization leaders to carry out a detailed risk assessment within a company. This means a thorough analysis of each individual sector and its preparedness for the transition, said Nick Gavlov of web hosting specialist hostingtribunal.com. It also estimates how much productivity will be affected once the transition starts, which is important, if you conclude that it is too risky to start the process, you may need to wait for a few weeks or months. However, once you start with it, you shouldn’t’ stop the transition. There are five other key steps:
1. Make sure everybody’s on the same page
Educating and preparing everybody in the company is incredibly important for the transition. This especially applies to the people in top management, as they are the ones initiating the change. “If you have sectors that aren’t ready for such a change, you may end up having some sectors move much faster which may lead to potential tensions or even conflict.
2. Designate one team to lead the process
In big corporations, it is best to have one designated team that will introduce and monitor the implementation of agile management. Usually, these will be scrum masters who are skilled in leading the process. Keeping track of the progress is essential, as you will need to continuously evaluate your overall performance.
3. Do not rush things
It is important that the shift from traditional to agile management happens as organically as possible. You need to remember that the transition may not be over in just a few months. Big companies may even need years to complete the transition. This is depends on a variety of factors. However, you shouldn’t pressure people to complete the transition just for the sake of it.
4. Learn from the process
Agile management is continuously evolving and you should take some time to learn from your own transition process. Note what good things are and how you can use them to grow even further. On the other hand, what are some of the weaknesses you weren’t even aware of? Do you need to apply any changes to make the process easier?
5. Persevere in your efforts
The worst thing that can happen is to start the transition and then give up halfway. I’ve seen many examples of companies which haven’t successfully transitioned to agile management. Instead, they've got some type of a hybrid system and caused a lot of internal issues. For this reason, all of the preparatory steps are crucial.
With agile methodologies, companies can receive user feedback early on in the development process to avoid unneeded features and allow for the process to be restructured before too much money or time has been invested,” said Nacho De Marco, CEO at BairesDev.
This approach is optimal for startups that need to mind a budget and also for new software solutions that are being released on the market for the first time. It is also recognized for its ability to produce customer-centric software that really targets customer’s expectations.