Apps

Poll: Are deadlines necessary for programmers?

Should programmers should be trusted to self-manage their time, or do they need deadlines to complete projects in a timely fashion? Take this quick poll and then post your comments.

In most situations, I don't think that giving programmers deadlines makes much sense. If you assign a project to a mature adult, he or she should do it as quickly as possible without compromising quality. It is not as though a project deadline will make the work go any quicker or that setting an impossible deadline will allow a programmer to defy the laws of project reality.

And yet, I have observed that, for many people (myself included on occasion), having a deadline is critical for getting things done. When I have delegated or assigned work with no deadlines, the work almost never gets completed. For me, it takes a lot of self-motivation to finish some projects that don't have a deadline.

Do you think programmers should be trusted to self-manage their time, or do they need set deadlines to complete projects in a timely fashion? Share your opinions by taking the poll and commenting in the discussion.

J.Ja

About

Justin James is the Lead Architect for Conigent.

69 comments
jrussell_fl
jrussell_fl

This poll starts with a flawed premise (sorry Justin it just doesn't work on planet earth). In Justin James' opening paragraph he starts with this sentence: "In most situations, I don?t think that giving programmers deadlines makes much sense." My only rational response to that is that if Justin James was on my project team I would spend copious amounts of time petitioning to have him removed from the project and also suggest that we never work with him again (i.e. fired or taken off the approved contractors list). C'mon dude. Are you insane? What makes a programmer so much above the rest of us mere mortals that you think they can do their work whenever they see fit, on their own schedule, without regard to "arbitrary" deadlines. Oh yeah, let's not forget Justin's qualification: "If you assign a project to a mature adult, he or she should do it as quickly as possible without compromising quality." Duh! Well of course this makes sense because this mature adult has absolutely nothing else to do but your project. Yeah right. Reality check Justin (sorry I'm using your name so much but you brought it up) - project managers, QA testers, business analysts, DBA's and yes the very hallowed programmers all have work assignments that have NOTHING to do with your project. That in a nutshell, the fact that I have to actually tell you that, tells me that you have no concept of what a project deadline means or why it is necessary. It is not, as one poster has stated, only for project managers. (btw I am both a programmer - currently web apps with PHP/Zend, and a PM). A deadline is an agreement between two, what was it Justin? oh yeah - mature adults, about the scope of the work being requested and when it can be completed taking into account the "programmer's" current workload. Believe it or not with most "mature adult PM's" the discussion includes reasonability of time spent vs. work requested. The deadline is not arbitrary as some have stated (not at the PM level anyway - the VP, that's another story) but it is the culmination of a discussion and a professional agreement. It is not do it by this date or else, it is you told me it would take 2 weeks, I gave you THREE, so don't give me any complaints when I expect you to live up to your agreement. Sorry Justin I can't give your incredible ignorance of real life any more time. The poll questions? Equally flawed: - Nothing gets done without deadlines. - Some people or projects do not need deadlines. - Deadlines are completely arbitrary and useless. How about Deadlines are an agreement or a contract. Programmers (hello Justin) who don't get this are, hmmm, whiners at best. If you can't live up to your word then don't give it in the first place. they should do it as quickly as possible...sheesh

paul_p_vargas
paul_p_vargas

I believe deadlines are important to managers as well as to programmers. Some programmers can self motivate but it's not the only factor to get the things done. If a programmer have 10 tasks on his table, he has to prioritize them and this is only possible by knowing the deadline of each task. I just hate hearing this from a boss: "I need it YESTERDAY".

Envy-Tech
Envy-Tech

I think many projects need deadlines, but it all dependent on the client's wants! If they want to see progress & want to be able to put out livedates, then they should have deadlines. If they have a live date, but just want the project for then, I think the programmer just needs to check in to show progression.

charmaine khay
charmaine khay

As a student, it's hard for us to meet deadlines especially if a program must be finished within a short period of time. A deadline must be realistic. Just like if you asked us to do a very complex program, as an experienced mentor, you should know our capability when we can finish the program. On the other hand, it sets my works in a hierarchy of priorities, therefore helping me which one to finish first. :)

ron_r_a
ron_r_a

If you can't set a deadline, then you are telling me that your project is not even worthy of your full attention. So, it goes down to the bottom of the pile until you wake up. Unless, of course, the project outline includes a hamburger and milkshake.

kovachevg
kovachevg

