Enterprise development organizations are increasingly embracing agile as a concept, if not entirely in practice. That’s because adopting and scaling agile methodologies for large, complex enterprise software projects can seem daunting. Larry Ayres shares some tips for scaling agile development for enterprise software.
Enterprise development organizations are increasingly embracing agile as a concept, if not entirely in practice. That’s because adopting and scaling agile methodologies for large, complex enterprise software projects can seem daunting. This is particularly the case for groups tasked with developing legacy software, in which the desire to be more agile is often hampered by outmoded mindsets, processes, methodologies, and technologies.
Just how common is this “agile gap?” In a recent Forrester Research survey titled “Forrester Development Landscape: 2013,” 37 percent of developers confessed to using no formal methodology to guide their work. Only 19 percent said they used some form of agile. Clearly, there’s room for improvement.
So, how can enterprise organizations realize their agile goals? I believe there are five key success factors for scaling agile development for enterprise software.
1. Create an Agile Culture
Agile is not just about process—it’s about people. Creating a culture that embraces agile principles is the key to success. But, Rome wasn’t built in a day and neither is an enterprise culture. Start small and build with incremental steps.
Start by securing executive sponsorship so change leaders know that management has their back. However, agile culture is not a top-down change; it’s all about empowering teams. So, while managers should provide leadership and mentoring, this should be in the form of coaching each product owner and ScrumMaster to increase their team’s velocity, quality, and efficiency. Let team leaders make the hard calls, providing advice offline and supporting their decisions.
You should fuel excitement and energy. Create a dedicated “Scrum room” that serves as a focused, “cool” place for each team to interact and feed off each other’s energy. Things like interactive white boards, release and iteration charts, and build dashboards promote teamwork. And, showing recent field defects helps connect developers with the customer.
Create a clear definition of “done.” Also, turn up the volume on velocity by time-boxing releases and setting sprints for one-to-two weeks in order to be more responsive to stakeholders and customers. While not every sprint will be releasable, that should be the goal.
2. Model Agile in Your SCM
Mapping your agile process into your software configuration management (SCM) is crucial to propagating change across multiple configurations in a reliable, efficient, and auditable manner.
To help drive agility, SCM must enable development teams to:
- Manage delivery of change independently while effectively managing dependencies
- Make delivery decisions late in the development cycle
- Adapt releases and projects mid-stream to respond to changing requirements