Skip to main content

But I Don't Have Time!

Article

But I Don't Have Time!

Article by Karl E. Wiegers | Comments: (19) | Thu, 07/25/2002 - 2:54pm
Summary:

Overworked software professionals sometimes skip things they know they should do, because they "don't have time." In this week's column, Karl Wiegers asks you to think about what you really mean when you say you don't have time, and he cautions you to take time to make time.

"If you don't have time to do it right, when will you have time to do it over?" I internalized the message on this sign in my high school chemistry class. Cutting corners and skipping steps saves you time today, but often you pay a much greater price farther down the line when fixing the problems caused by haste.

This is especially true in our industry. Overworked software people often push back against suggestions of actions they might take to improve their chances of project and organizational success. They protest, "I'd really like to do that and I know I should, but I don't have time." But what's the real message? Let's see what the refrain of "But I don't have time!" might really mean.

From Managers
"But I don't have time to hold a retrospective," declared the manager of a recently failed project, when my colleague suggested that it might be a good idea to reflect on what went wrong before they launched a second attempt. You could realistically interpret this message as, "We must get started on the next project immediately because it will take us so long to recover from making those same mistakes again."

"But I don't have time to identify risks and decide how to control them," another manager complained. He might have been thinking, "None of the bad things that happen to other people will happen to us." Hey, the risks are out there whether you choose to look for them or not. My personal preference is to fill in those parts of the map that are labeled "Here There Be Dragons."

I know someone who begins every new project by studying his organization's "lessons learned" repository. Then he charts a course based on the footsteps of those who have passed before. A project manager who doesn't have time to peruse the lessons learned has opted instead to wrestle with some of the same problems that previous managers have experienced.

You might have heard a manager say, "We don't have time to write a requirements specification." This person is relying on a mind meld to substitute for oral and written communication of the new system's requirements. The translation might be, "We need to start coding immediately so we have time later to change the system to really satisfy the users." This just doesn't seem efficient to me. Similarly, some customers resist participating in requirements elicitation, proclaiming that, "I don't have time to talk with you about my requirements. You should already know what I need." The clear message is, "The developers can use telepathy and clairvoyance to understand my business needs. If they miss the mark, I'll straighten them out after I see what they build as their first guess." You're going to get the customer feedback eventually. It's a lot less painful to get it before you've actually delivered the product.

From Developers
"I don't have time to do a technical feasibility evaluation," argued the harried developer. What he meant was that he would find plenty of time to rearchitect the system later when he couldn't satisfy the performance requirements. "We're doing rapid development here, so I don't have time to document my designs and code," is another developer mantra. Amazingly, maintenance staff (who are sometimes also the original developers) always seem to have time to reverse-engineer the design and requirements from the code when they have to make a change.

I get nervous when I hear a developer say, "I don't have time to do a bunch of design work. I need to get something running right away!" Could she really be saying, "I'll have lots of time later to refactor my initial design, thereby asymptotically approaching acceptable performance and satisfaction of the important quality attributes"?

What shall we think when we hear a developer say, "But I don't have time to hold a code inspection"? Does the developer believe that he'll need the time he saves by skipping the inspection to fix the bugs that the testers find in his code? Odds are he'll need many more hours for debugging than if he had subjected his code to the scrutiny of some colleagues before unleashing the testers on it.

From Everyone
You may not think you have time to spend on process improvement, either, but we all want the benefits of improved productivity and quality that can come from changing the ways we work. One seminar audience complained that they were being asked to do more work with fewer people. When I asked what the organization was doing to enable this outcome, the reply was "Nothing." There's never a convenient time to take the actions that we believe will pay big dividends. But the inconvenience of later fixes generally comes back with a vengeance. All you're doing is passing the inconvenience along to the customer, and then back to your developers when the complaints roll in.

To save time and money, beef up your development and management practices, invest in thorough requirements development, iterate on your designs, and review your code. That is, do all those things that people erroneously argue take too much time. When someone is debating the importance of these quality activities, you can respond, "But we don't have time to cut corners."

About The Author: Karl E. Wiegers

