Is that software project stressing you?
In last week’s Bible study at my church, a scripture came into my mind that I felt like sharing with you. I think it fits well with our profession in software development. But just before I jump into it, I’ll tell you the reason that pushed me to write this post. If you’ve been involved in a software project for some time you’ve probably noticed that it’s a pretty stressful profession. Whether you’re a lone wolf or part of a team, the goal is the same: delivering a product or a service to a client. The product can be either a component, a system, API documentation, tests, samples, installers, etc. The service can be playing the role of an auditor or a consultant inside an organization. The client in both instances often share the same characteristics: they don’t often know what they want or expect from the product or service, and they somehow seem to be determined on a date as if saying "I don’t know exactly what I want, but I definitively know when I want it". In my little head, this just doesn’t make sense. This reminds me of an instance where one of our managers sent an email to the team with the deliverables for the next iteration. It pretty much went like this:
Manager: All right Team. Here are your next deliverables. Please tell me immediately if you’ll have a problem meeting these dates:
=> Joe, you will be working with Susan on component A. This is due on August 25.
=> Alice, you will be responsible for component B and C. You will also produce the documentation. This is also due on August 25.
The problem with the last scenario was that no one knew what components A, B and C were suppose to be or do. There was no functional design whatsoever. The only thing that was certain was the date. And even then, we had no idea how that date came to be. And we had to agree on whether we were able to deliver unknown variables in a definitive point in time. That’s like a chief builder telling his subordinates to build a bridge (a product) but without fully understanding or knowing what’s at stake (the specifications), except for that date…that magic date where nor science nor common sense can help us to derive its reason. Sad…very sad.
I remember once reading an article which described the work conditions and environment of the Window NT 4.0 team at Microsoft while working towards that operating system. Apparently, it was so bad that some individuals ended up developing health problems, other went through divorce because their project was so demanding that they had to sleep over at the office on many occasions, some decided to quit and completely change professions, etc. My gosh…now that’s sad too. I mean who’s actually using Windows NT 4.0 nowadays? No doubt Windows NT 4.0 served as the basis of the Windows operating systems that we know today (XP, Vista, Server 2003, etc.), but was it really worth the health and lives of those human beings? I certainly don’t think so. I don’t doubt that there was some poor management decisions and weak estimations that went with the project, but that doesn’t change the fact that some lives were ruined by it. Twelve years later since the release of that product, information technology as we know it has changed dramatically and the way that software is being built has morphed into a more sophisticated discipline, but it still seems that team members are stressing more than before. It seems like their health and their lives are still on the brink of destruction.
In my experience, I’ve learned long ago not to stress for anything in life. When I was 15 years old, I was diagnosed with a bleeding ulcerative colitis. I still have it inside of me and if I stress too much, I’m quickly reminded to calm down. One reason why I certainly don’t stress in software development is twofold. First of all, software development is a passion. Fred Brooks said it well in The Mythical Man-Month:
Why is programming fun? What delights may it practitioner expect as his reward?
- First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God’s delight in making things, a delight shown in the distinctness and newness of each leaf and each snowflake.
- Second is the pleasure of making things that are useful to other people [...].
- Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning [...].
- Fourth is the joy of always learning, which springs from the nonrepeating nature of the task [...].
- Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure though-stuff. He builds his castles in the air, from air, creating by exertion of the imagination [...].
Second of all, software products tend to have a very short life. I don’t have the exact numbers, but I can confidently say that systems are changed or rebuilt every 36-48 months in average. So that means that the system you worked on so hard for so many hours, that system that made your body ache because of those long sitting periods, that system that made you swear multiple times, that system that built and destroyed human relationships, that system that made you doubt whether or not you were made for this profession, that system that replaced your family…where is that system now? Was it really worth your health and your life?
The scripture that was in my heart since last week can be found in the Book of Ecclesiastes 2:18-26. It’s a wake up call that really hits hard because it opens our eyes and helps us to realize that there is more to life than sacrificing our health, our lives and our soul to meeting a stupid date and building something that’s so temporary that it is sometimes not worth our intelligence and effort. I’ll end the post with the scripture in two versions to help you better understand what the writer is saying.
Ecclesiastes 2:18-26 (The Message)
18-19 And I hated everything I’d accomplished and accumulated on this earth. I can’t take it with me—no, I have to leave it to whoever comes after me. Whether they’re worthy or worthless—and who’s to tell?—they’ll take over the earthly results of my intense thinking and hard work. Smoke.
20-23 That’s when I called it quits, gave up on anything that could be hoped for on this earth. What’s the point of working your fingers to the bone if you hand over what you worked for to someone who never lifted a finger for it? Smoke, that’s what it is. A bad business from start to finish. So what do you get from a life of hard labor? Pain and grief from dawn to dusk. Never a decent night’s rest. Nothing but smoke.
24-26 The best you can do with your life is have a good time and get by the best you can. The way I see it, that’s it—divine fate. Whether we feast or fast, it’s up to God. God may give wisdom and knowledge and joy to his favorites, but sinners are assigned a life of hard labor, and end up turning their wages over to God’s favorites. Nothing but smoke—and spitting into the wind.
Ecclesiastes 2:18-26 (New Living Translation)
The Futility of Work
18 I came to hate all my hard work here on earth, for I must leave to others everything I have earned. 19 And who can tell whether my successors will be wise or foolish? Yet they will control everything I have gained by my skill and hard work under the sun. How meaningless! 20 So I gave up in despair, questioning the value of all my hard work in this world.21 Some people work wisely with knowledge and skill, then must leave the fruit of their efforts to someone who hasn’t worked for it. This, too, is meaningless, a great tragedy. 22 So what do people get in this life for all their hard work and anxiety? 23 Their days of labor are filled with pain and grief; even at night their minds cannot rest. It is all meaningless.
24 So I decided there is nothing better than to enjoy food and drink and to find satisfaction in work. Then I realized that these pleasures are from the hand of God. 25 For who can eat or enjoy anything apart from him?[a] 26 God gives wisdom, knowledge, and joy to those who please him. But if a sinner becomes wealthy, God takes the wealth away and gives it to those who please him. This, too, is meaningless—like chasing the wind.
By the way, if you’re looking for a better way to estimate your software projects, please by all means (legally of course…) read Steve McConnell’s book on software estimation: Software Estimation: Demystifying the Black Art from Microsoft Press. In my opinion, bad estimation is the major source of project failures and broken lives in software development.
Similar posts you might be interested in reading:
- "Copying a file too large for the destination file system"…Yeah, right!
- Three talks you should watch this week (Series #1)
- Customizing your command prompt
- God Wrote In LISP
- This Week’s Geek Links (May 24th, 2008)
- Better Modelling with the Visual Studio Class Designer
- Book Review #5: "Head First Software Development"






Is that software project stressing you?:
[...] p2pnet news Copyright © internet sc_project=3641399; sc_invisible=1; [...]
August 7, 2008, 2:36 pm