Invariably there is a level of unpredictability with any project. If everything was completely predictable before a project kickoff then all deadlines could be firmly set to a specific date. However, reality dictates a different approach: have a tentative deadline with some slack time to cover contingencies, such as: hardware not delivered on time, libraries not updated or released on time, developers not completely sure how to perform a task, fuzzy requirements that may change, etc.

melias
melias

I like the entire premise of this question. It really is funny how this post re-inforces something the IT community has been buying into since its inception and the rest of the business world does not. That is, that IT is for some reason separate and above from the rest of the business community, a parody of the holy priest or divinity class that means we do not have to adhere to the rules and practices of any other division in a company/governmental agency. I would say to anyone who buys into that to much, deadlines are not for you. They are for the people who pay your salaries. Please do your best to meet them, or find a job without deadlines. Like a street beggar. Oh, deadlines are necessary. Whether they are formal and set by managers or PMs; or informal, set by peers and colleagues. It provides a framework around which you can schedule your time and priorities. Just like any framework, its validity depends upon the skill and thought that went into it. Finally, without deadlines, integration of code into hardware manufacturing is nearly impossible in a large scale project. Think aircraft, large-scale manufacturing, the new Gerald Ford class of aircraft carriers. Software development is not a stand-alone industry. Scheduling is a must, which includes deadlines. /soapbox. Thank you for your time. :)

lgjohns
lgjohns

They are absolutely necessary for expectation management (generally customer and figureheads creating the (occasionally meaningless) deadlines).

gohlberg
gohlberg

Don't call them dead as in 'if you don't hurry and get it done, you are dead.' I agree with most that ECDs need to be realistic and flexible. Of course this relies on periodic status reporting to MGT and that MGT up-channels realistic progress to the consumer.

oldbaritone
oldbaritone

Deadlines are necessary, but they must be realistic. I have been in situations where we created a proposal, with a good-faith estimate of the time required to complete the project. Then management set the deadline at 2/3 of the estimate, and wanted mandatory overtime to complete the project "on time" to their arbitrary deadline. When we said "OK, give us enough help to complete the estimated work hours within your time frame," the answer was "you have all of the help you need." We completed the project a little ahead of our schedule, and weeks after management's arbitrary deadline. Our front-end estimate of the scope of the project was quite accurate, within a couple percent. Not bad for a multi-thousand labor-hour project. So the deadline did much to demoralize, and little to help. There was a substantial period of accusatory "this project is behind schedule." But there was no buy-in from the team, from the outset, that the deadline was realistic. We all knew it wasn't. So I agree that deadlines can be very helpful to maintain focus, but only if they are realistic and agreed by all parties. Arbitrary and capricious deadlines do more harm than good.

EdMerc
EdMerc

I used to think that deadlines where a must. That is until I started working where I am now. This place takes a real hands off, quality first approach and guess what... Everybody instinctively takes ownership of their projects. We have weekly update meetings where we all report our progress to the group (not just to the manager) and the energy and support that comes out of that seems to propel projects and, the programmers themselves, forward. Perhaps we have a unique team. It's true that the vetting process here is pretty extensive. No direct hires. The only way in is as a contractor on three month contract. Those three months are the "extended interview". Who would of thought that if you treat people like adults, they would behave like adults.

kitico
kitico

Right now I am facing a deadline on a big project with no real specifications. We will be working a lot of hours to make the deadline and the specifications, when we do finally get them, are going to be fluid and changing up until the end. Now, under these conditions, who would say that the deadline is meaningful or helpful? Really, isn't the deadline a symptom of the problem in this case? To be fair, I have worked projects that did have meaningful and helpful deadlines.

jkameleon
jkameleon

... necessary nonetheless. A tradition, and precious opportunity for managers to manage something.

natale
natale

Deadlines are a necessary evil, however, there should be a guideline set down by people at are realistic in their goal setting. That is to say, the person setting the deadline, should know an understand the needs of the customer/client and to build expectations that are realistic in nature.

gmiller1018
gmiller1018

Realistic deadlines are a good thing but arbitrary and unrealistic ones are a joke and detrimental to getting things done. If the people who are implementing a project do not think the deadlines are realistic then they will have no incentive to do the work since they feel the project is doomed.

topgun743
topgun743

