Agile software development is all the rage today. Within agile development though, there is another concept developers and project managers should not soon forget: flexibility. It is incredibly important in as much as flexibility is that which allows agility to work at an optimal level. Without flexibility, agility becomes just a different way of implementing development processes that end up being inefficient and cost prohibitive.
The meaning of the word ‘flexibility’ is fairly straightforward; there is no need to define it. But how does flexibility apply to agile software development? Well, consider that the founding principle of agility is one of increasing efficiency and reducing time by allowing development teams to work side-by-side rather than consecutively. Austin-based iTexico says that flexibility means not holding teams to strict rules and conditions.
There are three specific strategies that can make the most of flexibility in order to improve app development:
Strategy #1 – Using Squads within Teams
A lot of noise has been made about the idea of dividing development teams into local squads. Spotify was one of the first big names to embrace the concept of squads, others quickly followed. Now squads are the ‘in thing’. The squad strategy allows for guiding a project from end-to-end with fewer risks along the way.
Squads are smaller groups within development teams that are physically located in the same workspace. Being that they work side-by-side, they have a known capacity according to the knowledge they share, the skills they possess, and the amount of work they are able to produce. Each squad can be assigned a series of tasks in order to accomplish the goals of the team.
Strategy #2 – Make Squads Scalable
On every software development team are people who could be effective working as part of any number of squads. Call these people ‘floaters’ if you will. By using these floaters where and as they are needed, squads can be made scalable according to both demand and capacity. Again, remember that squads have a known capacity based on the skills and knowledge they possess.
If capacity has to be increased for one squad to meet its goals, a floater can be inserted until the necessary tasks are completed. That individual can then be pulled out and inserted elsewhere. This essentially creates squads that are increasing and decreasing capacity as dictated by the development process.
Strategy #3 – Adopting Just-In-Time Planning
Also known as rolling wave planning, just-in-time planning is a strategy of delaying major decisions until making them is absolutely necessary for the development cycle to continue. In other words, there is no need to make some decisions months out. It might be better to see how the development process goes first. This kind of planning maximizes how squads are used. It also minimizes the risk of making poor decisions that come back to haunt project managers later on.
Incidentally, just-in-time planning also makes it easier to adapt to changing client expectations. This might be the most important part of flexibility. Customers come into the development process with certain ideas and notions that are subject to change as time goes on. Project managers and development teams need to be able to roll with those changes.
iTexico knows how important flexibility is to agile software development. So do most other companies in the app development world. Therefore, the real question is whether flexibility is being implemented. Companies willing to embrace flexibility as part of agility are better positioned to compete for the best projects out there, while those remaining inflexible will have to settle for whatever is left over.