Agile project management methodologies, for me, still seem to be a new thing – mainly because I was out of the game for so long. Looking back pre-2000 at what we used to do with Microsoft Project, GANTT charts and all that, Agile methodologies seem to be a natural progression in the way of doing things. Another 30 years and we’ll have something else? A new new way of managing things.

I think at the start the Agile thing was all about just trying to get away from a GANTTy way of managing projects to trying something new, or at least looking at what was working and trying to model that better in project management processes rather than trying to keep fitting the irregular shaped object into the symmetrical hole of traditional project management.

But I am in a state of digression. This Scrum book. Executive summary: it’s for cooks, not chefs. Scrum seems to be a well defined set of rules for how to do something, that have evolved through trial and error, and yet don’t seem to have a solid academic background to the reasoning behind them. Although, that could be because I’ve only read this book on Scrum, and this is a book of case studies of software development projects. And again, there’s something: it’s about software development. I’m sure Scrum could be used for other projects, something intellectual such as a business process or documentation – but that isn’t documented in this book.

Something that I do like about Scrum, is the idea of having a Sprint review and retrospective meetings at the end of each Sprint. I think these are quite often left until the end of each project, if they get done at all. Navel gazing is an important part of any process, so it’s nice to see it at stages through the project life cycle.

So, the downsides of Scrum. Those of the unbridled enthusiasm set would argue that there aren’t any, and that’s a fallacy. Everything has its downside, it’s a natural part of having an upside. So, one of the things that I don’t like is the implied inflexibility of the process. Sure, it’ll work if it’s a large project with more than 8 or so developers who don’t have other competing tasks or projects, but it doesn’t work for us (a very small team over multiple locations, multiple projects running at the same time, etc., etc., etc.)

By enforcing the terminology of ScrumMaster, Sprint, etc. and having no flexibility with Daily Scrum meetings,  it can belittle the process and reduce it to nothing more that mere spectacle.  I mean really, a $1 fine for missing the Daily Scrum meeting – are we adults?

Scrum also suffers from the assumption that the client will be available to make decisions quickly at the end of each Sprint. This might seem a strange assumption. If the project is that important to the client you’d think that they’d want to be involved with the project. My experience is that either the client is too involved, or not involved enough, or worse still, they vacillate between the two. Managing expectation and access is quite difficult at the best of times, it doesn’t help if the project grinds to a halt waiting for the client to approve what has been done so far and help decide what comes next.

In retrospect as well, the idea of collocated work teams can be both a blessing and a curse. If your work requires a period of concentration, then not having management interrupt you can be great. However, being collocated with your work colleagues can server as a substitution for those interruptions. Sure, having the stimulation of co-workers around you can help you when you need it, sometimes you don’t need it. This does come down to working out what kind of office space really works for you … maybe a mix of individual hot-pluggable offices and shared café like workspace.

So, to conclude, Scrum seems to me to be the most basic implementation of an Agile process, and that for me isn’t enough. And a book of case studies doesn’t sell me any more on the idea. We’ll take what we need from Scrum, just like any of the other processes out there, and put them into the blender and see what we get.

Share on TwitterShare on LinkedInDigg ThisShare on TumblrSubmit to StumbleUponSave on DeliciousSubmit to redditShare via email
 

On the bookshelves this year in the Agile Project Management category is Adaptive Project Framework: Managing Complexity in the Face of Uncertainty by Robert K. Wysocki Ph.D.

So, the executive summary: I like some of the ideas presented in the book. I do however feel that in the context that I am working in every day, that there does seem to be a little too much in terms of process for what we need. With a team of only a few programmers, and some jobs only lasting a couple of days work, we would be spending too much time following the process than actually doing the work. (But I’ll address that at the end.)

So, let’s start with some of the goodness.

The book has a much more academic feel than some of the others that I have read recently. What this means for you and me, is a much drier read. But it also means a lot more consideration, and thinking time has gone into the work – a book for chefs, not cooks and it covers a lot more of the why, rather than the what of the process.

One of the ideas I quite like was separating work flow into two types of work: probative and integrative swim lanes. Probative swim lanes are essentially a set of tasks that should be considered as research tasks. They are the process of investigating a particular direction of research. Thinking about the projects that I have been involved in over the years, it’s a good way to get an idea of identifying how much work a particular feature might take to build. Developers are often guilty of over engineering and under-estimating their solutions, and the probative swim lane helps by spending some time looking at a feature to get a better idea of how long it will take to build. It’s not about building the feature for production, but maybe trialling one aspect to see if the original estimate was correct or not, or to see if the choice of technology was a good idea. (It makes me think of the point made in Mythical Man Month where, if the development is 25% behind before the first milestone, then the next milestone will be 50% behind, and so on. Probative swim lanes help to identify this kind of issue very early on by doing some deeper research before making the estimate.)

Integrative swim lanes are where the real work is done for producing the completed product. That is, tasks which will take the project closer to it’s goal and will be part of the solution. When a project starts, most of the swim lanes will be probative. Adaptive Project Framework (APF) follows the general Agile Management Methodology in that there are checkpoints along the way to assess work done so far.

Once enough research has been done, and the best solutions (at the time) have been identified in the probative swim lanes, they are then moved into integrative swim lanes at each checkpoint where they can be completed and contribute to the final solution.

Other aspects of APF that I think are worthwhile are the two resources (well, one is a document, and it’s a little iffy about what the other is): the Conditions of Satisfaction (COS) and the Project Overview Statement (POS). (I’ll have to admit, I kept forgetting what all the TLAs meant while reading the book. An index of terms at the end would have been nice.)

The COS is a conversation to help give an idea of what is required. In the book it states it should ideally be a verbal conversation. (This related to one of the books pitfalls, which I’ll cover later.) In general terms this could be thought of as a project brief, something to get the ball rolling.

The POS is a document which helps keep the project on track, and helps identify when the project should stop – either by satisfying the goal(s) or by being killed off. The POS includes the problem or opportunity to be solved, the goal(s), the objectives, success criteria and risks and assumptions.

The author has a long history of project management, and has written a previous book that is used extensively as a textbook in educational institutions. One aspect of this book I find useful is that it puts APF in the context of other project management methodologies. If you’re familiar with other Agile Project Management Methodologies such as Scrum, then you’ll start mapping the terminology of Scrum onto APF, or the other way around. It is also quite clear that APF is not just for software development but any development process in the arena of the service or knowledge economy. That is, APF can be used for business re-engineering, course development or any other intellectual property based project.

The author is quite aware that this is a new framework, and expects change to occur. One of the reasons behind naming it Adaptive is to state that he expects it to change. Calling it a Framework also shows that it works at a meta level, and can be used to assess its own management processes.

So where are the pitfalls in the book? The first is a general one that I see. The author doesn’t really discuss the use of distributed project teams or processes. He thinks (and I feel most Agile Methodologies have this problem) that the team should be co-located. Putting up the project information in the tea room is a nice idea, if everyone is together (and drinks tea.) But in today’s distributed knowledge economy, that just can’t be a given. It’s a small point, but one that needs to be addressed more.

The second, and again I feel that most Agile Methodologies have this problem, is that it deals with large projects. I haven’t seen any methodologies yet (that doesn’t mean they don’t exist, just that I haven’t seen them) that deal with small projects, or projects run in parallel. The idea where the team can be devoted to the project 100% of the time just won’t work in a service based, small project environment. We quite often have 3 or 4 projects (or more) running at the same time all at different stages, sometimes we have to wait a week for the client to get back to us. I can’t see following a pure APF process really working.

That said, for the larger projects that we undertake then the ideas presented in the book would definitely work. (And for us, are working.)

Share on TwitterShare on LinkedInDigg ThisShare on TumblrSubmit to StumbleUponSave on DeliciousSubmit to redditShare via email
 

So, before we get to an analysis of Scrum, and what I consider its deficiencies for the type of work that I’m involved in, we’ll go and have a look at some other Agile Project Management methodologies.

One I found a little while ago, Anamorphic Web Development, sounds interesting. However, let’s dig a little into what it proposes.

Development begins almost immediately after conceptualization.

Right away, I can see problems. Too many times I’ve started projects before adequate planning and thinking has occurred. It’s like starting a road trip without looking at the map. You’ll manage to gain lots of distance, but it could be in the wrong direction.

The distinguishing factor of anamorphic web development is that the project continually and rapidly evolves or “morphs” to fit the needs of the client and end users, while trying to maintain its original concept and scope.

It’s this balance between original design and the morphing that can really cause problems. Like trying to hit a moving target, there’s not enough time to let the project settle down into a stable state because ideas keep getting grafted onto the original specification.

It is very important to note a clear and concise separation of the framework development phase and the features development phase …

Hang on, if you start development straight away after conceptualisation then does that mean a framework is already available for the programmers to work on? So we’re looking at a development project using a pre-built base, like WordPress.

I don’t have a problem with starting development early and producing prototypes, but without some clear idea of where the project is going then scope creep becomes a major issue. So, how does Anamorphic Web Development deal with creeping freaturism?

anamorphic projects are usually billed incrementally (monthly, weekly, daily, or hourly), due to the nature of the methodology …

That’s how. Let the client go wild with design features until they run out of money. Down side, they may end up with only half of what they had originally desired because the added extra crunchy features and tangents mean that they won’t get their original design completed.

At least the down side is clearly stated in the defining website. I can’t see how it’s going to work when we live in a world of clients who want estimates and quotes before work is approved.

So, we’ll leave Anamorphic Web Development. It really just sounds like a formalised pay by the hour project management methodology: contracting and consulting. Not a lot of theoretical design has gone into the system, it might work for them, but not for us.

Share on TwitterShare on LinkedInDigg ThisShare on TumblrSubmit to StumbleUponSave on DeliciousSubmit to redditShare via email
© 2011 The Three Legged Pig Suffusion theme by Sayontan Sinha