Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have been blessed with an amazing workplace and my colleagues are really understanding..

However this is my first programming "gig" and i know some people aren't so lucky,

Especially those who run their own company!

(I've seen my boss work unhuman hours and go way beyond out of his way to make a customer happy.)

The ugly truth is when your contracted by a big corporation, as we have been, you learn quickly that corporations don't care for clean readable code, programmer happiness, best practice or maintainability..

And they will call you on weekends.. At 3AM.. with 1 weeks worth of work they need for a meeting at 7AM!

  1. How much pressure is normal for a programmer?
  2. How much pressure should a programmer be under?
share|improve this question
19  
"Welcome to the real world"-Morpheus –  Aditya P Apr 27 '11 at 16:08
2  
why the downvote? –  hromanko Apr 27 '11 at 16:21
7  
Why do we need to be pressured at all? If there is a deadline, then ok, if not, trust we will get it done as soon as we can without cutting corners. Aren't we adults here? –  JD Isaacks Apr 27 '11 at 16:29
3  
cutting corners isn't an evil thing, it is a real world consequence of what is of business value to the customer. What you as a developer might think is important and would be "cutting corners" might be on absolutely no value to your customer. –  Jarrod Roberson Apr 27 '11 at 16:33
28  
I find that 1 Atmosphere of pressure to be acceptable <("-")> –  Darknight Apr 27 '11 at 16:45

11 Answers 11

up vote 14 down vote accepted

How much they should be under and how much they will be under are very different and will be close or far apart depending on the job.

As for should: Enough to get the job done without causing stress to the point where it affects health and well-being (social, mental, physical). If you burn out, it was too much! If it were possible to quantify that, it would differ between individuals.

As for will... Calls on weekends and 3 AM in the morning may be normal if you are on-call and support 24/7 production systems and carry a pager/cellphone and laptop.

It will also depend on industry. Some industries have much tighter deadlines - the game industry will have to ship a product in time for the next (gift-)buying cycle (Christmas, spring graduation season, back-to-school, etc...). Some industries such as finance and insurance sometimes must implement things by a certain deadline due to changes in legislation of their industry. For software products that are not dependent on other cycles (such as consumer retail or government), deadlines might have more leeway and releive some pressure - unless the client is very insistent (which will depend on the client).

Also the amount of pressure can be affected by the size of the team. If the workload is spread evenly between a large team you'll feel less pressured than if a very large workload is piled onto a small team.

And the type of work... lots of small support tasks and switching back and forth between them can sometimes create feeling of being more pressured than one or two long-term tasks (at least for me).

share|improve this answer
1  
As for should: I think one should draw the line a little bit lower - you get too much pressure if it affects your productivity in a negative manner. –  Doc Brown Sep 18 '11 at 20:00

The answer is very little to NONE on a daily basis excluding self inflicted delays.

There are two reasons to have to work under undo external pressure.

Both can be mitigated.

1) Incompetent Management promising unrealistic goals.

2) Incompetent Developers unable to meet realistic goals.

Both can exist at the same time. Neither should have to.

Agile Methodologies, SCRUM in particular can help mitigate these issues to a great extent. The management lets the development team decided what they can reasonably commit to in a single Sprint ( 1 or 2 weeks at most ). Even a very junior development team can learn to estimate what they can accomplish as a team in 1 or 2 weeks.

Agile Methodolgoies also focus heavily on what is of business value to the customer. Clean code, maintainability, best practices, etc. isn't of high value to some customers or some projects.

It depends on the product and the customers desires, if the product owner explains to the customer you can hack something together in 2 weeks that has limitations, but have to go and redo it later to remove those limitations, there is nothing wrong with that. It is technical debt, and it is documented and managed.

Agile Manifesto

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

share|improve this answer
    
