Tuesday, April 14, 2009

Software Development is like cooking with too many chefs in the kitchen ;p...



Working with Software Developers is always a challenge IMO (not so humble opinion) its the more difficult challenge as compared to other more tangible Project Management disciplines (IT, Construction, etc). The simple reason is that you are dealing with the intangible and often fluid nature of software.

Software of any significant value is simple in its value offering, but inherently complex in its development. This complexity is an equation of developer personalities, responsibilities, organizational infrastructure, communication levels, political battles, resources all shifting to meet the needs of the consumer of the application that needs to be balanced adroitly. The same could be said for a construction project or server deployment but the concept of ground being broken and servers are on the dock is by and far more real than, how an abstract object will be handled by the as yet un-coded system.

Where in traditional IT shops and more concrete project organizations like construction there are a lot of regulatory strictures that exist, governance is part of the overall development model, in software similar concepts exist but the ways to meet them are as limited only by the architecture and skill of the development team(s) and their product owner(s) framing the problem space. That's why software is so different. So many factors so many people feeding the critical mix soup, then factor in the vendors, the methodologies and the time and associated risks it often is a maelstrom of chaotic decisions and knee jerk reactions all to the beat of the all mighty "Time to Market Drum" hammering away at you.

This is not to say all Software shops are the same they aren't, like anything there are orders of Magnitude of chaos. Software serving high governance industries will never be built the same as a video game (having worked in both sides of the spectrum I can attest to that). But it never looses its fluidity its almost art like quality, that when your cooking it it has to come out right or it will fail to meet expectations. Developers are like Chefs striving to make the experience unique and to their liking, like true artisans of their craft and the restaurateur the product owner or management hammering away at them to make the restaurant shine and then there's the general manager of the restaurant doing his best to keep the kitchen in shape and the chef's from fighting with each other and churning out wonderful dining experiences so that people come back and buy more.

Awfully flowery but close enough.

The whole idea here is that for me at least, a project manager in a software environment is supposed to bring harmony in a world of dissonance. To pull together the team by whatever means (hard selling or soft selling methodolgies, tools, communication models whatever is apropos to the problem space) necessary to bring clarity and concordance to the team and start delivering value add as quickly and as efficiently as possible. (Somewhere in there there has to be management support but that's a whole other story)

No comments: