My entire lunch conversation today was spawned from this fascinating presentation about spaghetti sauce. Watch the video and I’m sure you’ll be captivated for the 17-18 minutes that it runs. I was and my peer was as well. He’s working towards his Six Sigma black belt and we were talking about his project proposal.
My friend had long thought that we were over-extending the reach of Six Sigma by taking it into the software development world. After all, software development is about letting smart people do what they do best, right? Surely this was a bit like spaghetti sauce – everyone likes it a bit different. As you may have guessed, this is where our opinions diverged.
I’ve said before that there is a difference between process and methodology and that with software we have something that’s much more of a methodology than a process. I’ve also said that it’s a spectrum and can be more or less hand-wavy. But does the thought worker deserve to work in complete freedom? Are we to believe that cowboy coding or Agile can be the only way?
That’s a load of hooey. First off, we (is it fair to quote one’s own blog entry?) have my original post on variability among smart people. If consistent behavior is good for doctors, it can be good for developers. Secondly, we’ll accept for the purposes of this another of my prior arguments that all development is some form of “analyze, design, code and test.”
So where does process and methodology meet? The answer is: what can you control?
-
You can control documentation being created. Documentation does not exist for the sake of documenting. If you have this attitude towards document, don’t bother controlling their creation. They exist to prove, in writing, that you know what the heck you are talking about during analysis and design. It is a sound means of enabling (but not enforcing) peer review. In fact, I don’t really care if it ever gets read again. It served its purpose.
-
You cannot control the order a document is filled in. Don’t bother trying. It’s a document, not an on-line form which you move from screen to screen. If you’re writing a process flow and you are showing boxes (and I’ve seen this in my office) which says “fill out section 4.1″ you are either crazy or a super control freak. This is nuts.
-
You must control reviews and sign-off. Peer review can only work if you can enforce it. People throw process out the window when they get pressured and panicked whether real or perceived. You can enforce peer review by utilizing a tool which prevents its circumvention – MKS Integrity Manager, Clearquest, Serena TeamTrack, etc. This only works if getting to the code means going through the process. If the two are disconnected and I don’t have to do the documentation to change the code, you can be sure it will be skipped. And yes, in the Lean Waterfall Process I described on this site, we used the same process even in a complete panic. You could get through the process in less than an hour with complete and correct documentation. We didn’t roll software patches in less than a day, so an hour was reasonable.
-
You cannot control how people think, but you can check that they think things through. A bit like #2, if you’re putting boxes on a flow chart (or lines on a project plan) which indicate what a person should think about next, you are nuts. “Design web service then design UI” – you’ve got to be kidding me. What you can do is utilize checklists in peer reviews to assure that common mistakes are not made. Like documents, checklist use should be enforced or don’t bother.
This exposes an important point about process control. It has to be easier to do the right thing than to do the wrong thing. Technology makes this possible. Short of that, you get to spend your time policing your employees. And just like the real police who don’t prevent crime but instead react to it after it happens, the problem will have already been created in your organization.
Regardless, I am proposing that if you can’t control it, you don’t have a process. You don’t even have much of a methodology.
Posted by ProcessRants
Posted by ProcessRants
Posted by ProcessRants 