+1 good insight.Does not really answer the question at hand but it explains the situation well. –  Aditya P Apr 27 '11 at 16:37
1  
However, predictability is valuable in business, and delivering certain functionality by a certain date can be essential (for regulatory concerns, hitting a Christmas sale date, or to beat competition). –  David Thornley Apr 27 '11 at 17:21
1  
@David you don't understand how SCRUM and Agile in general works, it isn't about not having predictable deadlines, it is all about having predictable committments to deliverables, those deliverables are just every week or two at most. –  Jarrod Roberson May 26 '11 at 18:06
    
@Jarron Roberson: No, it isn't a problem with understanding Agile. It's a matter that, sometimes, there really is too much work that has to be done. This is normally due to somebody screwing up, but not necessarily somebody in the organization. I remember once, while programming for a local government, getting a change request with a copy of the Congressional Record attached, and being informed that we had to start working on it before the relevant agencies came up with the rules we had to follow. –  David Thornley May 27 '11 at 13:03
    
@David, that fits very well into Agile, you decide what work you can commit to and start work on what you can the first 1 week sprint and deliver what you promised, until you can't do anymore work because you don't have enough information. –  Jarrod Roberson May 27 '11 at 15:35

Any business person is under pressure, from the business owner down. Executive management at a large company also has a lot of pressure. They've got to raise capital, keep the stock up, keep up the loan payments, the bond debt payments, the stock dividends. They've got to satisfy the FCC, along with two handfulls of state and federal regulators. They've got to honor their partnerships, pay their suppliers, make payroll.

You, as a cog in the machine, are going to get some of that pressure. The better the management, the less these externalities are going to be visible, but make no mistake, they hired you to help them meet their commitments, and if you don't, you're gone.

Now, if they make unreasonable demands and are being overly difficult, that means their managerial skills are lacking. That means they aren't very good yet. They get paid to do their job, so don't do it for them. If you don't like having to pay in tears because management is incompetent, leave.

share|improve this answer

Pressure? Dude. A healthy level of pressure is good. But unruly and unreasonable requests are life-killers.

Find a company that respects your work-life balance. Period. Life is too dam short for life-sucking-jobs.

share|improve this answer

If you have a job, do contract work, or own the company, you have economic pressure. Not many can claim money doesn't matter so I do whatever I want whenever I want. It's nice to know there is a demand for the work you do.

I think the better programmers put more pressure on themselves, but don't show it. You have to take pride in your work without driving yourself nuts.

share|improve this answer

It all sounds insane, but you're not giving us anything like enough information. Prescribing silver-bullet methodologies is premature before we understand the root-causes:

  1. Pressure from whom? WHO is calling you at 3AM on weekends, with a week's worth of work: your boss? the customer? All of them? What are the main process failures why requirements weren't stated earlier? When are requirements defined? Sit your boss down and walk them through how a specific example of how things should have happened - what is their reaction?

  2. Is your boss a nutjob/workaholic/stressbunny? Is the customer a lunatic? Is the company on the point of collapse? Or quite possibly several of these? Did your company succeed on previous projects with other customers? Did your current customer treat other previous suppliers like this? Did your boss/salesguy underbid a fixed-price contract? Or is your employer making tons of $$$ and paying you flat-rate? If you didn't you sign a contract agreeing to be on-call (and you should be paid for that), tell them it's not acceptable.

  3. What type of software is this (financial? web? etc), when is software supposed to be delivered, how do you do testing, is there a test plan, how do you measure quality, what are your agreed quality metrics? Does someone need to hire a QA contractor?

  4. "You learn quickly that [the customer?] don't care for clean readable code, programmer happiness, best practice or maintainability.." That's not the important part: your boss and employer should have a reasonable appreciation of these - do they? If not, why not? If yes, why are they sacrificing them?

  5. How much can you influence this insanity (the boss, and your employer, not the customer directly)? Conversely, can you afford to quit? What is your limit for how much insanity you can handle? What would happen if you tell them you take work calls until x pm, and they need to fix their processes urgently (make specific constructive proposals, backed by data).

  6. As you progress in figuring out the ideal solutions to these, use it as a checklist to find a sane job in a sane company on a sane project. Then when you quit (as Agile Scout recommends), if they care to listen (they may well not), if you haven't already told them what they should be doing, try telling them.

