Back is the late 90’s in the heat of the .COM Boom, a new role started popping up on projects named Project Manager. Most people had no idea what the role could possibly be for. The .COM Boom teams of cowboy coders didn’t want managed. Almost every project I went to wanted nothing to do with the role. As projects started to succeed around the industry, it was quickly noticed that they had used a Project Manager.
One gig I was working on for a Fortune 1000 company had decided to use the Project Manager for a selling point for their services, but had no idea what they should do. They hired about 5 or 6 of them, paid them very nice salaries, and put them in charge of entering the developer’s time into a time sheet application. That was it. Well not really, they did invite them to meetings to show them off. But their job was to take minutes. They were not there to think or speak, just take the minutes.
A few years later the same pattern happened with the Software Architect. They were seen as more structure and discipline for the code cowboys. I can't even fathom a guess at a count of how many times I heard you are stifling our artistic talents, we need to be free to be creative.
I wish I could have been given the budget for art starter kits (a few canvasses, brushes, pencils, a little paint). I would have invited every one of those clowns to the nearest park for a team meeting. When they got there I would have handed out the art kits, pointed to the nearest bird or tree, and said you got all the time in the world to be artistically creative, because you are all fired. They were lucky that by then Project Managers were around, and they have a little more common sense when it comes to managing teams than I do.
Software Architects were also eventually seen as a selling point for projects by companies building software, but the companies had no idea what they were for.
I was brought into one gig as an architect and put into a cube with no computer. This was a government gig. I was told I could not bring my laptop to work and that my computer would be available in 3 to 4 weeks. When I asked what the heck was going on, I was told that the agency was told they needed an architect so they allocated the budget for one, they had approval to use the budget, so I was there to use it because they didn’t want to loose it. But the current project didn’t really need an architect, so I would need to wait for a project that did. So far there had been none. I left that day, not to return.
Today it is strange to find a project of any decent size without an Architect and a Project manager. You still find a lot of projects around that do not know what they are supposed to be doing, but good software shops do know why they are there and use them as they are supposed to.
Now we move onto the Software Process Engineer. In many of the companies I am working with today they know they need to say they have a solid process in order to sell their services. The problem they see with process is that it adds unnecessary overhead to every project.
One company I worked with had me present process suggestions on several different occasions. In the last meeting the division manager said, “All this was great stuff, but what I need to know is what the bottom line of additional hours is going to be on a good size project. For example, if I have a project of 1000 hours, would that increase to 1500 hours, 1250 hours, or 2000 hours?”
I responded with, “If you are doing process right, and you have institutionalized your process, it would equate to 850 hours total, saving you 150 hours”. But I was thinking, “how the heck do they get the estimate of 1000 hours, with absolutely no process in place?”. Over time I learn SWAG (Silly Wild Ass Guess) was part of the company’s common vocabulary. No process has ever been put in place there, because they just could not swallow that process would save them money. If I could not show them how much more they could bill customers for process being in place, they were not interested.
Software Process Engineers, sometimes called Software Process Architects, are now in the same boat the Project Manager and Software Architect was in a few years ago. They are seen as a good selling point, but that is about it.
Management didn’t happen on its own, Software Architecture didn’t happen on its own, and Process will not happen on its own either. If you are a company reading this and want to get the jump on your competition, hire a good Process Engineer and enable them to do their jobs. Just hiring one doesn’t do you any good, they must be supported and enabled.
A related rant on Software Process Engineering:Thinking Software Development Process Implementation is Free means the Blind are Leading the Blind, but there are Ruby Slippers that may Help.