Dec 042010
 

This book, which covers the years from 1993 to 1995, is a depressing view of the inside of a multimedia project run by young, Generation X Microserfs who sincerely believed in the company vision. Although, with a company that large, that diverse and that disorganised, I think the vision couldn’t be seen for the re-organisations.

The book follows a group of 20 somethings from the initial ideas of the multimedia project (called Sendak until it’s official name of Explorapedia was chosen,) through to almost the delivery stage. And there are two over-riding themes that contribute to the almost failure of the project: unclear lines of control and indecisiveness.

Let’s look at these in turn.

Production Manager, Project Manager, Art Director, Lead Programmer and Chief Coffee Maker. (Okay, I make that last one up.) Throughout the multimedia project detailed in this book, the roles people undertook always seemed to be fluid in their meaning and responsibilities. One reason for this was that, as Microsoft was growing so fast, internal people were often promoted over taking in external hires and so some quite young staff ended up in fairly senior positions. People who once worked as equals, were now supervisor and supervised. Which might not be a bad thing, but without the proper training, could be quite catastrophic in the personal and professional relationships of all those involved. Here, this was experienced as the previous Art Director on another project was now the Producer (or the other way around, or the Production Manager – I should have taken notes while reading it,) and it wasn’t always clear who had what responsibility. So, one person was sometimes jumping in and doing the other’s work, and as the project went on, there would be re-organisation after re-organisation which lead to mass confusion about who exactly the decision makers were.

We trained hard, but it seemed that every time we were beginning to form up into teams, we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising; and a wonderful method it can be for creating the illusion of progress while producing confusion, and demoralisation.

Petronius Arbiter, 210 B.C.

It just seemed to be the Microsoft Way.

The other problem with this project was the scope of what was being produced. The clearest voice of reason in all of this was the cranky programmer, who knew quite well when things had to be finalised, and not changed in order to have the code finished and tested to meet the ship date. The programmers, as the ones doing the work in the last stage of the design and development process, always appeared to be the group that had slipped and missed their milestones, rather than the designers who had missed their deadlines at the beginning of the project because of an inability to make a decision, and stick to it.

And here’s where the traditional Project Management Methodology and also Agile Project Management Methodology can fail: once a decision has been made, even though it’s software, it costs a lot to go back and re-engineer something. This project almost failed because the scope was a wibbly-wobbly kind of thing that the team never really got a hold on, wrestled to the ground and took control of. As such, late in the design and early development stages, fundamental changes were introduced that changed the game (literally.)

So, what can be learned from this? Make sure that the client (even an internal client) knows that a change in scope means changes in time and cost. It’s an immutable law of Project Management, and I know we all know it, but sometimes we need to state the obvious. Also, experience pays off – in software development most people are in their 20s, and now that I’m not, I can look back and see how inexperienced I used to be, and how much there really is to learn about process management.

The project shipped, many people were burnt out, angry, demoralised and just plain over it. But in the end, as we all know, we just get back up again and walk into the maelstrom for one more go, because we believe this time it will be better – it just has to be.

Finally, one criticism of the book: I kept getting lost with regards to who was who. Sometimes the author would use a person’s given name, and then later in the book, their family name, and then back again. So, as people changed positions, I didn’t know who the Project Manager was from the Producer to the Production Manager. It’s a small quibble, and really in the end it doesn’t distract from the book.

But overall, it’s good to see that the problems we might be having now, aren’t new. And that we can learn from history, as short as the history of software development is.

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

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: 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
Aug 072010
 

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