share|improve this answer

How much pressure is normal for a programmer?

This is going to vary from programmer to programmer. I've seen some programmers thrive under pressure and others go missing in action with the same pressure. A good manager should know how much to apply.

How much pressure should a programmer be under?

Enough to meet a deadline but not too much to sacrifice all quality to do so.

share|improve this answer
4  
Warning : Contradictory statement at line: Meet Deadline and Not sacrifice quality –  Aditya P Apr 27 '11 at 16:28
1  
maybe maintain a certain level of quality. –  JeffO Apr 27 '11 at 16:41

You need to have personal boundaries, of what you're willing to accept and what you're not willing to accept. This will be based on your own values, your own personal life outside of work, your own experience, your own confidence in finding another job, and also how much money for living expenses you have squared away in case you need it.

This is not a decision we can make for you. This is not even a decision you can make for your boss. For instance, your boss may just be a workaholic, a people-pleaser, or a martyr.

Also, there are all kinds of bosses, customers, and corporations out there. Note that if a corporation/customer is going out of business, or is making irrational demands of your time, sometimes there is just nothing you can do to negotiate a more rational working schedule, and sometimes firing your own employer and trying to find a better job can be your best option.

So it all comes back to having personal boundaries. Most phones have an off switch. It's your choice whether you want to use it or not.

share|improve this answer

I don't think pressure should be a part of normal workflow at all. I am an adult. My manager wants me to do X in time Y, I tell him I will need Y+Z, we talk about it until we find a satisfactory solution. No pressure needed, since both sides want to do a good job and satisfy the client (in my case, the client is the trader sitting next to me, so I'm doubly motivated to a good job -- their profits pay my salary). As long as everybody understands what the game is about, there is no need for pressure. Having to apply pressure means that there is some conflict which needs to be resolved, or somebody doesn't understand something and should be explained what the situation is.

share|improve this answer

The amount of pressure a programmer will experience will vary widely not only by the company, but also by the point in the development cycle.

If you're closer to the time that a release is due, you can expect longer hours and more pressure to deliver.

However, if you're expected to provide support for mission critical issues, it's possible the you might have to be on-call for nights and weekends.

A lot of the pressure will depend on your team's leadership. If they are reasonable, they will try to manage the expectations for their developers so that too much isn't required of them. You shouldn't be surprised to see things like late changes to specs and last minute bugs, which definitely adds to the pressure.

Knowing that your work can significantly affect your company's revenue stream will be a lot of pressure for anyone in any position. If you're in a good company, they will try to balance the customer's needs with their team's resources, or risk burning out their developers.

share|improve this answer

In Peopleware, they put forward the idea that knowledge workers tend to be intrinsically motivated - and set their own goals - when they are given the opportunity to apply themselves and set their own quality bar. I know that personally, if I am given the opportunity to write something high-quality, without a lot of external limitations, I'll be motivated enough to set my own (fast) pace and put the pressure on myself to make it happen at the highest level of quality I am capable of.

When pressure is used as an extrinsic motivator (e.g., your boss telling you to finish ASAP) for too long, and you are asked to cut corners and lower your quality bar, you'll eventually lose your intrinsic motivation to work hard and do a good job. When the pressure is manufactured (e.g., setting a deadline that isn't necessary just to put pressure on people) it also erodes trust. Johanna Rothman has a whole section devoted to these 'schedule games' in Manage It.

So I think applying pressure to knowledge workers is counter productive - instead, we should find ways to enable them to pressure themselves by giving them the freedom, , control, and support to set goals that push them beyond their limits and bring their intrinsic motivation to the fore.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.