My starting point for this blog was going to be about the large open source annual event of the year called OSCON 2011 and sure enough it was interesting in terms of the spread of topics and speakers advocating how and where open source is growing. True to the spirit of open source, the event has made it very easy to ‘participate’ by making most, if not all, of the material available from its website which includes an indexed list of speakers and their slides. What struck me most was that open source is now a fact of life, and most IT shops have become users in some way or other over the last few years, so this is a pretty good overview on the topic, but it seems lacking any big news!
What has caught my eye is all the recent material about the way we build and deliver software in terms of methods and an escalating debate as to whether traditional project management is helping or hindering in these changes. This also includes one area that I think may be big news, and makes logical sense as a build on how things are progressing, and that’s ‘social coding’. If you are not up to speed on this topic then Rick Freedman wrote a good piece entitled ‘Social coding – the next wave in development’ on the TechRepublic website in July. By the way, the last line in this piece is critical and I will be coming back to this point.
There are several start-ups in this space, but GitHub is the one I am most aware of and is linked to Tim O’Reilly and the open source movement, so it’s a good example. The idea is to make it ‘easier to collaborate with others and share your projects with the universe.’ A claimed one million people are using GitHub and have stored two million code repositories for reuse through a set of powerful tools that GitHub was created around.
Why it interests me is that it corresponds to the way business itself is changing, i.e. a focus towards an ever-increasing amount of online interactions and collaborations in the front office around events and markets that are for ever changing, rather than the back office and its large stable of carefully crafted and compliant, maintained, transactional processes. In short, it mirrors the fluid interactions and collaborations to deliver short-term optimizations and success. To me, it’s the shift in organizing how we respond to and deliver to a new generation of requirements that’s the issue, much, much more than the discussions on Agile, Scrum, etc.
Though that’s not to say these topics are unimportant, but it’s a cause and effect issue; the cause for change is business and working changes, the effect is the methods in use to write software change to match. I suspect that some of the issues encountered over the last year really stem from the coding method not being aligned to the project delivery method. Scrum in particular has suffered from this issue so here is my opportunity to point to a new updated set of principles from the founders of Scrum, Ken Schwaber, and Jeff Sutherland, in the form of the definitive Scrum Guide 2011, available together with other interesting stuff from the Scrum website.
So what was the last line in the social coding piece that was so critical? It read: ‘These new social coding tools enable a revolution in product development through communities; the challenge is getting the organization and project teams to think and act as communities.’ I would slightly re-word this and say, ‘think and act as part of communities.’ If the business sponsor is directly and closely engaged with the coding team, managing the requirements and deliverables, and the project manager is not on side enabling this then their role becomes an opposing force, and all too often their mature rulebook based on ‘the way we do things round here’ is simply not appropriate and ends up damaging the project.
A good example is usually the amount and time of testing being correct for a monolithic core enterprise application where failure would literally be catastrophic, rather than a small code object that might be used for four weeks before modification or even being binned. So what could their role morph into? It’s an interesting question that should attract some good posted comments! My view is that we are going to need a new role and emphasis on the continuity of knowledge and approach by being maintained for the whole, and that the project manager becomes more of a mentor and enabler by being able to play the role of the external collaboration manager.
I’m looking forward to some good comments on this contentious subject!! To get started here is an interesting set of views posted in answer to the question; Project Manager, Scrum Master, or are they one and the same?