A lot of software development companies talk about making the transition to agile development. Fewer actually accomplish such a transition successfully. Why? Because IT professionals are taught certain ways of doing things during their educational careers and in the first few years of working. Much of what they are taught is directly opposed to the concept of agility. Transitioning to agility means unlearning what are considered some of the most fundamental ideas of software and IT.
At iTexico, an Austin, Texas company specializing in mobile app development, agility is not just a buzzword they use to market their services. It is something that is practiced every day. iTexico has been working under the agile model for some time now – though there are times when the hierarchical model is still necessary due to the constraints of a particular project – and both their developers and clients have reaped the benefits thereof.
iTexico explains that transitioning to agility is a lot like cooking. You need just the right ingredients combined in just the right way to get the right result. Leave out just one ingredient and the finished product could be totally ruined. The key ingredients to a successful agile transition are explained below.
The Horizontal View
Agile software development is based on the horizontal view. It has been described as a running stream as opposed to hierarchical development that is more like a waterfall. This indicates that the first ingredient in a successful transition to agility is finding a way to adopt that horizontal view.
The horizontal view understands that development teams can work simultaneously and in parallel. It understands that while teams are dependent on one another for ultimate success, one does not have to wait on another to complete its assigned tasks. The horizontal view sees all teams working together to achieve a common goal rather than competing against one another.
The Team Approach
The principles of agile software development dictate the team approach. In an agile environment, there can be project managers without having bosses. There can be team leaders who also see themselves as team members rather than controllers. Agility is all about team. It is not about seniority, titles, or position.
When agile development falls apart, it is usually because team members have failed to take responsibility for themselves and their contributions to the whole. If nothing else, team members have to be reliable. Without bosses lording over individual workers as they do in the hierarchical environment, agile team members have to be self-motivated and somewhat autonomous.
Flexibility of Thought
The word ‘agile’ evokes a certain kind of image in the developer’s mind. Part of that image is flexibility. Agile software development succeeds because it is not tied to a strict set of rules or outcomes. It can move and breathe along with the client’s requests; it can respond to how various software teams complete their tasks; it can adapt to different circumstances rather than being controlled by them.
All of this requires flexibility of thought among team members. Not only do they have to be able to think outside the box but they also have to be willing to step back and think things through before making decisions. Agile software development values the big picture view just as much as a more detailed view.
Making the transition from hierarchical to agile software development is no easy task. So much of what is normally done in the software development arena runs contrary to agile concepts. But with the right ingredients and people willing to implement them, the transition to agility is entirely possible.