Skip to main content

Why Agile has Failed?

Following from my previous post, this is my response to a second thought-provoking article that criticises a codification of agile software development into rigid project management frameworks.  In that article, Mike Hadlow asks why agile has come to mean just management practices (stand-ups, retrospectives, two-week iterations and planning poker), divorced from any base in technical practices.  He bemoans projects in which non-technical people are given the role of Scrum Master, enforcing agile rituals without understanding what the team are actually doing.

I can see that Mike's scenario would be problematic.  I have seen examples in our organisation where some non-development staff may have thought they could control an agile team (e.g. as a business analyst) but the structure of the agile team has (correctly) worked against them.  In general, it is certainly easier to explain daily stand-up meetings and two-week iterations to non-technical people than it is to educate them in the ways of continuous integration and refactoring.  But that has been OK for us, because the non-technical members of the teams have other responsibilities.

Perhaps it has helped that we don't follow the Scrum process per se and our teams don't have a Scrum Master.  There is no one person in charge of our teams.  We do have a project manager who contributes to the team but they are not in charge. They are also outnumbered:  a typical agile team in Applications Division has two developers, a half-time project manager and a half-time business analyst (who may sometimes be the same person).  The business partners will contribute someone working half-time as a business lead and tester.  (The exact composition of the team will vary depending on the exact nature of the project).

We have found that the project manager and/or business analyst have very important roles managing the customer liaison and testing, and setting up user representation.  In fact, from my point of view, one of the biggest advantages of our adoption of agile is that it has given much greater focus on users, along with a structure for keeping the business partners actively engaged.  These activities require a range of non-technical skills and are just as vital to the success of the project as the technical skills.  They aren't the only activities the project manager and business analyst bring to the party, as their traditional skills remain important, but these engagement tasks are vital.

It would be disastrous to lose any of these skills from the team.  If the developers just write spaghetti code, no amount of management wizardry will save the project.  Equally, if the customers and users aren't engaged, we will do little better than an old-fashioned waterfall project.  Software teams really do have to be teams.  I can see a risk if people start to think that agile just means the rituals without the content, so I will take Mike's article as a warning of what can go wrong.

There is another thread to Mike's article, which is a mistrust of estimation.  Indeed, he includes a large picture of Dr Evil saying, "We'll ask for estimates and then treat them as deadlines", which certainly rings true.  But the requirement to report progress is a genuine need.  You wouldn't pay someone to build a house without some idea of when it will be finished.   Someone who is paying for software also wants some indication of when they can expect to start using it. This is a hard topic and one I'll leave for another time.


Popular posts from this blog

Presentation: Putting IT all together

This is a presentation I gave to an audience of University staff: 

In this seminar, I invite you to consider what the University’s online services would be like, if we worked together to design them from the perspective of the student or member of staff who will use them, instead of designing them around the organisational units that provide them. I’ll start with how the services might appear to that student or member of staff, then work back from there to show what this implies for how we work, how we manage our data, and how we integrate our IT systems. It might even lead to changes in our organisational structure.

Our online services make a vital and valued contribution to the work of our students and staff. I argue that with better integration, more consistent user interfaces, and shared data, this contribution could be significantly enhanced.

This practice is called “Enterprise Architecture”. I’ll describe how it consults multiple organisational units and defines a framework …

Service Excellence, Digital Transformation and Enterprise Architecture

Our University Secretary has sponsored a major review of the University’s administrative processes, coining the banner “Service Excellence”.  The aim is to look at the services we provide to staff and students with a fresh eye, making them more effective, more efficient, and focussed on the user rather than administrative convenience.

Our CIO is sponsoring a similar programme called “Digital Transformation”. This will replace old paper-based processes, starting with the question of what would processes look like if we designed them afresh for the modern connected world.  The aim is to make processes that are more focussed on the user and hence more effective and efficient.

Both of these ambitious programmes will need an effective enterprise architecture, if they are to succeed.  Digital Transformation is intrinsically about using opportunities provided by new technology to improve services and, as such, it requires effective technology services to make data available when needed, to pro…

Not so simple...

A common approach to explaining the benefits of Enterprise Architecture is to draw two diagrams: one that shows a complicated mess of interconnections, and one that shows a nicely layered set of blocks. Something like this one, which came from some consultants:

I've never felt entirely happy with this approach.  Yes, we do want to remove as much of the needless complexity and ad-hoc design that litters the existing architecture.  Yes, we do want to simplify the architecture and make it more consistent and intelligible.  But the simplicity of the block diagram shown here is unobtainable in the vast majority of real enterprises.  We have a mixture of in-house development and different third-party systems, some hosted in-house, some on cloud infrastructure and some accessed as software-as-a-service.  For all the talk of standards, vendors use different authentication systems, different integration systems, and different user interfaces.

So the simple block diagram is, basically, a l…