Yes, Deadlines are necessary but should be flexible or with a margin. They are to set direction and motivation for people but the fact is IT projects especially software development projects cannot be 100% tangible i.e they cannot be predicted 100% when they'd complete because of the possible change in software workflows. It also depends upon the complexity of the project/module. Some things seem very easy at start but as soon as you dive into them, you start feeling "this also needs to be done, this also, that was not evaluated in analysis but thats vital to workflow......" and the list might continue on asking the deadline to inflate itself. Nevertheless deadlines are for setting targets and w/o targets everything might went astray, but the person setting them should set them wisely and be flexible in nature.

jimt007
jimt007

I think eveyone needs some form of understanding the critical nature of the job. Deadlines don't have to be an impossible mission. What they do need to fo is coveigh to the employee the level of need required to complete the proect. At the same time the programmer is resposible for speaking up if the request defies reality.

jaye
jaye

How can you control effort without it? No customer would fund a development effort without it.

Ahmed.Osama.777
Ahmed.Osama.777

Deadline usually is a "Motivation" ,whether we like it or not, to get things done.

sms2
sms2

Deadlines are OK providing the brief is detailed and realistic. However, watcht out for scope creep.

Marc Thibault
Marc Thibault

Deadlines, in the sense of best estimate for time to complete, are necessary because programmers and their work don't live in a vacuum. We need to know when they'll be available for more work and they need to know when they can schedule vacations and other important things. The three of you who actually live in a Dilbert Universe can hit the "Next" button now. Competent PMs know that the assigned programmer is the best estimator of how long a task will take. "The best" doesn't mean they're any good--just better than whoever comes second. On the other hand, programmers can be trained to be good estimators, and they can be trained to work toward target dates without tail crunch and with a reasonable probability of success--in fact, an arbitrarily high probability of success. It hides an underlying complexity, but the formula is easy: More Time, Less Risk. Quantifying that relationship is very interesting work. A realistic plan starts with realistic task estimates and programmers who know how to finish early as well as they know how to finish late. They aren't born with that skill and it's not taught in CS or any cert program.

RFink
RFink

They're needed but the question is: Are they based on reality or just numbers pulled out of the hat?

mafergus
mafergus

They are very needed, but I think the key is what happens when they are or are not reached. If they penalties are too mild, then they are useless, too harsh and the estimates get set too long to insure that nobody ever misses one! I think some companies forget that deadlines are often negotiated based on internal or external customer needs and may require adjustments to what we may think is the ideal solution.

Tony Hopkinson
Tony Hopkinson