Karl Wiegers, Ph.D., is the Principal Consultant at Process Impact in Portland, Oregon, and the author of Software Requirements (Microsoft Press, 1999) and Creating a Software Engineering Culture (Dorset House, 1996). You can reach him at www.processimpact.com. You can find more than 35 of Karl's articles at www.processimpact.com/pubs.shtml

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

#1

There are time costs in following Quality practices, and in not following them. And you don't have to follow them 100% as described, or for 100% of your work. I think once you understand the rules, why they exist, and have followed them for a while, you can break them to suit your particular solution without losing. I'm attempting to address this in theory and practical ways in my new blog "Just Enough Software Quality" (http://jesq.blogspot.com).I haven't had "enough time" to write fully fledged unit tests for my current project, but I have written methods for NUnit that exercise my code (just often without a pass or fail check), I've designed it and architected it to be testable, I've spent time setting up Subversion, NAnt and CruiseControl, and I've built in extensive logging. As I'm the sole developer on this project and have been on a ridiculous deadline - I've conciously gone this way and after 9 months am yet to have a serious catastrophe to make me reconsider.If I do find time later, all the non-checking NUnit code I've written could easily be upgraded to fully-fledged unit tests. I do have 13+ years of experience, and for younger players I wouldn't recommend this.

#2

Great article! I am going through this right now. I informed them over 4 months ago about not having the requirements or the Design completed and accepted by the client. Now they are panicking because our final Build is Thursday and there are still crashes and unmet requirements. Our Division has just finished "cleaning up" a project that followed this same path and they still haven't learned. And even scarier, this current Project is to be the "blueprint" for all Projects like it...(getting shivers from fright...)

#3

While this is an excellent article, it's nothing new. 6 years ago the organization I was with was starting to look at the CMM and to help convince people of the need we brought Ray Dion of Raytheon fame to talk to us about his famous "Cost of Rework" study that helped Raytheon turn things around, cira 1985 - 1995. Thing is, he retired and management didn't give his replacement the adequate support and the program went into the crapper as did the company. This will keep happening in IT until someone with the right mindset gets in power.

#4

Karl, this is truly great article! It would be nice if more people in Development and even in QA would understand this and at least try to stick to do it right the first time. I like to compare testing with building a house. Would you build your dream house wihtout a detailed blueprint? Would you hire somebody just to do it, no matter what? Of course you wouldn't! You want everything nicely planned and laid out. You want to know how many rooms you will have in the house, where the kitchen will be, how many bathrooms you will have and so on... If you would like it that way for your house, then why pushing software development without creating proper design documents and specifications. I am sure that everyone in QA experienced lack of good quality design documentation just because there was not enough time!

#5

The article is very impressive,a must read for all S/W professionals.

#6

This is in response to the comments by Jim Hazen.I have never been able to change the mindset of an entire organization but I have found something that is very effective with individual managers or salespeople. In Stephen Coveys Book "7 Habits of Highly Effective People" he gives an example where a manager comes in and asks an overworked employee to take on additional tasks. The employee says it won't be a problem and then proceeds to show the manager a list of everything else on his plate at the time. He then asks the manager which of the current tasks the manager would like him to drop or neglect to take on the additional assignments.It's amazing how well this can work. We have a sales person in our organization that is constantly making commitments with his alligator mouth that his canary behind can't cover. Now when he calls in with another impossible request or commitment I respond by saying something like "No problem, now were you going to call the customer and let them know we didn't have time to test this before we shipped it to them so they could run their entire business on it or would you like me to?"He has gotten a lot better at calling in to double check before making commitments.And this approach can work in most situation. The gentleman who didn't have the specifications by May but was still under the same deadline could approach the PM with something like "I need the spec before we can do the coding so were you going to let the client know the schedule has been pushed back because we don't have a spec or are we going to tell them we'll just throw a little something together at the last minute?".It's not a guarentee that everyone will now understand the time it takes to do things right but it may come in handy when you're feeling overworked and underappreciated.

#7

My favorite wall sign went along the lines of:"You want it, you got it.You want it bad, you got it - bad.You want it REAL bad - you got it, REAL bad.Now, just how bad did you want it?"

#8

This strikes a chord as two days ago I was informed that the test group would be making assumptions on various field attributes, even where the expected result varied from the observed. Having many years of experience in testing I felt that the 10 minutes to investigate the correct operation of the field was worth it when compared with the potentially thousands of dollars that may be required to change the software when UAT determined that the assumption made was incorrect. It's a classic case of an impossible deadline, however since the defect is of such low severity it would be possible to raise it, defer it for the moment and deal with it when the deadline has passed - the exit criteria for this test allows for that action. Unfortunately the defect has been closed and therefore no further action will be taken.This culture of assumption is becoming ingrained in that test group, all because there "no time".

#9

I feel that pain. Our main reason for not having time is we are consumed with fixing the problems created by the projects we released in a hurry because we didn't have enough time to do it right. This is an ugly cycle that will be painful to break - when we have the time to fix it.

#10

RIGHT ON!

#11

Another gem from Karl. I can almost hear a chorus from process folks, "Right on!" I remember a quote from 8th grade English, "It takes longer to get it right if you don't get it right the first time." The more we put off processes and learning from past mistakes, the longer it'll take for us to get it right. If we resolve it right then and there, we can save valuable time.

#12

From Richard Warden,Excellent article. If a manager says we don't have time to do it right (but have time for all the expensive rework of doing it wrong)suggest the following analogy."Which do you prefer; to build a fence at the top of the cliff or create a fleet of ambulances and paramedics at the bottom?"

#13

It's important to take time to do good design and requirements work. It's also just as important to define tangible work products that show that something's gotten done. I've been involved with projects that got derailed because the management team or the client got impatient waiting to see something tangible from all those meetings and design sessions.As someone more cynical than I am once said, "Progress is good. Appearance of progress is sometimes better."

#14

This a great article. Congratulations.

#15

Excellent article. These are the few questions I asked some of the folks in recent times;1. Do you want me to do it right or right-now?2. Do you want me to work smart or work hard?3. Do you want me to spend 1 week in planning now or want me in test re-executions/defect fixes for 1 month later?4. Do you want me to release the product on time with quality by proper planning/processes or meet only the date by improper planning?I have seen "No time now" results in more time spent later. In the past I have been a culprit to this also. Now I feel "I don't have time" was always used as an excuse for not doing something. Recently I have been to a testing conference in Melbourne and many delegates told me the awareness of "process implemntation for better results" is very less and still many management staff want us to work harder but not interested in processes.

#16

I agree to what Karl says. Managers, Developers and Testers could realize that how important to do the right things at right time. That time we are talking about is the Quality time. Even the Customers should understand how importanat to do certain activities in a project for getting a Quality product / application. If they are able to appreciate this, then automatically our schedules would take care of qualitative activities. Software industry and the Solution seekers should go hand in hand in this regard.

#17

Yeah, I can agree. My only contention is that this "I don't have time" mentality is a cascade affect. This starts up high and as the saying goes "it all flows downhill". You (we as Test professionals) can champion these ideals, but until there is buy in (from everyone, and especially upper level management) it will be business as usual.The key here is buy in to the practices and principles of what we should do instead of what we really do. The real question I see here is not that we should do the things suggested in the article, but how do we get the buy in. How do we change a mindset and corporate culture that was in place before we showed up.That has been my experience over the last 15 years. I have only seen it happen twice where the powers that be woke up and said we need to change, bought into it, and stayed with it. Only then did we "make" and "get" the time.

#18

I went through a major development effort starting in February. By May, the specificaitons were still not delivered other than a vague 'we need this feature.' I sketched out a general design on a white board to see if this would ignite the project manager to make some concrete decisions. At the end of the meeting I was no closer to having a set of specifications by the PM and was under a deadline. To make matters worse, I was not allowed face time with my clients. It's amazed I delivered the delivery, but I felt like a bunch of the people mentioned in the article. The sad thing is this behvaiour has become so rampant in organizations, yet every job posting I see mentions proper design requirements as a major emphasis on the hiring. Seems silly when most shops are not practising what they are coding so to speak . . .

#19

Hi Karl,A very good article indeed. Thanks ! Every one should inculcate the Quality bend and effectively manage time to do "things right" as the saying goes "Prevention is always better than cure " ...