It all comes down to the motivation

One of the things that irritates me is the fact that most universities teach software engineering the DOD-way...

Wow. I've been thinking about this post since I read it a few days ago. I work for a big financial company, and I deal with this constantly - every spec, no matter how simple the subject matter, is ridiculed and written off if it's under 100 pages... but no one really reads it. Business Analysts with no real understanding of the data or systems hash how things will work before they get the technical folks involved, only to find out that they've specified an impossible solution. Don't get me wrong, I love my job, but it's definitely not the most efficient environment for building high quality software...

It's amazing how the software development community falls into two camps - but I think it all makes sense. It all comes down to what's motivating your development. DOD development is about trying to prevent disaster, and - if it happens - assigning the blame to someone else. UML, Rational, OOP, documentation - they're great tools in the hands of an efficient software shop, but they can only be the focus if building quality software isn't.

Microsoft style development - the MSF, etc., is about seizing opportunities in the most efficient manner possible. As some component vendor used to say, the point is productivity.

So, if your development shop's culture (not just the broader corporate culture) places the highest value on pleasing customers, then you'll use whatever tools help meet that end more efficiently. It's development capitalism - survival of the fittest methodologies.

If your development shop becomes disconnected from pleasing the end user, then the process will become illogical to those who assume that perspective. People become more concerned with not getting fired. Process becomes a checklist - is it OOP (whatever that means)? Check. Are there sequence diagrams? Check... The economic analog of process over efficiency is communism - an ominous model for a company to emulate.

Which all comes back to why Microsoft's continued success is the result of an enormous, top down effort to maintain the right focus. “Stay hungry”, avoid the temptation of assuming the status quo, and realize that the only thing that matters is how efficiently you deliver the end users what they really want. That's not a topic that's likely to excite most computer science professors, to return to the main topic of the original post.

No Comments