how else would we be able to work out how long we had to something..... :( :( :(

Justin James
Justin James

You know why I don't think giving programmers deadlines make any sense? Because there is no really good way of determining what the deadline should be. It's not like, say, building a car at a factory. The steps for building a car do not change at all, once you have built a few, you know how long it takes to build that model of vehicle. But you know what else? I don't believe that programming work is unique, either. Construction projects are often late for the same reason, unless they are building cookie cutter items like houses in a subdivision. Auto mechanics' true time on a project is frequently nowhere near their estimate, which is why they don't bill you based on actual time. And so on. "A deadline is an agreement between two, what was it Justin? oh yeah - mature adults, about the scope of the work being requested and when it can be completed taking into account the "programmer's" current workload. Believe it or not with most "mature adult PM's" the discussion includes reasonability of time spent vs. work requested. The deadline is not arbitrary as some have stated (not at the PM level anyway - the VP, that's another story) but it is the culmination of a discussion and a professional agreement. It is not do it by this date or else, it is you told me it would take 2 weeks, I gave you THREE, so don't give me any complaints when I expect you to live up to your agreement." When things work like this (which I agree is the ideal), then it is barely even a "deadline". Seriously. It is an agreed upon date of completion, which is completely different from what is standard in the industry. Let me relate a story. I've been working with a graphics designer on a personal project. I asked for a logo to be made. I don't know what his process is, how long it takes for the creative juices to flow, or whatever. While I had in the back of my head a date that would make my life easier if the work was done by, I know that *I can't rush a good job*. Something like graphic design, when the work is done, the work is done. Can I ask for a ballpark date? Sure. But I also know from personal experience (both working closely with graphics designers and from dabbling in it myself) that some things just take longer than expected. Maybe "the great idea" didn't pop into mind at once. Perhaps the effect that you want takes much longer to create than you expected. And so on. Am I going to tell this person, "I need it by this date!" (that's a deadline)? Nope. Because I know that I'll get sub-par work. I asked him, "about when do you think this can be done by?" And he gave me a date that worked well for me. This is the difference between a negotiated finish date and a deadline. Now, when he blew the negotiated finish date, then yes, we had a problem. After all, as you say, I let him make the rope, and he hung himself by it. Luckily, on this particular project it wasn't critical... I needed an ETC more for money management than anything else. But at the same time, if it was a project on the job, it would have been pretty disastrous. So yeah, it's not that I'm as stupid as you seem to think I am. We are actually in agreement for the most part. I just don't think that handing someone a date and saying, "I need this by then" works out well. If you as the manager accepted a deadline without having a project plan, and then think that you can just pass that down to the person who is doing the work, you are wrong. This may be how many companies operate, but it is not a sound business practice. J.Ja

Tony Hopkinson
Tony Hopkinson

A deadline is effectively an indicator of priority, but a list with high, medium and low would do that job. It's easy to get in a situation where deadlines can't be met, priorities always can though.

Tony Hopkinson
Tony Hopkinson

late and over budget yes. Deadlines are useful in that, they give you a good comparison between where you are and where management wished you were. A bit less of the eyes tightly closed and fingers fiercely crossed approach on their part would be useful.

jk2001
jk2001

Read the poll - most people believe deadlines are necessary. The main complaint I'm reading is that management add requirements to a project without extending the deadline. That's not a programmer's problem - it's a management problem.

jk2001
jk2001

That is seriously messed up what management pulled. Good for you!

Justin James
Justin James

You hit the nail on the head. That's how I've always liked to work too. The problem I've found is that so many people have been abused over the years by bad managers, they are unable to work like this. They just do not know how to function without an oppressive overlord putting them in situations which demand death marches or constant (emotional) beatings. You set them free and they just kind of mill around. Maybe they can adapt to things eventually, but it's hard to tell. In general, I try to not give people deadlines. I'll tell them what their priorities are and expect them to work full steam on #1 until it becomes held up or done then go to #2 and so on. I might tell them what funny, arbitrary date *my* bosses expect. My expectation is that a grown adult will then get things done in the best time possible. This often works out, but some folks just can't handle the responsibility and think no deadline means that it's unimportant. J.Ja

dmacleod
dmacleod

Having read through all the posts, I'm depressed! What a mess we get ourselves into with regard to deadlines. They are misunderstood, misapplied and mistaken in their purpose. A deadline is an example of a project CONSTRAINT; the definition of a constraint is a limit, boundary or regulation within which the project manager has to plan and manage the project. A budget is another example of a project constraint. In my long experience, deadlines and budgets are set by senior managers who have no idea how long the project will take or how much it will cost. So how do they get to know how long the project will take and how much it will cost? Engage a project manager to produce a project plan. The purpose of planning is to validate the constraints. It is a primary responsibility of the project manager to produce a project plan that confirms for the sponsor that the imposed constraints are feasible and realistic. The sponsor (allegedly) owns the business case and should be interested to know whether the project can deliver the stated benefits. As has already been posted, too often the constraints are set to meet a promised delivery date made by uninformed sales people; that method of working will never change! What can change is for PMs and their teams to be more professional in resisting arbitrary and unachievable constraints. Look at any set of project delivery statistics and you will see huge numbers of projects that overshoot their deadlines and blow their budgets. What does that tell us? It tells me that the constraints were never proved to be feasible and realistic; in other words, the project had a deadline-driven schedule and no plan. If you?re unsure of the difference between a schedule and a plan, that?s part of the problem. As Marc says - "A realistic plan starts with realistic task estimates". If we continue to accept imposed deadlines and ?plan backwards?, we will continue to add to the failure statistics. Backwards planning destroys the art of estimating. You can forget the principles of estimating altogether of you believe that it?s correct to work backwards from a given deadline. I describe deadlines as ?deadly? because they kill enthusiasm, destroy team-working and encourage businesses to make poor investment decisions.

solrak29
solrak29

I have to agree with the above statement. Generally, we work for some form of business that need some work done by the projects that we are working on. Without any view of when the project will be completed then how can business account for costs. The business inevitably signs our pay check. The key aspect of deadlines though is for the assigned date to be collaboration between the lead developer and management. This collaboration will control what will be delivered within an estimated amount of time. This time measurement should be used as a measuring stick and a goal to be achieved by all those involved.

jedmondson
jedmondson

I got !@#$'d badly once by management demanding the addition of so many things, to what started as a very simple, narrowly focused project. It was early on in my career so I wasn't equipped to handle the ramifications of what seemed like minor features being demanded. You have to have a PM that understands SW Dev and is willing to stand up and fight for the right things.

Tony Hopkinson
Tony Hopkinson

make competent PMs and experienced developers look like fools though. Undocumented, ill designed other people's code is always good for a game of spot the dunce. Get caught out, add a contigency next time and you are instantly in to politics. Estimates are much more art than science, that isn't a problem as long as every body is aware that five days doesn't mean it will be ready by next Wednesday.

Jaqui
Jaqui

now if the company was smart, they would use the longest time possible as the deadline, and have bonuses for early completion. [ maybe even penalties for late completion ] those last two would stop the feature creep cold.

GuyHarel
GuyHarel

An experienced programmer should be able to provide an estimate for a work, and therefore a dead-line. I have been very successfull meeting deadlines in the past, because I broke down the work into as many small parts as possible, estimating each part, making sure with the customer that nothing was omitted. (I learned I was doing the equivalent of projet activities/deliverables breakdown as per PMI). But the succes came from working alone on the projet, with complete confidence of my customer (no boss). Now that I work for a company, they dont want break down project analysis, half a day of doing this is too much time, they prefer out of their head estimates, and they neve understand the difference between work and delay (they make you work on something else at the same time). Of course they add new requirements in the middle of the project, and none of the deadline EVER works. So in this context giving deadline becomes suicidal. They will pin you on it.

bcdugan
bcdugan

Like speed limits, they should be guidelines - only seen when passing through.

GrizzledGeezer
GrizzledGeezer

The deadline is (that is, should be) set after deciding how much time is needed to do the work correctly. Setting an arbitrary deadline is asking for trouble.

melias
melias

"In most situations, I don?t think that giving programmers deadlines makes much sense. If you assign a project to a mature adult, he or she should do it as quickly as possible without compromising quality. It is not as though a project deadline will make the work go any quicker or that setting an impossible deadline will allow a programmer to defy the laws of project reality." You could say the same for engineers, various types of contstruction, ANY type of job where schedules are necessary. When the project changes, yes the deadlines have to change or more people should be added, if possible. It does NOT invalidate the necessity for a deadline within a schedule.

Realvdude
Realvdude

My boss of ten years still doesn't know the difference between man hours and days. When I'm working on a project that I can't multitask doing something else at the same time, I tell him that it is "dedicated time". Every once in a while, I get it to sink in.

Marc Thibault
Marc Thibault

Didn't I say you should hit "Next" if you actually live in a Dilbert Universe?

MikeZane
MikeZane

And the longer a programmer works on a project, the better they get at estimating, including 'fluff' factor (unexpected issues). You just get a feel for how long things take. It is annoying, therefore, when you KNOW how long it will take, and you are told, "No, you only have x hours" and you go into the project thinking, "Yeah, this is going to miss the deadline." A deadline is only helpful if it is meaningful. If it is arbitrary, it is only a source of problems.

jk2001
jk2001

Deadlines should be the product of defining limited goals and setting milestone dates for completing each goal. If you're late on the earlier milestones, you probably won't make the last one, and miss the deadline. If it's really critical to make the deadline, it's good to know 1/5th of the way through the project, when the first couple milestone deadlines are missed, so you can cut your losses (or increase staff - but that doesn't usually work).

Tony Hopkinson
Tony Hopkinson

I don't think so! Get given a deadline and then try and make the work fit is standard practice. Nor is this arbritary, it's based on the release plan from sales and marketing! The total lack of connection with reality is simply us propeller head types not being aligned with the business. Are you new to this or something? :p

Jaqui
Jaqui

if it was the COMPANY's penalty it would. :D then they would have policies set to resist scope creep without renegotiating deadline :D

jk2001
jk2001

They need to add a day to "business school" where they explain that *some* programmers do not pad out their estimates, and aren't playing some political game to maximize their free time.

Tony Hopkinson
Tony Hopkinson

put an extraordinary amount of effort into denying this truth and then blaming us types who 'know nothing about business'. You'll be suggesting quality should be inherrent to the process next, instead of an optional extra task you end up backing out of.

MikeZane
MikeZane

Is asking for trouble. Deadlines should be set after the amount of work needed to accomplish a task and properly TEST (the piece always skipped) a task is determined. If, during project work, it appears more work is needed than budgeted for, either the timelines must be adjusted or the work has to be reduced. Backing into a deadline is the old "9 women pregnant and have a baby in a month" mentality. It tends to set the project and the IT departments at each others' throats because project wants to throw more developers at the project to get it done faster, while not taking into consideration that some processes are a one person at a time job.

Editor's Picks