Friday, April 8, 2011

The software elephant re-visited: Lessons NOT learned from the past

25 years ago in 1986 I had just started my studies at Technical University of Dortmund, and worked on object-oriented analysis & design. I had a long reading list of articles but my favorite was by Frederic P. Brooks, Jr. a professor of computer science at the UNC. It was my favorite, since I studied computer science and biology and Brooks in his paper talked about growing software, instead of building it. He used a biological methaphor in a computer scientific context! I saw what I was intuitively doing in a different light...

Brooks is best known for his collection of essays on the art of software engineering, entitled "The Mythical Man-Month". He worked at IBM and is the father of the then state-of-the art computer operating system OS/360. Briefly Brooks like Don Knuth and a few other US professors were my heros of those days.
At that point in time, when I got to read some of these seminal papers, as they are called today in restrospect, I was somewhat undecided if I wanted to become a biologist or a computer scientist, and the article offered me a way to re-think what I was doing and combine both. I always had felt that both subjects somehow belong together, but only because I loved both subjects. Now I had a reason to continue with both.

I later dropped the idea to master in software engineering and turned to systems analysis since software was too much of a school of thought thing, with too many religious wars--while it lacked (and still lacks) a fundamental theory, which explains why software is intrinsically harder than hardware, and what we can do to solve this fundamental riddle. It is a bit like the grant unifying theory physicists search for in the past centuries but still nobody has any clue yet, if it exists.

System analysis has a nice fundament, i.e. pure mathematics, and the evil twin brother of pure mathematics, i.e. appplied mathematics or "numerics" (math that you need a computer to execute). And the complex systems analysis by evolutionary computation I spent almost a decade in, helped me a lot in combining both biology, computer science, numerics, computer graphice, super computers, etc. So it was time for a change the Internet had begun.

Now after another decade in building enterprise level software,  from Internet start-up to Global Communications Service Provider (CSP), I found myself drowning in maintaining legacy systems or at the helm to rescue multi-year software development projects from a status, also known as "death march". The idea here is to carry the resulting "dead horse" (a project in "death march" inevitably delivers), over the finishing line for project conclusion, proper financial accounting, and claim for "success"--

I have moved on to enterprise architecture. I thought this would be heaven, but woke up in HELL.

But the good thing is, I can now read the stuff I wanted to read over the last years, but never had the time to, since "dead horses" need a lot of heavy lifting... I just re-read the article by Brooks, and with 25 years more experience when I read it last time, I cannot understand why the wealth of knowledge compressed in such seminal writing is largely unknown and/or being ignored by today's generation of software developers, designers, project managers, and worst of all, those enterprise architects who advise the software development projects in large corporations with Power-points and Excel sheetsWe should know better, it is all out there for decades, just go and READ it! APPLY it! REDUCE the accidental artifacts in the process, so we can focus on the essence of the task ahead!

Brooks, Jr., F.P. 1986: "No Silver Bullet—Essence and Accidents of Software Engineering," Information Processing 86. H.J. Kugler, ed. Amsterdam: Elsevier Science Publishers B.V. (North Holland): 1069-1076. (Invited paper, International Federation of Information Processing (IFIP) Congress '86, Dublin, Ireland, September 1986.) Reprinted in Computer, 20, 4 (April 1987) 10-19. Also reprinted in The Mythical Man-Month, Anniversary Edition, Frederick P. Brooks, Jr., Addison-Wesley, 1995.
Now, pulling out my good old gauntlet, I started to write a series of essays. I know they will be useless, as were the essays of the real big shots above, but I know some of you will enjoy reading them, as much as I will enjoy writing them. And the process of writing gives me some peace of mind back, I was missing for many years, when I hardly wrote anything...

Enjoy! Have fun, -joke