management

Balancing Agility with Governance

Balancing Agility with GovernanceIt’s not often that I get the opportunity to help facilitate at an agile conference, but yesterday I did just that. I had the pleasure of helping Ian Spence deliver his session at RallyON 2013 in London. The theme of the session was about balancing the goals of agility with the need for governance, compliance and standards.

Most of us by now are familiar with the agile manifesto, and how it states “while we value the things on the right, we value the things on the left more” i.e. individuals and interactions are more valuable than processes and tools, but there is still some value in the latter. The point of the session was that we need to achieve a balance between agility and other things like governance, compliance and standards – things which are very often thought of as conflicting with agile and therefore “the enemy”! This is especially true in large organisations. But people whose job is to implement governance regimes, ensure compliance, and that standards are followed, are also people – people that agile development teams need to interact with.

Anyway, theory over, it was time to play some games – card games to be precise. Ian introduced Alpha State Cards, a simple tool for understanding project health and progress, by focusing on underlying performance indicators – indicators that are essential to all software endeavors regardless of method, process, life-cycle or practices being followed.

We only played a couple of these games: the first was using the cards to understand the state of an example project, the second to determine the required state of key project indicators before a team would be ready to start sprinting. But it was enough to see that a simple lightweight card-based approach could be a useful addition to one's agile toolkit, and help facilitate conversations between different stakeholders in an entirely method-neutral manner.

Ian then showed us how, using the cards to create checkpoints, a lean and lightweight governance model can be quickly constructed: one that is based on objective outcomes, rather than documentation.

The games, and the cards, are both available here if you want to try them out.

Attitudes Regarding Iterative Software Development Planning and Measuring

Attitudes Regarding Iterative Software Development Planning and MeasuringNowhere is the change in values of iterative development planning and measuring more important than in the management team. If the project is to iterate successfully, it must be managed iteratively.

The project manager must believe that an iterative approach is the best way to manage the project and must be prepared to set aside any inflexible, predictive, waterfall management practices that have been used before. This doesn’t mean that you should throw away all the good management practices and experiences you have built up over the years; good, disciplined project management is essential to the effective application of iterative development techniques. It is just that you must put aside some of the conventional wisdom about planning to give yourself the freedom to fully exploit the flexibility and power of the iterative approach.

The conventional approach to planning is prescriptive, based on the assumptions that the work which needs to be done can be predicted with great precision and that the unusual rarely occurs. This is true for many things—building a bridge over a highway or a standard family dwelling or a prefabricated commercial building, for example. These engineering efforts are technically predictable, and planning this kind of work is based on hundreds of years of experience. This experience has given rise to the generic project lifecycle in which the different types of project activities are aligned to the single phase that bears their name (i.e. Requirements, Analysis, Design, Code, Test and Deploy). Read More

Theory X and Theory Y by Ivar Jacobson

Management styles have a huge effect on software development teams.  A significant shift required in  the movement toward a more agile approach is a change in the way that teams are managed and measured.Management styles can be described in  a number of ways - Theory X and Theory Y are popular approaches dating back to the 1960's but still applicable today.   Basically, Theory X assumes that people are basically untrustworthy slackers who need to be constantly monitored and told what to do and are only working because they need the money.  Theory Y assumes that people want to do a good job and are motivated by more than money, and that people produce their best results when they are working in a supportive environment that frees them to be creative and productive.It should come as no surprise that a necessary condition for a movement toward agile teaming is a "Theory Y" management culture - a team trying to adopt an agile approach in an organization with a "Theory X" management culture is doomed to failure and frustration; it will constantly be fighting the management system and the surrounding culture. In these organizations, the management culture (and its supporting measurement system) must change along with the team approach in order for both to be successful. Before you can change it, however, you need to understand it.