Slashdot Mirror


Ask Slashdot: What Practices Impede Developers' Productivity?

nossim writes "When it comes to developers' productivity, numerous controversial studies stress the differences between individuals. As a freelance web developer, I've worked for a lot of companies, and I noticed how some companies foster good practices which improve individual productivity and some others are a nightmare in that regard. In your experience, what are the worst practices or problems that impede developers' productivity at an individual or organizational level?"

269 of 457 comments (clear)

  1. The Number One Impediment is MEETINGS by Press2ToContinue · · Score: 5, Insightful

    Meetings are how people who don't know what they are doing suck the productivity out the people who do.

    --
    Sent from my ENIAC
    1. Re:The Number One Impediment is MEETINGS by Anonymous Coward · · Score: 5, Insightful

      Some meetings are necessary obviously... I'm in my first senior developer position now and I've instituted hard limits on meetings because it frustrates me to no end when idiots discuss minutiae for valuable hours of my team's time.

    2. Re:The Number One Impediment is MEETINGS by gnu-sucks · · Score: 3, Insightful

      I second this.

      Meetings are a big waste of time. Take each person's topics, multiply the time by the number of people, and soon enough you realize that for most people at the meeting, they are wasting 1 / (n-1)*T of the meeting time (T), with n-people.

      I'd rather send out an email, "Working on module X, starting connection to module Y" and keep working. Yeah, there's value in keeping up with your peers' work, but this is not worth an hour a day, for example. I can go spend that time with the specific people that I am working with and get a lot more out of that than their piece in a meeting.

      Other runners up for wastes of time: Power point presentations of nearly any sort, design reviews with non-technical folks, and repetitive "because it's in the contract" presentations.

    3. Re:The Number One Impediment is MEETINGS by gabereiser · · Score: 1

      more specifically, the meetings about scheduling meetings about a meeting that just took place that required a meeting to discover what the resolution to the last meeting is and hold a meeting about the results. STOP WITH THE MEETINGS!

    4. Re:The Number One Impediment is MEETINGS by Kethinov · · Score: 5, Interesting

      Right now I'd say that Scrum is the biggest source of unnecessary meetings in this industry. I think the principles of agile development are great, but Scrum is a bad way to do it.

      Weekly planning meetings, demos, retrospectives, and worst of all: daily standups at a rigid morning time. Not good for night owl engineers who want to sleep in or for early birds who get to work too soon before the meeting because it introduces a big context switch.

      Instead of all these meetings, why aren't there more companies that just solve their accountability problems with tooling? My solution: Git + Bugzilla eliminates the need for all these meetings except the occasional demo.

      Here's how:

      Want to put a feature on the release calendar? File a bug. Want to prioritize features/bugs for an upcoming release? Fiddle with the bug priorities. Need input from an engineer about whether or not the priorities make sense based on dependencies? Meet with one or two senior engineers privately just on that topic. There goes all those massive planning meetings.

      Want to know what someone is working on? Make all developers work in their own git branches. Ask developers to name their branches after the bug number they're working on. Ask the developer to commit their code daily, whether it's finished or not. That way anyone can check on their progress. When the developer finishes his task, merge the branch into master and close the bug. There goes all those redundant daily standups.

      --
      You're right, I wouldn't steal a car. But if it were possible, I sure as hell would download one!
    5. Re:The Number One Impediment is MEETINGS by Anonymous Coward · · Score: 5, Funny

      Yeah, there's value in keeping up with your peers' work, but this is not worth an hour a day, for example. I can go spend that time with the specific people that I am working with and get a lot more out of that than their piece in a meeting.

      Or, more accurately, you can spend that extra hour of time reading slashdot.

    6. Re:The Number One Impediment is MEETINGS by jellomizer · · Score: 1

      Just remember, if you want to avoid meetings, you shouldn't start complaining that you were left out of the loop for anything new.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    7. Re:The Number One Impediment is MEETINGS by Anonymous Coward · · Score: 3, Insightful

      I'm going to politely disagree with you on some points.
      Agile and Scrum (in theory) are wonderful tools, but once you get away from the blessed toolset and modify it for your usage it becomes a nightmare.

      Case in Point: My team started having daily 10 minute status meetings. Some of us learned how to manage expectations in the meeting and kept our updates under 30 seconds. Others spend several minutes communicating to the entire team about something that could/should be taken offline (or to a subgroup). Now we've gone to 2x/week meetings that are at minimum 30 minutes long. The 30 second developers are still reporting in 30 seconds. The long duration ones are taking even longer.

    8. Re:The Number One Impediment is MEETINGS by jythie · · Score: 2

      Unless of course it is a meeting where the developer is getting information they want or addressing concerns they have....

      Meetings themselves are not really the problem, they are a useful tool for discussion. I have found the bigger issue is different people not respecting varying priorities and needs of others. Often people do not take into account when meetings that benefit their needs are cutting into the time of people for whom they are not and then fail to make it worth their while (or at least acknowledge the cost to them).

    9. Re:The Number One Impediment is MEETINGS by schlesinm · · Score: 5, Insightful

      Some meetings are necessary obviously... I'm in my first senior developer position now and I've instituted hard limits on meetings because it frustrates me to no end when idiots discuss minutiae for valuable hours of my team's time.

      The issue isn't meetings, it's bad meetings. Each meeting should have a set agenda and a time limit for each topic. When I was a senior developer, I would have a weekly status meeting with my team. The meeting always started off with basic status reports (what did you do, what are you stuck on, what do you need help with), followed by project updates from other teams (where pertinent) and finally a free topic session to discuss any issue. If something took more than a couple minutes to discuss, we'd table it for a separate meeting with only the people that needed to be there. Meetings should exist to make sure everyone's on the same page and so people who need something have a forum to ask for it. Without a firm agenda (which is aggressively held to) meetings lower productivity.

    10. Re:The Number One Impediment is MEETINGS by dgrotto · · Score: 2

      Required reading:

      Read This Before Our Next Meeting

      It costs $5 - everyone should get a copy. Seriously, this completely changed the way I work.

    11. Re:The Number One Impediment is MEETINGS by Anonymous Coward · · Score: 1

      It's a face to face meeting. You're ALREADY offline. Probably my #1 buzzword pet hate right now.

    12. Re:The Number One Impediment is MEETINGS by CycleFreak · · Score: 5, Funny

      Meeting: An event where minutes are kept and hours are lost.

    13. Re:The Number One Impediment is MEETINGS by Twillerror · · Score: 2

      What a developer thinks, but not what managers who actually sees the forest through the trees think.

      The guy who knows what he is going off and does his thing. No one meets or talk. Developers later finds out someone else was doing the same thing or solved the same problem.

      Meetings can increase productivity if they have a point, use some kind of software to manage work originating from (like Trello), and have general rules.

      You can take my daily standup meeting from my cold dead hands.

      Bad meetings are just that. It's like people who hate government not being good at running a government. Since you demise them so much you probably go in with a super negative attitude about them. You doom yourself and your team to fail. I've seen meeting make measurable improvement, watch the meeting stop happening because of it, and then watch it revert, rinse repeat...not a horrible approach at the end of the day. Syssies with developers, developers with qa, etc. etc.

      Productivity claims are just people bitchin...and a lot of it has to do with the simplicity of the product, users, and other measurements. You go into companies with lots of complexity, legacy overhead, needy clients, and you'll end up with low productivity.

      And oh yah, don't capitalize meetings. It only shows your immaturity. Claiming that other people don't know what they are doing and that you do is also pretty cocky...I'm sure you know everything right? Come on slashdot stop being so reactionary.

      Marketing is the only group that are bigger divas then developers these days. Relax your not nearly as smart as you think you are...you are just used to people telling you are because you like math.

    14. Re:The Number One Impediment is MEETINGS by Threni · · Score: 1

      I want to avoid meetings but not be left out of the loop. If only there were some way of communicating ideas or instructions between people without everyone concerned having to physically sit in the same room at the same time...

    15. Re:The Number One Impediment is MEETINGS by Synerg1y · · Score: 4, Insightful

      Another issue is meetings in the middle of the day, nothing like working on something complex only to be dragged away to a meeting and coming back and having to restart a complex thought process.

    16. Re:The Number One Impediment is MEETINGS by jackd · · Score: 1

      Argh best post i've read in a while, and no mod points!

    17. Re:The Number One Impediment is MEETINGS by Chris+Mattern · · Score: 1

      Because meetings are the only way to let people know about something new, of course.

    18. Re:The Number One Impediment is MEETINGS by Anonymous Coward · · Score: 1

      No, the number one impediment is the developer's falsely elevated sense that his/her time is more important than anyone else's. It's when they stop to listen and help the creative (and thus creation) process do they succeed, and not label the company 'full of idiots' a year later and move on to their 5th job in 5 years.

    19. Re:The Number One Impediment is MEETINGS by AK+Marc · · Score: 5, Interesting

      The thing I've found most technical people don't understand is money. If you are paid to code, then meetings are a waste of time. If you are paid to solve problems or deliver solutions, meetings are very much required. Most meetings don't accomplish the goal of the meeting. I've found that the longer out the meeting is scheduled, the less valuable the content (If I can schedule the meeting 3 weeks out, there will be nothing useful to cover in it when it comes).

      But the money part is, charge the meetings to another department. When finance calls for a meeting to check on progress, bill back the time spend preparing for and attending the meeting to finance. When they see $10,000 hit their budget for a one hour meeting, they'll never call another meeting. If they are all internal IT meetings, then the "fix" is to replace the CIO/director/manager, so you live with it.

    20. Re:The Number One Impediment is MEETINGS by greg1104 · · Score: 1

      When you're "online" having a meeting, pushing a discussion out of it is taking that part "offline". It's not a great way to have co-opted the term, but it's so standard now it's right at the start of the wikipedia entry on online/offline.

    21. Re:The Number One Impediment is MEETINGS by Anonymous Coward · · Score: 4, Insightful

      The alternative, scheduling meetings at the beginning or end of the day, misses people who arrive and depart early or those who arrive and depart late. Core hours with meetings scheduled during that time is about the best you can do, if you want to give everyone some flexibility in working hours. Of course, you could have people attend meetings at both ends of the day (as those of us working with overseas teams have come to love), but I'm pretty sure that wasn't the solution you were looking for, either.

    22. Re:The Number One Impediment is MEETINGS by greg1104 · · Score: 2

      I'm no fan of Scrum, but I wouldn't presume that it can be replaced entirely by some accountability tools. The "What have you done since yesterday?" part of the meeting can certainly be replaced with a scan of commits, and letting that part of the meeting go on far too long is a problem at a lot of places. Replacing "storytime" with a bug entry that's actually a feature description is also more useful than most ways to save that information. It helps integrate bugs and features into one view of the development state.

      But even if you've done all that, the main useful thing the standard Scrum practice can still do is communicate impediments/stumbling blocks. You might say "I'm stuck on X and could use help with Y", brainstorm on the problem, try to allocate resources to help, and figure out how this will impact the long-term schedule. Trying to fit all of that into a bug tracker makes it overbearing for its primary job. You shouldn't expect developers to be tweaking a project planning Gantt chart because they're stuck on something, but it's exactly the sort of thing that should come out of a good Scrum meeting.

    23. Re:The Number One Impediment is MEETINGS by greg1104 · · Score: 4, Informative

      One of the points of the "scrum master" role is to keep the meetings a reasonable length. The correct response to "someone is always too verbose" is for them to corrected by that person until they stop. If you're going to claim you follow this method, you cannot ever let the time boundary expand to fit however much people want to say. The feedback loop doesn't go in that direction; it goes toward adjusting the inputs until the length is on target.

    24. Re:The Number One Impediment is MEETINGS by tnk1 · · Score: 3, Informative

      Not that I love Agile, but as someone who was trained as a Scrum Master let me just state that the standups are only there to remove obstacles. If your Scrum Master is letting people drone on and on, they need to be noting the issue and telling them to take it up outside of the meeting. In no way should a standup be some sort of general status meeting or a bitch session. It's just there so that you can inform, in bullet point shortness, the Scrum Master of those obstacles and so that the rest of the team is aware of them. That's it. If they last 20 minutes, that's probably 15 minutes too long.

      And no, Agile or not, meetings are necessary and there's really no substitute for a face to face in a team setting. That said, meetings easily become time sinks because moderators have no idea how to run them. A good moderator has an agenda, a set of goals to take away, and keeps things on track firmly.

      The reason why meetings are almost universally seen as time wasters is that meetings are almost universally run by people who have no idea how to run meetings.

    25. Re:The Number One Impediment is MEETINGS by Anonymous Coward · · Score: 1

      We have a 15 minute cap on our scrum meetings, the scrum master is not present(she's only at our 2 hour planning meetings every 2 weeks), and it's especially a great time to get updates from our overseas team(they join in via video conference). This works out to a whopping 4 hours of meetings every two weeks (we don't meet for scrum on fridays).

      I think it works great.

    26. Re:The Number One Impediment is MEETINGS by jafac · · Score: 1

      there's also the issue of "big project" meetings.

      There are times when most developers working on a small chunk of the project don't NEED to know all the details of all the other parts of the project. You can boil down a meeting to 5 minutes, for this small component, instead of 2 hours. Too bad for the lead.

      Yes - the line devs also need big-picture updates, especially when it's going to impact them. But not *every*. *freaking*. *day*.

      I've had managers who know when to break down the daily tag-up, and they're a special kind of nice.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    27. Re:The Number One Impediment is MEETINGS by jafac · · Score: 2

      yes.

        but try to implement this - and every person has their own "favorite" bug-tracker and source-control system. (not bugzilla and git). And good luck to you trying to integrate dozens of bug-trackers rcs's into the rest of your org's infrastructure. (not to harp specifically on rcs's and bug-trackers, but it seems to be one of the real sore points that developers can't agree on. . . tools-wise. - - - oh, I guess we all like to agree-to-disagree on IDE's as well. . . . )

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    28. Re:The Number One Impediment is MEETINGS by dgharmon · · Score: 1

      > Meetings are how people who don't know what they are doing suck the productivity out the people who do ...

      You totally read my mind ...

      --
      AccountKiller
    29. Re:The Number One Impediment is MEETINGS by DrVxD · · Score: 2

      The long duration ones are taking even longer.

      In that case, whoever's running the meeting isn't doing their job.

      One team I worked on used to pass a 2-minute timer around the meeting; it worked wonders.

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    30. Re:The Number One Impediment is MEETINGS by steelfood · · Score: 1

      I tend to find that meetings are less useful than e-mail threads for communication. Meetings are most useful to disseminate information as its primary purpose. It's not useful for being productive. In fact, the bigger the meeting, the less useful it is for this purpose, with the most productive meetings being one-on-ones.

      Limiting large meetings to informational sessions with limited presenters would serve many, many large companies well.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    31. Re:The Number One Impediment is MEETINGS by steelfood · · Score: 1

      The correct response to "someone is always too verbose" is for them to corrected by that person until they stop.

      How to be a dick at work.

      That's the failing of Scrum. It doesn't take into account that the actors doing work are people (and oftimes idiots at that).

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    32. Re:The Number One Impediment is MEETINGS by Anonymous Coward · · Score: 1

      I get it. You are one of the guys who always irritates everyone by saying everyone should just use the tools properly, and add any missing functionality.

      While tools are great, understanding between professions and departments requires face to face communication. Demos are great, but a complete waste of everyone's time if it's the wrong one. If you are prepared to rewrite all the code, great! But don't expect everyone else slavin', because that's what it is when you always have to rewrite and refactor your codebase, designs and plans. The risk, efficiency and predictability can quickly become unmanagable.

      Your suggestions might work great for projects where the only stakeholders are the developers themselves and the motiation is high, otherwise it can be ripe for disaster.

    33. Re:The Number One Impediment is MEETINGS by Tanktalus · · Score: 1

      Meetings between peons and management should be solely about management dealing with managerial issues: communicating what dumb ideas management has had lately for our new direction, dealing with introductions of new team members (or announcing the departure of the newly-laid-off/quit), organisational issues. These are generally not up for discussion, but a few questions may remain.

      Anything of a technical nature should not have a manager present.

      I find these rules to greatly improve my productivity in meetings. If I want to have a technical discussion, I don't invite the managers, I talk to the other technical people. I then later inform my manager as to the technical decisions made with no invitation for discussion. While that doesn't preclude him trying to weigh in, when I don't actually invite his opinion I find he's less likely to provide it.

    34. Re:The Number One Impediment is MEETINGS by greg1104 · · Score: 1

      It's possible to tell someone that they don't need to present so much material at a meeting, with the goal being to make the meetings shorter, without being a dick. It's helpful to have someone with people skills run this sort of thing. They might also deal with the god damn customers so the engineers don't have to.

    35. Re:The Number One Impediment is MEETINGS by sconeu · · Score: 1

      No it's not dickish. The scrum master (or actually a different team member) says, "We'll put that in the solve". Then the scrum meeting stays short and to the point, and members who need and/or want to be there for the solve can stay and deal with the long point.

      Of if someone just starts rambling, we remind them of the time limit. Don't have to be a dick to do that.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    36. Re:The Number One Impediment is MEETINGS by umghhh · · Score: 1

      as with anything else common sense and a bit of respect for others is mandatory; instead we usually are confronted with idiocy, lack of discipline, lack of competence and lack of respect for other and especially for technical authority. That would not be so bad but the worst thing is that sometimes this gets attention of some person with stamina and good will that can enforce some rules and one may think that this means people learned - once the communication (?) problems are fixed, the fixer is leaving and the group goes back to business as usual. I think that particular thing is called corporate amnesia but I am not sure it is a characteristic of corporations only.

    37. Re:The Number One Impediment is MEETINGS by chrismcb · · Score: 1

      I completely agree. Meetings are the worst. Need to ask me something? shoot me an email. Yeah sometimes it is necessary to get together, have a big powow. But every day?
      Its worse when people want to be "agile" and schedule the "Scrum" as an hour sit down conference... Well there is 5 hours of non productivity, every week. Plus the 5 minutes before and after to get to and from the meeting.

    38. Re:The Number One Impediment is MEETINGS by chrismcb · · Score: 1

      What a developer thinks, but not what managers who actually sees the forest through the trees think.

      Yes you are right, the question was asking what impedes developer's productivity. Not "what helps managers be lazy." MANY meetings are for the benefit of the managers, and not the 20 underlings in the meeting.
      Your second point is valid, but has nothing to do with meetings. Managers should stay on top of what their underlings are doing. This can come from the manager walking the hall once a week and asking the dev "what's up." And not a scheduled 1 hour meeting.
      But for every status meeting, there are a half dozen other meetings that don't seem to do much. Don't do much that couldn't have been communicated via email.
      I work from home at the moment, and get WAY more work down than when I am in the office. Mainly because I don't have any meetings, most everything is handled via email. Occasionally we do a phone/video call to resolve things. But this is mostly for my bosses benefit.
      And yes, there are times when it is better to sit down with someone face to face. Especially when it is someone you don't know. BUT that doesn't mean it doesn't impede our productivity.

    39. Re:The Number One Impediment is MEETINGS by roc97007 · · Score: 1

      First thing that came to mind. I would say "unnecessary meetings", because sometimes meetings can be beneficial, if you have to coordinate multiple parts of a large project. But my experience has been that most meetings are a waste of everyone's time, an excuse for verbal masturbation, and an attempt to give the appearance of being effective.

      I'd put some (but not all) project management tools in this category, but by far the primary issue is meetings.

      --
      Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    40. Re:The Number One Impediment is MEETINGS by phantomfive · · Score: 1

      Some of us learned how to manage expectations in the meeting and kept our updates under 30 seconds. Others spend several minutes communicating to the entire team about something that could/should be taken offline (or to a subgroup)

      I deal with this by leaving. Really. As soon as I feel the meeting has nothing left to offer me (and vice versa), I leave. If people need me, they know where to find me.

      --
      "First they came for the slanderers and i said nothing."
    41. Re:The Number One Impediment is MEETINGS by drolli · · Score: 1

      What really annoys me is that there are many things which are more effective in commiucating asynchronously via email during a few days, in comparison to prolonged discussions in meetings. Why in the world should i sit around whil person A explains to person B somehting which I either no or which is irrelevant for me.

      Calling in a meeting because you are to lazy to type a page of text or because you want to enforce a deciusion in your direction by not giving anybody the chance to think about a complex proposal for a day and let it sink in is NOT an appropriate use of everybodies time.

  2. Re:source control "tokens" by X0563511 · · Score: 1

    Well that was a link fail on my part. I had intended to post this:

    Nuff said.

    --
    For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
  3. fix it later by phantomfive · · Score: 4, Interesting

    Saying, "I'll fix that bug later" or "QA will catch anything I miss." The sooner you fix a bug, the less time it will take you. Spending an extra 5 minutes now to verify the documentation for a function you call can save days later on.

    --
    "First they came for the slanderers and i said nothing."
    1. Re:fix it later by Synerg1y · · Score: 2

      "I'll fix that bug later" is legit when you're already having trouble meeting a deadline, better to meet it with a buggy product and fix it during QC than not deliver.

    2. Re:fix it later by sunderland56 · · Score: 5, Insightful

      you're already having trouble meeting a deadline

      Artfical deadlines imposed by management are a major suck of productivity.

    3. Re:fix it later by gstoddart · · Score: 4, Insightful

      better to meet it with a buggy product and fix it during QC than not deliver.

      Not to your customers ... shitty bug ridden releases which should have spent more time in DEV and QA are a nuisance.

      And usually either mean management are lousy at setting release dates, or the developers are lousy at living up to them.

      Your customers don't want to QA your code for you.

      --
      Lost at C:>. Found at C.
    4. Re:fix it later by CanHasDIY · · Score: 4, Funny

      "I'll fix that bug later" is legit when you're already having trouble meeting a deadline, better to meet it with a buggy product and fix it during QC than not deliver.

      ...

      Ballmer, is that you?

      Ducks to avoid flying office chairs

      --
      An enigma, wrapped in a riddle, shrouded in bacon and cheese
    5. Re:fix it later by phantomfive · · Score: 2

      "I'll fix that bug later" is legit when you're already having trouble meeting a deadline, better to meet it with a buggy product and fix it during QC than not deliver.

      This is an example of the kind of bad idea that slows developers down. Would you rather be a day late getting the product to QA, or 10 days late getting the product to the customer? Fixing the bug now, when it is right in front of you, saves time compared to waiting for it to get to QC.

      --
      "First they came for the slanderers and i said nothing."
    6. Re:fix it later by Anonymous Coward · · Score: 1

      "I'll fix that bug later" is legit when you're already having trouble meeting a deadline, better to meet it with a buggy product and fix it during QC than not deliver.

      Have you gotten your customers' opinions on that topic?

      Are you a gamer? Do you prefer your games late and polished or rushed and buggy?

    7. Re:fix it later by Synerg1y · · Score: 3, Insightful

      So... nobody posting responses understands project management... which is ok I guess, but let's see if I can put it in lamens: A project has due dates called milestones, a milestone typically is a product ready for QC, another milestone is completion of QC, so if QC is expected to take a week and then you have another week to fix it, a smart programmer who is about to not meet a deadline should mash out as much code as possible to not get fired for missing the deadline and then take advantage of the extra week... I'm not saying to deliberately introduce bugs or ignore them, but an edge case scenario can be resolved later during QC, or if that float isn't lining up right... that's not as mission critical as not delivering.

    8. Re:fix it later by udachny · · Score: 3, Interesting

      Many deadlines are not artificial but are imposed by the physical world you live in. Crops are sown and harvested on nature's deadline, you don't do it right you can lose your farming business.

      Airlines and all other shipping businesses have deadlines, mining operations have deadlines, retail has deadlines, etc.etc. These are often tied to natural seasons but also to fiscal seasons, to interest payments, to loan terms renegotiations, business deal renegotiations, etc.

      To you many things may seem arbitrary because you are looking at it from your limited perspective. Businesses actually have reasons for deadlines, many of those reasons are market oriented, you have to try and bring a product to market first and it does not mean it's just a caprice, it may have to do with business deals that are made across board with others and they have their deadlines, etc. Business agreements are also not made in vacuum, there are limitations on how long a factory can stay open for example if there are no orders coming in if there is no credit available, etc.

      The problem may be that there are too many promises made and not enough resources allocated, that's a different story, but often deadlines are more than what you think they are.

    9. Re:fix it later by jellomizer · · Score: 1

      Often getting paid improves productivity.

      If you try to get your product perfect, you run the risk of releasing an obsolete product, as well the cost of the development operation is running in debt until you can start selling the product.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    10. Re:fix it later by AK+Marc · · Score: 1

      You are saying that proper project management includes meeting artificial internal deadlines, even if that causes problems that prevent meeting external deadlines.

      I didn't realize good project management was about barriers and artificial hurdles, and not producing a product.

    11. Re:fix it later by jklovanc · · Score: 4, Insightful

      There are two strategies to deal with bugs; i'll fix it now or ill fix it later.

      Cost for i'll fix it now'
      X number of hours of developer time.

      Cost to fix it later.
      Time for QA to find bug.
      Time for QA to document bug in replicatable manner.
      X number of hours to fix bug
      y number of hours to re-equant with code surrounding the bug.
      QA time to test bug and verify it is fixed.

      In effect by not fixing a known bug while trying to meet a deadline all you are ensuring is that the next stage will be late and the whole project will be even later. There is no time saved a a lot of time wasted. There is an applicable saying "you can pay me a little now or a lot later". Burying issues is never a good idea.

    12. Re:fix it later by Synerg1y · · Score: 1

      The external deadline is set after the QC hurdle obviously, so 2 weeks are flexed into the delivery time frame for QC in my example, 1 for reviews, the other for fixing, it has nothing to do with flexing the deadline, it's how we get to the deadline. If there's no bugs in that last week... party! But that NEVER happens in the real world. Also, you may find that "good project management" is almost a myth.

    13. Re:fix it later by Diss+Champ · · Score: 4, Insightful

      Your post is an excellent example of how a bad culture encourages bad decisions by developers. The company culture rewards the just mash out the code with known bugs for QC to find approach, then sliding the fix in when someone else "catches" it. A better culture would be to enter the bug in tracking yourself if the code is needed immediately and you don't have time to fix it before a drop dead deadline.

    14. Re:fix it later by Synerg1y · · Score: 1

      Right... but you want to get paid... don't you? I'm not saying it's a good, or efficient process, and only one particular project for a company I came on specifically for this project comes to mind, but sometimes you just gotta work around a retarded PM, and while from an intelligence, common sense, and logic perspective I agree with you wholeheartedly, this is the real world buddy and tough choices have to be made sometimes. When you have limited hours to complete something, and those hours have been under-estimated significantly either because of scope creep or in my case the PM knew absolutely nothing about the CMS we were trying to roll out for a client, you have to be ready to flex your hours to parts of the project where they're available, if you go over the allotted hours, that looks very very bad on your part... termination kind of bad.

      I'm not proud of it, but I do approach deadlines apathetically though, at the end of the day I care about what's in my bank account, not what a QA person thinks, and I definitely wouldn't make choices that compromise my employment status on the project... A lot of people though will just work through it with 60-80 hour work weeks towards the QC date to deliver an almost finished product with barely any bugs and then they have nothing to do for the week of QA bug fixing... seems like poor self-management to me.

    15. Re:fix it later by djchristensen · · Score: 1

      Spending an extra 5 minutes now to verify the documentation for a function you call can save days later on.

      Not always. Case in point: I found the following code after a day and a half debugging (note that the dest and src addresses are guaranteed to be overlapping):

      // delete the record. Supposes memcpy is implemented increasing.
      memcpy(p+i, p+i+rec_size, env_size-(i+rec_size));

      The problem was obvious to me once I narrowed down the area of the bug and saw the comment. So was the idiocy of the dumbass that knew memcpy wasn't safe for overlapping regions and did it anyway. I guess this only proves that bad developers are bad developers.

    16. Re:fix it later by Synerg1y · · Score: 1

      Lol, if you were a manager, you'd understand wtf a profit margin is and how dev hours are directly related to it, but it's ok you can wish... and I doubt anybody not on-call answers their manager at 3 AM, and if say theoretically a manager kept at it that's called harassment, an insta-term & possible lawsuit.

    17. Re:fix it later by BasilBrush · · Score: 1

      What is meant by "fix it now"?

      a) I write some code and it doesn't work. So I fix it now?
      b) I write some code and it works, but there's an error state I haven't covered, so I fix it now?
      c) I write some code and notice a defect in some other code, so I fix it now?

    18. Re:fix it later by jklovanc · · Score: 1

      So when the QA guy goes to the boss and shows him how you passed an obvious bug to make yourself look good don't you think that would be a threat to your employment? I have worked in QA and have done just that. I have then seen the PM and the dev lead jump down the programmer's throat. QA is not extra dev time. Not only are you a programmer who did not complete work on time but you are a programmer who did not complete work on time and lied about it. Companies don't usually keep people around they can not trust.

    19. Re:fix it later by ThreeKelvin · · Score: 1

      Rushed and buggy. I usually buy games that aren't even fully developed yet, but look promising.

    20. Re:fix it later by jklovanc · · Score: 1

      All of the above. The point I was trying to make is that whether one fixes it now or fixes it later it will take at least as much time to fix it now. Fixing it later does not save time at all; in fact is adds a lot mote time to fix the issue. It is always faster to fix a bug when one has been working on the code for a while than to come back later and fix it when one's memory is stale. All delaying the fix does is shift to a bigger time cost of a later phase.

    21. Re:fix it later by Zero__Kelvin · · Score: 1

      That would makes sense if it made any sense. If you didn't deliver a product that passes QC, then you didn't deliver at all, never mind doing so on time. Any decent development process will have checks in place to find this kind of behavior and show you the door swiftly.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    22. Re:fix it later by Zero__Kelvin · · Score: 1

      Of course not. If it was Balmer he would have said it is better to release the product with the bug and let the customer find a workaround.

      --
      Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
    23. Re:fix it later by TheRealMindChild · · Score: 1

      So it is like a credit card, but with time

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    24. Re:fix it later by TheRealMindChild · · Score: 1

      I have worked in QA and have done just that

      Aha! No wonder your bias. Your do YOUR job, but these code monkeys can't bothered to do theirs! Right.

      You can't ship a product that can't compile. When a deadline needs met to ship a product (or you get fired), you make sure before anything else that it will compile. It doesn't matter if you see an obvious corner case where your SuperFunction() will fail improperly. It doesn't matter how well that function works if you can't even ship the product. Ok, you got it to compile and there is some time. Does it even run? Does it remotely do what it is supposed to do? If it fails, are these corner cases or an impediment to using the software in general? Fixing a bug on the spot is almost never an appropriate use of time or resources. I'm glad you are part of the QA team

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    25. Re:fix it later by jklovanc · · Score: 1

      Exactly and with a very high interest rate that all must be paid back before the project is complete.

    26. Re:fix it later by BasilBrush · · Score: 1

      Doing fix it now on type (c) Seems like a recipe for chaos. A distraction. I'm working on one particular feature or bug, and I've got my SCM state set up so I can encapsulate just that one thing in a branch or a specific commit. You're suggesting I switch my mind and SCM state to this newly spotted thing, fix it, submit it and then come back? But then the weekend intervenes and I'm... where am I exactly?

      And even if it goes perfectly, have I been spending my time wisely? Was that newly spotted bug a high priority, urgent job, or a low priority, non time-critical job?

      Far better just to submit a bug report, and deal with it when it comes to the top of the list as the most important thing to do.

      Further, I'd suggest that that is sometimes what to do with issues of type (b) too. Simply make the error you're not yet handling into an abort, or a a log message, and file a bug report on it.

      It goes far wider than coding. I'm basically suggesting that a prioritised to-do list is far better than the fire-fighting approach of trying to deal with things when you see them.

    27. Re:fix it later by DrVxD · · Score: 1

      "I'll fix that bug later" is why you're having trouble meeting a deadline.

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    28. Re:fix it later by DrVxD · · Score: 1

      Balmer's not interested in having his staff waste time on fixing bugs.

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    29. Re:fix it later by jklovanc · · Score: 1

      I am glad you are not on my dev team. You can't ship a product that you know will fail in the field. To a customer "works most of the time" is not acceptable. The "it compiles, kick it to QA. They'll fix it" mentality is why some devs have a bad name. QA is there to fix issues missed by devs not cover up dev incompetence. If you can't write code without obvious bugs you are incompetent.

    30. Re:fix it later by Inigo+Montoya · · Score: 1

      lint would flag that statement.

      As developers, we don't lint enough. I'm guilty of it too.

      Yes, lint produces lots of noise. But taking a look at what lint is trying to tell you can help find subtle bugs.
      If lint is complaining about something that will never be a problem, then you can mark that statement and it will shut up about it.

      static code analysis is helpful to finding subtle bugs like this.
      http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis

    31. Re:fix it later by jklovanc · · Score: 1

      Go back to the second post in this thread;

      "I'll fix that bug later" is legit when you're already having trouble meeting a deadline, better to meet it with a buggy product and fix it during QC than not deliver.

      I agree completely that a bug report is sufficient in many cases. What the past poster was advocating was allowing known buggy code to go through needless testing cycles to make it appear that the dev team met their deadline when they really did not. Notice that he said nothing about recording or reporting the bug. Most QC departments will not accept a build that has certain kinds of bugs.

      There is a big difference between "I will analyse the situation and decide whether I can quickly fix the bug or do I need to report the bug and someone will fix it before sending it to QC" and "I'll ignore the bug and QC will catch it". The former is sound time management. The latter is delusion.

    32. Re:fix it later by drkstr1 · · Score: 1

      If I don't have a deadline, I will make one for myself. Else wise I will spend years over-engineering a Hello World.

      --
      Fanboy Status: Apache Flex, C#, Eclipse, KDE, Pirate Party, Ron Paul, Slackware, Windows 7
    33. Re:fix it later by BasilBrush · · Score: 1

      Fair enough. So probably better to say "report it now" rather than "fix it now".

    34. Re:fix it later by jklovanc · · Score: 1

      To be completely pedantic "fix it if reasonable report it if not".

    35. Re:fix it later by BasilBrush · · Score: 1

      Well then you have to define reasonable.

      How about "Either fix it or report it now".

    36. Re:fix it later by chrismcb · · Score: 1

      You aren't meeting the deadline if the product is buggy.
      Sure there are bugs that you can "fix later." You have to prioritize what gets fixed, and you'll never ship anything if you try to find and fix every bug. But a buggy product isn't ship worthy.

    37. Re:fix it later by phantomfive · · Score: 1

      No, the problem is YOU. You don't understand that the time that matters is NOT the time it takes to get to QC, the time that matters is how long it takes to get to the customer. By rushing to get the product to QC, you've delayed the time it takes to get it to the customer. That's a complete fail in understanding how to manage time.

      --
      "First they came for the slanderers and i said nothing."
    38. Re:fix it later by fatphil · · Score: 1

      "We'll not incorporate your fix, because it might introduce regressione elsewhere" is the biggest enemy of progress I've seen. I saw literally hundreds of bugs go "WONTFIX" because of that logic. I can understand some caution, but there was never the concept of prioritising and delaying. If they didn't want the fix now, then it just got binned forever. Meetings only wasted minutes a day. Logic like that could waste entire weeks in one blow.

      --
      Also FatPhil on SoylentNews, id 863
    39. Re:fix it later by bingoUV · · Score: 1

      Isn't
      time to get to QC + constant = time to get to customer
      ?

      --
      Bingo Dictionary - Pragmatist, n. A myopic idealist.
    40. Re:fix it later by phantomfive · · Score: 1

      Only if you're willing to have your customer do your QA for you

      --
      "First they came for the slanderers and i said nothing."
    41. Re:fix it later by dvice_null · · Score: 1

      > You're suggesting I switch my mind and SCM state to this newly spotted thing, fix it, submit it and then come back?

      I do this a lot. I have written, reverted and rewritten code sometimes even 5 times before I have been able to commit what I originally was planning to do (yes, I also create patches/branches when suitable). Some might think that I wasted a lot of time there, but every time I wrote the code, I learned something knew that allowed me to make better decisions.

      > And even if it goes perfectly, have I been spending my time wisely? Was that newly spotted bug a high priority, urgent job, or a low priority, non time-critical job?

      I have seen people spending weeks trying to fix a bug that was caused by a low priority bug they saw instantly, but didn't fix, because they wanted to fix the high priority bug first.

      Quite often, fixing something that is very low priority can save millions of dollars for the project, but no-one can see the cost, because it is so well hidden. E.g. every time you add a new text, you have to write it into 4 different files, and sometimes it is forgotten and thus time is wasted both for writing it and then finding&fixing the bug it caused. This is a common hidden cost, caused by a low priority bug (duplication in source code, usually not even marked in the project bug tracker).

      If you only fix what is the most important, be sure that you know what it is.

    42. Re:fix it later by bingoUV · · Score: 1

      No, that is only when constant is zero. Or insufficient to do complete QA. It being a constant has nothing to do with customer doing the QA.

      --
      Bingo Dictionary - Pragmatist, n. A myopic idealist.
    43. Re:fix it later by phantomfive · · Score: 1

      What on earth makes you think QA time is a constant? Are you going to hand it off to them with no bugs or something?

      --
      "First they came for the slanderers and i said nothing."
    44. Re:fix it later by bingoUV · · Score: 1

      As the QA don't go on a vacation until the release to QA, I don't see why an overwhelming majority of bugs cannot be quashed before that.

      --
      Bingo Dictionary - Pragmatist, n. A myopic idealist.
    45. Re:fix it later by jklovanc · · Score: 1

      When the programmer who fixes the bug tells the dev manager who put the bug in and should have seen it, the original programmer gets the blame for making the project late and being a liar or incompetent. It is hard to trust someone who lies.

    46. Re:fix it later by cthulhu11 · · Score: 1

      Allowing otherwise-useful people to use vi.

    47. Re:fix it later by drkstr1 · · Score: 1

      I was exaggerating on the over-engineering part course, but I do need to set deadlines for myself or my perfectionism causes my priorities to get out of whack. Of course as a perfectionist, over engineering would be completly unacceptable, so I better give that Hello World a few more iterations until I hit the sweet spot. Get the picture now?

      --
      Fanboy Status: Apache Flex, C#, Eclipse, KDE, Pirate Party, Ron Paul, Slackware, Windows 7
    48. Re:fix it later by chthon · · Score: 1

      This whole thread seems to miss the point that QA is only there to catch problems, not fix them. The fix is done due to QA entering a report, which then needs to be solved by a real developer.

  4. Health and Safety meetings. by Anonymous Coward · · Score: 1

    Nothing I like less than spending three hours being told the correct way to use a keyboard by a failed art history student that can't type.

  5. #1 visiting slashdot by Nadaka · · Score: 5, Insightful

    #1 visiting slashdot

    1. Re:#1 visiting slashdot by Capt.DrumkenBum · · Score: 1

      I have been thinking about blocking Slashdot. I bet even my own productivity would go up.

      --
      If I were God, wouldn't I protect my churches from acts of me?
    2. Re:#1 visiting slashdot by Dishwasha · · Score: 2

      And replying to slashdot articles and comments.

    3. Re:#1 visiting slashdot by Anonymous Coward · · Score: 5, Funny

      Actually, going on available data from my years of reading Slashdot, hearing everybody bitching about every conceivable IDE, dev tool, library, language, storage system, network, computer, smartphone, and compiler, plus the fact that anyone who has anything good to say about any of those is an obvious shill, I'd say the thing that impedes software developer productivity the most is software development.

  6. Wouldn't that be...... by 3seas · · Score: 5, Insightful

    ...software patents?

  7. TPS reports and other BS paper work / time tacking by Joe_Dragon · · Score: 1

    TPS reports and other BS paper work / time tacking / ect...

  8. Stuff that makes a developer wait. by Anonymous Coward · · Score: 5, Interesting

    When I get in the zone I want to write code. I had a job that made you RDP to a development network to use Visual Studio on a machine that didn't have access to the internet (only to source control and the database server) and there was no copy/paste or file transfer to your environment -- you had to get the IT group to move files for you. You couldn't last 'in the zone' for very long before needing someone else's help to do *something*

    Hitting brick walls like that, and not being able to take care of your own needs seriously crushes developer productivity (and to a certain extent, morale).

    1. Re:Stuff that makes a developer wait. by tepples · · Score: 1

      Did you try logging the total amount of time that you spent waiting for the IT group to transfer files as a percentage of your work day?

    2. Re:Stuff that makes a developer wait. by Nerdfest · · Score: 1

      .. and that's one of the number one productivity (and joy) killers out there for me; poorly thought out, or unnecessary process. I think 'process' is like salt. It's better to have none than too much. The big problem with most places is that process is only ever added ... never taken away. It needs to be reviewed regularly to make sure the benefit is worth the cost.

    3. Re:Stuff that makes a developer wait. by tepples · · Score: 1

      Provided you can afford to move to where "another job" is.

    4. Re:Stuff that makes a developer wait. by oursland · · Score: 1

      It needs to be reviewed regularly to make sure the benefit is worth the cost.

      Are you saying there should be some sort of process for managing processes?

    5. Re:Stuff that makes a developer wait. by tlambert · · Score: 1

      Provided you can afford to move to where "another job" is.

      This is why you work in Silicon Valley, where the "another job" is in the next building down the road from the building you are currently in.

      If you get totally fed up, you and three of your friends get together and start the next Square, Facebook, Twitter, or whatever. Worst case you burn through your angel funding and go for another round prepared to give away 30% of your company, go back to work for someone else, or do another startup, but this time without the idiot (you) in charge; let someone else lead and learn from them.

      It's no coincidence that Walmart Labs had no luck moving people to Arkansas,and weren't getting any takers until they opened the San Bruno office. If you locate to a company in BFE, it's going to be able to hold you captive from getting a better job elsewhere in your area if there are no other employers in your area.

  9. 42 by Jetra · · Score: 5, Interesting

    Procrastination is the Number One Productivity Impeder (Not sure if right word, but spellcheck isn't getting me)

    1. Re:42 by rve · · Score: 1

      That, and free booze.

    2. Re:42 by Anonymous Coward · · Score: 5, Funny

      Yeah, I've been meaning to stop doing that.

    3. Re:42 by turbidostato · · Score: 1

      You can't be more wrong. The primary cause of lost productivity... well I'm leaving now. I'll tell you tomorrow.

  10. Easy answer; by Stumbles · · Score: 2, Funny

    Anything that involves a person in management.

    --
    My karma is not a Chameleon.
    1. Re:Easy answer; by dkleinsc · · Score: 4, Interesting

      No, not at all. Remember the Dilbert Principle: The dumbest people in your organization should be promoted to where they do the least damage, i.e. management.

      Lawrence J Peter described the same phenomenon as "Percussive Sublimation", and mentioned one film company that practiced this on a grand scale: They built a new Head Office, hundreds of miles from any studio or camera, and promoted all the useless people to work in the Head Office, where they busily ran around conferring with one another and otherwise wasting time, while the useful people happily worked in the studios making films.

      So that's the point of management: Remove useless people from the code repo.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    2. Re:Easy answer; by gstoddart · · Score: 2

      Anything that involves a person in management.

      I'm sorry, but do you think they're going to leave the howler monkeys alone, unattended, and not check up with them?

      The walls would be covered in feces, the coffee would be all gone, and everybody would be playing video games or surfing porn instead of doing any actual work.

      Even when I was a developer it was fairly obvious that without adult supervision nothing would get done. The developers would be writing cool features nobody wants, optimizing code which is hardly ever called, or re-factoring it make it look pretty.

      --
      Lost at C:>. Found at C.
    3. Re:Easy answer; by Anonymous Coward · · Score: 1

      No, not at all. Remember the Dilbert Principle: The dumbest people in your organization should be promoted to where they do the least damage, i.e. management.

      Lawrence J Peter described the same phenomenon as "Percussive Sublimation", and mentioned one film company that practiced this on a grand scale: They built a new Head Office, hundreds of miles from any studio or camera, and promoted all the useless people to work in the Head Office, where they busily ran around conferring with one another and otherwise wasting time, while the useful people happily worked in the studios making films.

      So that's the point of management: Remove useless people from the code repo.

      Seems like it'd be more efficient to fire the useless people.

    4. Re:Easy answer; by dkleinsc · · Score: 1

      Seems like it'd be more efficient to fire the useless people.

      Surprisingly, not always. Fear of "unlawful termination" lawsuit, fear of firing somebody who's a pal of a higher-up, red tape with the HR department, etc.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    5. Re:Easy answer; by steelfood · · Score: 1

      Unfortunately, those managers tend to be paid the most as well. A puffed-up ego tends to accompany idiocy.

      It'd be better demote them to a janitor or something, but then that's unionized.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
  11. Another Big Impediment by Anonymous Coward · · Score: 5, Insightful

    Anytime the process boils down to "if it's not a new feature or an emergency bug fix, you are not allowed to spend any time on it. And if you do spend any time on something like fixing spaghetti code so that implementing new features and emergency fixes don't take an act of God, we will refuse to promote it to production, as our policy is to not promote changes to anything that 'already works.'"

    Also: any environment that promotes code ownership (either explicitly or, more often, implicitly) so that you can't make any changes without it almost immediately becoming an HR issue.

    1. Re:Another Big Impediment by phantomfive · · Score: 3, Interesting

      as our policy is to not promote changes to anything that 'already works.'

      If this policy is in place, it's because management doesn't trust you. You need to do some introspection, is there a reason they don't trust you? Are you capable of making those changes without adding new bugs and causing problems? If then answer is no, then there's a good reason they don't trust you.

      If you are capable of making changes, then you can train them. Start by making small changes and not adding bugs. After a while you'll be able to convince them to let you make bigger changes, because there haven't been any horrific bugs that have gotten through in a while, and they'll forget why that policy existed in the first place.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:Another Big Impediment by marcosdumay · · Score: 1

      They don't trust in somebody, thus, they make a policy for everybody.

      That's too common.

    3. Re:Another Big Impediment by phantomfive · · Score: 1

      Generally it's more than 'somebody,' it's a history of repeated action.

      In fact, based on my experience, I'd say developers who can make changes without causing problems are rarer than those who make problems whenever they change something.

      --
      "First they came for the slanderers and i said nothing."
    4. Re:Another Big Impediment by PJ6 · · Score: 1

      Anytime the process boils down to "if it's not a new feature or an emergency bug fix, you are not allowed to spend any time on it. And if you do spend any time on something like fixing spaghetti code so that implementing new features and emergency fixes don't take an act of God, we will refuse to promote it to production, as our policy is to not promote changes to anything that 'already works.'"

      This is the kind of attitude that naturally emerges from an environment without unit tests.

      And the biggest kiss of death comes from this - the old, "we can't change the database design because we don't know what will break". The growing strain between changing requirements and the DB implementation eventually breaks the project utterly.

    5. Re:Another Big Impediment by phantomfive · · Score: 1
      AC, I don't know if you'll read this, but the key in those situations is to figure out what the core worry that manager/person has (this is the key to dealing with women as well). The secret to figuring it out is to listen. Don't argue. Get them talking by asking questions like, "what is the primary issue here?" Then you need to help them solve the problem.

      I want to concentrate on writing software or whatever it is I'm being hired to do, I don't want to do part of their job as well, that is something that impedes productivity

      That's a dream job, it doesn't exist in the real world.

      --
      "First they came for the slanderers and i said nothing."
    6. Re:Another Big Impediment by azadrozny · · Score: 1

      It is challenging to manage the schedule and requirements for even a small code release. While it can be satisfying to fix that ugly ball of code, it can be a real time sink, and introduce some risk to the schedule and functionality of the system. I can't speak to the culture of the office in your example, but I personally prefer that my developers stick to their assigned requirements. Developers should be free to make suggestions to improve the system, but unless there is a compelling reason, it would prefer to defer even simple changes to a future release, when we can devote time a resources to realize the full impact of the change.

  12. And Slashdot by Anonymous Coward · · Score: 4, Funny

    Trolling Slashdot generally eats up 50% to 80% of my work day.

    The rest of the time in meetings or organizing meetings for later.

    1. Re:And Slashdot by cod3r_ · · Score: 1

      beat me to it. If slashdot went away we could probably solve our debt crisis..

  13. Too Much Documentation by andawyr · · Score: 5, Interesting

    Nothing kills progress than having to create documentation that will never be read or updated.

    Don't get me wrong - certain types of documentation are important (overall systems design, data models, for example). But unless you're going to continue to use the documentation after the project has been completed, don't bother creating it.

    What most people seem to forget is that if you don't plan on maintaining all the documentation you create, you're wasting your time. Once a document is out of date, it no longer serves it's purpose. I'll expand on an adage: Outdated and incorrect documentation is worse than no documentation at all.

    1. Re:Too Much Documentation by Anonymous Coward · · Score: 1

      Too little documentation, no overview of a complex system which even the original creators don't understand, no comments, etc. This is usually due to everyone being rushed to get out the next feature. I think it adds a stacking overheard to every change which eventually slows down changes to a crawl.

      Z

    2. Re:Too Much Documentation by The+Joe+Kewl · · Score: 1

      Wish I had mod points to give you. Not the exact same, but still documentation:
      I was just forced into wasting an entire day "documenting" what has been done for a project so far because the manager was too lazy just to ask me what had been done, and why it isn't working yet.

      Probably never read the doc, and will end up asking me about it anyways...

    3. Re:Too Much Documentation by seebs · · Score: 4, Insightful

      I have never, ever, in my life seen too much documentation. I have rarely seen anything that was even close to sufficiently documented.

      --
      My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
    4. Re:Too Much Documentation by fdrebin · · Score: 1

      Nothing kills progress than having to create documentation that will never be read or updated.

      True, but...

      1. FDA
      2. FAA
      3. ISO

      etc.
      In other words, certain organizations are subject to regulation, and those regulator folks like nothing more than documentation. And every t has to be crossed, i dotted, and every single reference to t has to be linked, defined, version, cross-referenced, index, you have to define how you define everything, etc.
      Really just every single last thing in your world has to be defined, and it's rather difficult to get it right. Guess who's in the middle of an FDA audit?

      --
      Stupidity... has a habit of getting its way.
    5. Re:Too Much Documentation by marcosdumay · · Score: 2

      Too much documentation doesn't imply sufficient documentation.

      Places that do too much documentation tend to document the most useless details possible, not the usefull large picture vision.

    6. Re:Too Much Documentation by dkf · · Score: 1

      I have never, ever, in my life seen too much documentation. I have rarely seen anything that was even close to sufficiently documented.

      Oh, it's pretty common. I've seen large libraries that had lots of documentation generated from doxygen, but which had nothing that actually informed you about how you were actually supposed to use the library. Vast state models that depended on knowing whole reams of stuff that was never ever explained (but boy, was it documented!) In essence, I could see very clearly that the original developers were on something illegal, but not what exactly it was they were smoking. I've also seen systems where the architecture documentation ran to thousands of pages, but the installation instructions were scribbled on the back of an envelope (and thus totally inadequate).

      Documentation. It's useless unless you've got the RIGHT amount.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    7. Re:Too Much Documentation by hibiki_r · · Score: 1

      That's where SBE comes along: If your documentation runs your acceptance tests, the documentation itself will let you know if it's out of date. Some code will be undocumented, but what the documents say should at least be true. Now, that means another layer of tests along with the thousands of unit tests that should be in the codebase in the first place.

    8. Re:Too Much Documentation by Tablizer · · Score: 2

      Writing good documentation takes skill and practice. Usually orgs don't want to hire a documentation specialist, and so you end up with crap that says too much about one thing and not enough about another.

  14. Lack of flexibility; misaligned communication by JavaRob · · Score: 4, Interesting

    Imagine a manager who asks you about what helps you be productive, and what is slowing you down, then works to change your working environment, schedule, hours, etc. to maximize your quality of life & productivity....

    Naturally, it's not common, because instead managers assume their developers won't know the first thing about their own work habits (and what improves/degrades them), and instead blindly tries to establish top-down processes that will make "the team" more productive.

    Sometimes it'll work out; but to be sure, people are individuals, the best developers are *already* thinking about these things (and how to hack their own lives), and the ones that aren't will become better if they're encouraged to think about how they actually work.

    One thing that applies to everyone, at a general level -- getting the level (and kind) of communication right.

    Some people can't get difficult tasks done unless they can retreat into a silent bubble for days on end, free from distractions and completely focused. Most people, however, need at least some level of communication along the way, to intercept them (and help) if they're getting bogged down, getting lost and attacking the problem via brute force, or getting tangled up in their own perfectionism and spending way too much time polishing the first step when they have 19 steps of the solution still to go.

    So they need regular (but short and very focused) communication where they're comfortable honestly discussing where they are and where they're going. (Hint: it's hard to avoid triggering ego traps in these kinds of discussions, but if you do, you'll quickly make the whole relationship completely dysfunctional, and useless).

    Other people thing best in conversation, and will work best when more-or-less permanently paired with someone else (with similar needs, of course... don't pair them with the solo deep thinker!) -- together they can be far more clever and productive than they could possibly be separate.

    1. Re:Lack of flexibility; misaligned communication by AwesomeMcgee · · Score: 1

      As someone who needs to toss ideas over the wall, and worked in my last position for and in the same office with my colleague who was the deep thinker, I can completely agree with you. I figured it out right quick so it worked swimmingly, but if I hadn't already been thinking about these things I might have not noticed and just drove him nuts. I got it and researched quietly or coded to blaring music in my headphones when in the office, and would go out to another senior's cube who was like me and pair program with him when I knew there were unknowns I would want to talk over just to think through.

      That said you're dead wrong. Megacorps waste WAYYY more developer time combined than anyone else with one simple thing; bullcrap bureaucracy stopping them from even assigning work. I've had months on end with zero assigned work at these places, and only been one of many at them effectively being told to wait on hold because the management layers above are trying to digest out some requirements for functionality they want but are 100% incapable leaving the only available work to the tier 3 guys that do custom professional services type triage work. This is an endemic problem in megacorps and because of the size of their dev teams they have effectively on hold, blows way more time in industry than all other possible time-wasters combined.

    2. Re:Lack of flexibility; misaligned communication by JavaRob · · Score: 1

      :shudder

      I've never worked for a megacorp, so I've never even seen this, and hope I never do.

      Though I suppose it'd be nice to have down-time to catch up on my reading now & again.

  15. When they start... by Anonymous Coward · · Score: 1

    Responding to Ask Slashdot questions.

  16. Benefit of TPS by tepples · · Score: 1

    How does a test procedure spec (TPS) impede developers' productivity? An effective test procedure helps a developer know whether his work is close enough to correct to be releasable.

  17. The phone by PhxBlue · · Score: 3, Insightful

    Having to answer the phone is a big one, I find. First is the interruption of the ringing phone itself, then the interruption in your thought process because you have to shift gears to answer someone's question, then the scramble to try and remember what you were doing before you were interrupted.

    --
    !#@%*)anks for hanging up the phone, dear.
    1. Re:The phone by mcmonkey · · Score: 1

      I learned to turn the volume way down and not answer the phone at all.

      Other than people coming by your office/cube/burrow, all our modern communication methods work asynchronously. The phone has voice mail, IM windows can be minmized, email is email, etc.

      When my phone rings, I will check the caller ID, but CID + VM means never speaking with someone I don't wish to speak with at that moment. No VM means it wasn't important.

  18. For me, it's a distracting environment by Anonymous Coward · · Score: 5, Insightful

    I might be in a minority, but having a cube-less environment, where everyone is sitting in a huge room, behind a desk and can see and hear everyone else, is the worst. I feel like sitting in a 60's call center. The "goal" of this arrangement is "collaboration". The result is distraction and irritation.

    1. Re:For me, it's a distracting environment by bws111 · · Score: 3, Insightful

      That is bad, but I think much worse is a geographically dispersed "team" (like some people on US east coast, some west coast, some Asia, some Europe). Come in at 9AM, need to ask a question of another team member who won't be at work for another 12 hours, wait a whole day for a simple response, repeat as needed.

    2. Re:For me, it's a distracting environment by CycleMan · · Score: 1

      Try combining parent and grandparent. Then you can hear everyone around you who is working on things other than what you're doing. But you can't collaborate with a team member without getting on the phone. When you do call them, they're talking in a hushed tone so as to not irritate all the people sitting around them, so you can barely hear them. The height of the cube walls determines the height of productivity (for mature self-driven adults).

  19. The Number Two Time-Waster is "REPLY-ALL" by Press2ToContinue · · Score: 4, Insightful

    It should really be renamed the I'M-COVERING-MY-ASS button.

    As has been covered on /. before, this button is increasingly being disabled within corporations, and only to good effect.

    --
    Sent from my ENIAC
  20. SCRUM by Anonymous Coward · · Score: 1

    These are daily meetings which are designed to coerce engineers to report progress. That may work for some things, but not others. Can you imagine C and Unix being developed if Bell Labs had hired a random manager (and most managers are random) to conduct scrum meetings on Thompson's and Richie's lab?

    1. Re:SCRUM by Trepidity · · Score: 5, Informative

      I'm not all the way into drinking the Agile koolaid, but to be fair the original idea of Scrum meetings was explicitly designed to avoid that problem. Scrum meetings are supposed to be led by a "Scrum-master", who is not supposed to be the manager or boss of the meeting participants. In fact the manager is not even supposed to be there. Scrum is supposed to be a way to facilitate communication within a team, so everyone knows what everyone else is working on. The scrummaster is just supposed to be another engineer on the team who facilitates the meeting so it moves along, and is not supposed to be someone who has any particular authority over the project or the participants.

      Most companies have ignored that part, and the Scrum meetings are, as you say, run by the manager, as these daily "report your progress" checkins.

    2. Re:SCRUM by Dr+Modesto · · Score: 2

      As a some time Scrum Master I generally aim to not say a word at morning stand-ups except when necessary to stick to the plan (eg no rambling) . After all it isn't *my* meeting and I found keeping quiet really emphasised that. The person to my left would start and we'd work round clockwise. Any issues would be noted down to dealt with later. It does take people a while to get used to the idea, but works well.

      --
      There are four kinds of people in this world: cretins, fools, morons, and lunatics - Umberto Eco
    3. Re:SCRUM by disambiguated · · Score: 1

      Where I work, if you see a programmer in the office at 8am, he's been there all night.

    4. Re:SCRUM by disambiguated · · Score: 1

      Where I work, if you see a programmer at 8:00 AM, it's because he's been there all night.

  21. Offshoring by mrquagmire · · Score: 4, Insightful

    Offshoring any part of the development process.

    --
    giggity
  22. Institutionalized Waterfall by plover · · Score: 3, Interesting

    Management who believes that every project must be analyzed, then designed, then coded, then tested. The IIC in our company has never written a line of software yet has built an organization that prevents anyone else from doing it efficiently, either. Since we have no development teams, just handoffs of work products, there isn't even a chance to get the right people together to do agile or even iterative work.

    If we were even 5% as efficient as the rest of you developers, I would be absolutely amazed.

    --
    John
  23. Using rails by elcheesmo · · Score: 1

    Every time there's a minor version update or security patch released, I spend a day trying to migrate to it.

  24. Multitasking between unrelated activities by QilessQi · · Score: 5, Insightful

    It doesn't matter if we're talking about bouncing between meetings and coding, coding and documentation, or just coding too many unrelated modules -- every time there's a substantial context switch, it takes a little bit for you to get your bearings and get up to speed. Sort of like a vehicle making sharp turns all of the time.

    1. Re:Multitasking between unrelated activities by PRMan · · Score: 3, Insightful

      How about a team lead that text, calls or drops by every 30 minutes like clockwork? How am I supposed to get anything done when he interrupts my train of thought 15 times a day?

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    2. Re:Multitasking between unrelated activities by Common+Joe · · Score: 1

      Uh, yeah... Did you get the memo about the new TPS Report cover sheet?

  25. Re:Beg to differ & WHY... apk by gabereiser · · Score: 5, Funny

    HOLY capital letters that was a LONG comment... I see where your COMING from but I don't TOTALLY agree. Meetings DO harm you as far as time is CONCERNED. Rarely are YOU exiting the meeting with a better UNDERSTANDING of what the meeting was SCHEDULED to resolve. Most of the TIME its so that some MANAGER can get the people who KNOW what they are DOING in one room to REACH a DECISION. Rarely are meetings beneficial to ALL parties involved which results in TIME loss and PRODUCTIVITY wasted. I'm using GRATUITOUS use of all caps like you HAVE in your response because I'm emphasizing my WORDS so you understand my intelligence level.

  26. Libraries and Documentation by Jmc23 · · Score: 2

    Not sure how it is at the corporate level. I just know that I waste way too much time finding out what's available and trying to figure out the documentation. Almost 90% of the time I would have spent less time writing the part I needed. Only exception is CLX.

    --
    Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
  27. And then there's the PAY by AliasMarlowe · · Score: 5, Insightful

    Some meetings are necessary obviously... I'm in my first senior developer position now and I've instituted hard limits on meetings because it frustrates me to no end when idiots discuss minutiae for valuable hours of my team's time.

    Agreed, but the actual time spent in meetings exceeds the required time by a significant factor at some workplaces.

    Then there's the pay structure. It's almost as if some places want to pay as much as possible for work (paid overtime for panic fixes) or intend it to take as long as possible (long unproductive unpaid overtime). A better approach would be to pay for results, and damn the work time spent to achieve them, provided they meet the schedule. A 20 hour week can be as productive as a 40 hour week, and more productive than a 60 hour week.

    --
    Those who can make you believe absurdities can make you commit atrocities. - Voltaire
    1. Re:And then there's the PAY by Anonymous Coward · · Score: 1

      A better approach would be to pay for results, and damn the work time spent to achieve them, provided they meet the schedule. A 20 hour week can be as productive as a 40 hour week, and more productive than a 60 hour week.

      That would work for me provided nobody gave me any shit for going home after I've done 40 hours worth of work in 20 hours....

    2. Re:And then there's the PAY by Anonymous Coward · · Score: 2, Insightful

      Then there's the pay structure. It's almost as if some places want to pay as much as possible for work (paid overtime for panic fixes) or intend it to take as long as possible (long unproductive unpaid overtime). A better approach would be to pay for results, and damn the work time spent to achieve them, provided they meet the schedule. A 20 hour week can be as productive as a 40 hour week, and more productive than a 60 hour week.

      I'm pretty sure that's how the higher-ups think it works. That is, they have a project they want done and believe it can be done by Date X. They then hire/assign the appropriate number of people, such that 40-hour weeks will result in success. But they are horribly, horribly bad at estimating productivity.

      Under a pay-by-hour model, the cost of poor estimates is on the company. Under a pay-by-piece model, the cost of poor estimates is on the programmer. ie, if you underestimate the time it will take to finish a particular Result, then you also undercut your wage. Also, I'm pretty sure that human nature is to fill up the allotted time with procrastination, such that any project takes just a little bit longer than the time allowed.

    3. Re:And then there's the PAY by Anonymous Coward · · Score: 1

      I'm pretty sure that's how the higher-ups think it works. That is, they have a project they want done and believe it can be done by Date X. They then hire/assign the appropriate number of people, such that 40-hour weeks will result in success.

      And, of course, a Pointy Haired Boss has already decided how long it will take me to invent something.

      Or, worse case, they have some kind of process to decide how long it takes to invent something.

    4. Re:And then there's the PAY by tnk1 · · Score: 5, Insightful

      Or people start getting the idea that if you can finish work in 20 hours, they can thus give you double the work.

    5. Re:And then there's the PAY by DigiShaman · · Score: 1

      Achieving results in 20 hours vs 40? Doesn't that imply employing developers that know what they are doing in the first place and paying them for that skill set? Like any other profession, you are generally paid based on your level of experience, no?

      --
      Life is not for the lazy.
    6. Re:And then there's the PAY by Anonymous Coward · · Score: 4, Insightful

      That already happens to the people who can finish their work quickly.

    7. Re:And then there's the PAY by AmiMoJo · · Score: 4, Insightful

      Yeah, nothing like not knowing how much your pay check will be for or getting some shitcan job you are doomed to fail at.

      Pay a good salary, motivate the team, listen to them when they tell you a project is doomed from the start and set realistic goals. Works for me.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    8. Re:And then there's the PAY by czth · · Score: 1

      Some places are doing this - it's called a Results Only Work Environment (ROWE). Of course, it's not such a terrifically advanced concept that that's the only name for it, I'm sure, but knowing that name might provide some useful leads.

    9. Re:And then there's the PAY by XcepticZP · · Score: 1

      Experience != skill

    10. Re:And then there's the PAY by Tamerlin · · Score: 1

      I've worked for companies where I've done in two hours more than what my co-workers did in 60. The rest of my 40 hours were wasted cleaning up the other idiots' messes.

    11. Re:And then there's the PAY by kmoser · · Score: 1

      Then there's the pay structure. It's almost as if some places want to pay as much as possible for work (paid overtime for panic fixes) or intend it to take as long as possible (long unproductive unpaid overtime). A better approach would be to pay for results, and damn the work time spent to achieve them, provided they meet the schedule. A 20 hour week can be as productive as a 40 hour week, and more productive than a 60 hour week.

      If you want to pay for results, hire a consultant.

    12. Re:And then there's the PAY by lsatenstein · · Score: 2

      Or people start getting the idea that if you can finish work in 20 hours, they can thus give you double the work.

      And they want the documentation to be done in an hour. Whether it is right or wrong. Delivered!! Points scored

      --
      Leslie Satenstein Montreal Quebec Canada
  28. What is productivity? Not kLoC, please! by Karljohan · · Score: 1

    Number one impediment to productivity is to measure it by the number of lines of codes produced. Alternatively to the quality of the product.

    Productivity measure FTFA, if anyone wonders)

  29. Procrastination getting a bad rap (Was:42) by Anonymous Coward · · Score: 1

    Procrastination is the Number One Productivity Impeder (Not sure if right word, but spellcheck isn't getting me)

    If you took computer science, you know that procrastination has its place in productivity enhancement.

    If you know (for certain) that you have to do something, then do it as soon as possible.
    If you don't know if you need to do something, then delay doing it until it is certain that you need to do it.

    For example, there is no sense computing every value in a huge lookup table because a single value on that table is referenced once. By procrastinating on the other table values, you hope the programs ends before they are needed. It then saves the CPU for something the user actually wants to do (i.e.: boosts productivity).

  30. I wanted to "FOE" you... by Press2ToContinue · · Score: 1

    but you're an Anonymous Coward. Dammit.

    --
    Sent from my ENIAC
    1. Re: I wanted to "FOE" you... by Jmc23 · · Score: 1

      It's just a tag, you can use it however you want. You don't have to be so whiny about it.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
  31. Getting Old by flatass · · Score: 1

    No, not the age of the developer, but rather the topic of "If only my workplace conformed to my every whim and just let me work my way I do best, what a invaluable and productive developer I would be!" There is a reason that the unfortunate stereotype of developers being Prima donna's exists. /rant

  32. Constant new "Top Priorities" by MillerHighLife21 · · Score: 5, Informative

    I've had managers that constantly try to shift my priorities to whatever has their attention that day. They want me to drop whatever I'm to focus on the most recent urgent pet project.

    When it affects cash flow, I fully understand. We need to take care of a big advertiser or something like that, totally understandable. Pretty much everything that doesn't fit in that particular realm though, forces me to tell my boss it will have to wait so I can finish my other 10 urgent projects. The line "everything is top priority" also fits in this realm.

    Pivotal Tracker is actually really helpful in this regard because there aren't task lists, there's a queue and something is at the top of it. That is what you work on. If a manager wants you to do something else you force them to de-prioritize your other tasks. It's fantastic in that regard because it forces managers to acknowledge they are slowing down their own requests.

    --
    "Don't teach a man to fish, feed yourself. He's a grown man. Fishing's not that hard." - Ron Swanson
    1. Re:Constant new "Top Priorities" by LinuxIsGarbage · · Score: 1

      Because we get so overloaded with work, my department's action register is hundreds of lines long.

      So in the hope of focusing our work my manager wanted us to number our top three priorities.

      Before I knew it I had 5 #1 priorities, while still having #2 and #3 priorities.

  33. 10 Woes of the Code Monkey by RedHackTea · · Score: 1
    1. 1. Not being able to drink beer and/or Irish coffee.
    2. 2. Not being able to curse and/or name something FuckedUpException.
    3. 3. Not being able to use the IDE/TextEditor/OS that we want.
    4. 4. Managers that write shit Functionals.
    5. 5. Support people that write shit re-creation steps.
    6. 6. Not being able to cry and masturbate while you work.
    7. 7. The voices in my head that won't go away.
    8. 8. Having to communicate with someone in-person instead of via email.
    9. 9. Shit coffee.
    10. 10. Having to support IE.
    --
    The G
  34. So, now even posters don't RTFA? by SolitaryMan · · Score: 1

    From the Summary:

    When it comes to developers' productivity, numerous controversial studies stress the differences between individuals.

    (Emphasis mine)

    From TFA, first fucking paragraph:

    They found no relationship between a programmer’s amount of experience and code quality or productivity.

    This study's results have been misinterpreted to a completely ridiculous degree. They found that environment, i.e. level of noise, "population density" of the office, etc., was the deciding factor. Please read the study and stop proliferating this myth about super-human programming ninjas. We are way more equal in our skills than some egomaniacs would like to beleive.

    --
    May Peace Prevail On Earth
    1. Re:So, now even posters don't RTFA? by Anonymous Coward · · Score: 1

      This study's results have been misinterpreted to a completely ridiculous degree. They found that environment, i.e. level of noise, "population density" of the office, etc., was the deciding factor. Please read the study and stop proliferating this myth about super-human programming ninjas. We are way more equal in our skills than some egomaniacs would like to beleive.

      That's true. I can't say that I've ever encountered any 10X individuals in my experience. The most prolific has been maybe 3 times as efficient as their peers. I have on the other hand, worked with a few 0.1X programmers and even -1X programmers.

    2. Re:So, now even posters don't RTFA? by seebs · · Score: 1

      You are conflating two unrelated claims.

      One is a correlation between experience and quality or productivity.
      Another is a correlation between people and quality or productivity.

      These are not the same. The claim about "super-human programming ninjas" is not that a programmer with 10 years of experience is 10x as fast as a programmer with 1. It's that the variance between good programmers and bad programmers is huge.

      And it is, on many different factors. I'm unreasonably fast, but I'm also really error-prone, especially on the "easy" parts of things. Taking that into account, I can still get stuff done quite quickly if it has the qualities that make it amenable to the kinds of things that my brain happens to be really good at.

      Yes, environment also makes a huge difference. But the difference between a really good programmer and a really bad programmer may be quite a lot larger than the difference between a perfect environment and a mediocre environment.

      And it's also true that virtually no one is "10x" as good as their peers. But say you've got this one guy who really is about 3x as productive as an average programmer. And say you've got this other guy who is just awful, and maybe 1/4 as productive as an average programmer. That's a 12x difference between them...

      --
      My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
    3. Re:So, now even posters don't RTFA? by SolitaryMan · · Score: 1

      I didn't say that there is no difference. The studies say that the difference in productivity is mainly influenced by the environment. Read the study please.

      --
      May Peace Prevail On Earth
  35. The most stupid company by slimdave · · Score: 5, Interesting

    One company I worked for recently had a singularly interesting practice. They had no receptionist or phone answering service, so a call from an outside line or press on the door buzzer made every single fucking phone -- 25 of them -- in the open non-partitioned office ring until someone answered it. They would then have to ascertain who was calling, call the person they were trying to get through to (phone directory in word document on "intranet"), work out where that person was (notice system on "intranet"), take a message or let the person in. This included software developers, of course, who were sharing the open office with systems analysts, IT support staff, production support, and the kitchen area. Requests to work in other (quieter) parts of the building or at home were denied as it was deemed to be bad for team work or unmonitorable.

    1. Re:The most stupid company by macbeth66 · · Score: 1

      Music with head phones solves that problem. As well as a team lead that stops every 30 minutes.

    2. Re:The most stupid company by slimdave · · Score: 1

      Yes indeed -- then management would yell for the phones to be answered and follow it up with a company-wide email berating the phone shirkers.

    3. Re:The most stupid company by phantomfive · · Score: 1

      Wow. After working there for a few months, I would literally have ripped the phone off my desk, smashed it on the floor, then jumped up and down on it. Really. And I would have felt so much better after doing so. To the point that I almost wish I worked at such a company, so I could enjoy that experience.

      --
      "First they came for the slanderers and i said nothing."
  36. articles from 2008 are news? by koffka · · Score: 1

    "Published Mar 27 2008, 10:15 AM by Steve McConnell"

  37. Requirements and Replacements by quietwalker · · Score: 2

    The biggest hit to my productivity is bad requirements, which usually comes directly from the lack of empowerment of the developers. We know bad requirements when we see them, but rarely do we have the ability to push back. However, we all know, without good requirements you can't deliver a good product without unnecessary iterations, much less design for future usage and so on. The best you can do is make a series of somewhat-related mediocre guesses about what needs to be done. Then wipe half of it out when the team comes back because they were smoking meth during the planning phase.

    The second biggest hit to my productivity at any given job is when it's implied or expected that any programmer can and will wear every hat associated with every piece of network or computer hardware and software. That they're some sort of universal replacement for every skilled job that includes computers.

    If I write Java code, why would you expect that I'm the right person to install SAP? What about writing a file parser indicates I know how to make complex custom graphs in excel, can administer 250 windows servers, will fix the toner cartridge on the printer, will crawl under desks to track down a bad network cable, or should be troubleshooting a customer's firewall configuration, or building a QA test environment?

    Even when I do have those skills, it is not very efficient for me to be multitasking on an hour-to-hour basis. Hard to get into, and stay in code-mode with constant context switching.

  38. Generally, interruptions by RocketScientist · · Score: 4, Informative

    Interruptions and a poorly designed work environment that encourages them. Right outside my cubicle is a BIG OPEN AIR MEETING ROOM with included MEDIA CENTER.

    OK, so BIG OPEN AIR MEETING ROOMS are bad. Very bad.

    Other bad things:
    Speakerphones. Damn things should be destroyed on sight. There is no reason for anyone not in an office to have a speakerphone on their desk. Any "manager" who says developers in cubicle farms need speakerphones should be fired. Don't allow speakerphones on the same *floor* as the development team, except inside of small, well-sound-isolated offices.

    Not enough meeting rooms. Encourages people to do what I'm hearing right now, which is stand around between cubes and have loud conversations.

    Phones in general. The only people who call me are recruiters or customers who got lost in our phone system and got me by mistake. Which of those 2 groups do you want me to talk to?

    Bad climate control. Too hot in the summer, too cold in the winter.

    Requirements to be on email or messenger at all times are counterproductive. They let managers feel important, but that's the only benefit they have.

    Cell phones with obnoxiously loud ringers left on desks. I tell my team "in your pocket or on silent" is the rule for all cell phones. Anyone in violation of this rule that receives a call returns to their desk to find their phone turned off and the battery removed if possible. If they find their phone at all. I've hidden them in the ceiling before.

    Here's a list of the seating assignments I've been given in buildings:
    Share a conference room with other developers.

    1. Re:Generally, interruptions by HeckRuler · · Score: 1

      Seconded. To hell with phones. We're living in the future, get with the times.

    2. Re:Generally, interruptions by gstoddart · · Score: 1

      Speakerphones. Damn things should be destroyed on sight. There is no reason for anyone not in an office to have a speakerphone on their desk.

      Years ago at another job, one of the only vacant cubicles was smack dab in the middle of all of the developers (and ONLY developers).

      One day a visiting idiot decided to put his speaker phone on so he could listen to a con-call, and work while he was muted.

      Eventually I walked over and hung up the phone on him -- naturally, he was shocked and thought I was being rude. I told him that nobody within a 50 foot radius ever used their speaker phone, that he was disturbing everybody around him, and if he really needed to listen to that damned call he could do it in such a way as to not force all of us to listen to it. His ability to multi-task was interfering with our ability to work.

      He sputtered for a few seconds, but as I walked away you could hear co-workers clapping. He never chose that desk to work at again. I was told later he complained to a manager, and was told by the manager he would have done far more than I had and to stop being such a dick.

      Yes, speakerphones are annoying in open plan offices. People who insist on using them so they can multi-task while everybody around has to listen? Well, there's a special place in hell for them. :-P

      --
      Lost at C:>. Found at C.
    3. Re:Generally, interruptions by mcmonkey · · Score: 1

      I tell my team "in your pocket or on silent" is the rule for all cell phones. Anyone in violation of this rule that receives a call returns to their desk to find their phone turned off and the battery removed if possible. If they find their phone at all. I've hidden them in the ceiling before.

      Anyone can occassionally forget to put their phone on silent, but as a rule (and I've never known an exeception) the folks who never put their phone on silent are managers. This just reinforces my belief that managers don't do any work, therefor have no work to interupt.

      And better (worse) than the person using a speaker phone in an open floor plan or amongst cubes, is the person using a speaker phone when on a call with someone in the same area. If I can hear a person at their desk and their voice coming out of a speak phone at another desk, why the frak are you two on the phone? Just walk over and talk! Or better yet, move to a conference room.

  39. Re:Chaning the specs by AwesomeMcgee · · Score: 1

    I've been on those projects where management couldn't make up their minds so they just kept me on hold until they did. That's how I found Slashdot.

  40. Unit tests by Anonymous Coward · · Score: 1

    I worked for a startup with excellent unit testing practices. Productivity was amazing, even when working with older code, because design and implementation errors would be found immediately, when they were easiest to fix. New developers came up to speed quickly because they could *see* dozens of tested use cases of the code they were working on, and their newbie errors were quickly exposed by the tests.

    We were acquired by a public company with a manual QA process and no unit tests. Developer productivity plummeted. Formerly 10x-er developers became 2x-ers as they spent massive amounts of time finding and fixing downstream issues every time they did something innovative. This led senior software managers to say things like "You can't change that class -- it is too risky", creating a perverse disincentive to create modular code. The code base was slowly crushed by its own weight, and the 10x-ers all left for greener pastures.

  41. TDD, Code Coverage goals, Code Reviews by elabs · · Score: 1

    ...pretty much everything they say is "good practice." I love it when a highly tested, well covered, well-reviewed piece of code is so buggy it can hardly stay running. It really reveals that no amount of process can compensate for individual skill.

  42. A quick few ones by rbprbp · · Score: 1

    Internet filters/blocks. Low-quality hardware/software. Phone calls. People that do not realize that IM is not for chit-chat. Endless meetings. Noisy people (I've resorted to earplugs quite a few times). Etc etc...

    --
    They're there in their room. You're on your own.
  43. Re:Make your mind up by sunderland56 · · Score: 1

    Nothing more unproductive than continually changing requirements/specs

    Isn't "continually changing specs" another term for "Agile"?

  44. Having to deal with freelance web developers by icebike · · Score: 1

    Nothing more annoying than trying to come up with verbiage and staged photos for the Freelance Wed Developer' hired by management to invade every office and try to get a "broad picture" of what your section does on a day to day basis for some fluff piece in the Who We Are section for the 27th rewrite of the corporate web site.

    And woe be to any department head that sends the web developer packing for interrupting actual WORK, after the whiny pimple faced kid reports back to management that they are getting resistance.

    --
    Sig Battery depleted. Reverting to safe mode.
  45. Chit chat by HeckRuler · · Score: 1

    That guy who comes by and lingers around my cube making idle chit-chat because he's bored out of this gourd and/or simply doesn't want to work. So he drags me down into that narfarious pit of unproductivity by making smalltalk about.... FOOTBALL... of all things.

    Don't get me wrong. He's a nice guy. Friendly. Smart. But he's gregarious, while I want nothing more than to retreat to my cube and get back to work. The guy just can't take a hint that the conversation is over and it's time to leave. Show any amount of interest and he reves up into another 5 minute one-sided discussion. Ugh.

  46. Strong typing by iliketrash · · Score: 2

    Strong typing. LOL

  47. Working environment by Todd+Knarr · · Score: 4, Insightful

    You want me to be productive as a developer? OK, here's what I need to do that:

    A comfortable workspace. Give me a good solid desk with drawers and shelving to store reference and work materials. A phone with a headset so I can hold a conversation and work on the computer at the same time. A comfortable chair. Not one of the $99 specials from Office Depot, something high-end that's rated for 8 hours of continuous use. If what you're providing for an office workspace isn't at least as good as what I can afford personally at home, there's probably something wrong.

    A good computer. It needs to have enough CPU horsepower and enough memory and disk for the software you expect me to be using. And it needs to be better than the minimum spec, I can't be productive when my tools are barely limping along. Good monitors too, and more than one. I'm going to regularly be pulling up digital reference materials and I'll have a lot of work on my screen, I need the screen real-estate to have all of it available without constantly having to shuffle windows to the top. You want to understand why, try doing your work with only one sheet of paper visible at a time and if you need to refer to 2 reports at once you have to lay one on top, read it, pull the other one out and lay it on top to read it, lather rinse repeat. If you don't think you can be productive working that way, why should you expect me to be?

    Give me the reference materials and tools. If you expect me to work with tools or systems, give me all the documentation on them. It doesn't have to be physical, but it has to be available and up-to-date. If you want me to work on something, give me the tools to work on and with it. IDEs, editors, file comparison tools, merge utilities, it's possible to not skimp without going overboard. If you want me to work on software that accesses a database, give me a database client and access to those databases and a personal database I can play with to test things before I break the world for everybody else. If you want me to work on a system, set it up so I have my own installation I can put changes into to test. And for crying out loud, give me documentation on how to set it up and configure it and use it so I'm not completely lost going in.

    Give me the ability to work uninterrupted. I know open-plan offices are all the rage, but you're expecting me to do work that requires high concentration for hours at a time. I can't do that with every conversation in the office distracting me, or everybody coming over randomly with questions or conversation. Same for phone calls. People should not be calling developers directly unless the developer's asked them to. If you need to, hire a receptionist to field calls and route them where they need to go (as opposed to where the caller wants them to go).

    Let me work on my projects. I have a priority list. I use it to decide what things I should focus on now. But it doesn't do me any good if the priorities are constantly changing. I know, I know, the old saw about responding to business needs. Think a minute: maybe the problem isn't that I need to respond, but that business needs to start thinking more than a few days ahead? If requirements for a new project are constantly changing, perhaps you just don't have a good enough idea of what you want to start actual work on it yet. One of the worst ways to kill my productivity is to give me just enough time to get a handle on a project and start work, then make me drop it and start on a completely different project, and keep doing this repeatedly. When you pull me away from project A to work on B, it costs project A more than just the time I was working on B. The distraction will make me forget some of the details of what I was working on for A so when I get back to it I won't be able to just pick up where I left off, I'll have to backtrack and spend time remembering my train of thought and reconstructing all those details before I can start working again. So try to settle the priority lists down so they're not changing on a daily b

    1. Re:Working environment by n7ytd · · Score: 1

      I'll add just one thing: budget some time and money for me to learn new things. Conferences, webcasts, books, whatever. If you don't want to lament in 5 years time why we're so horribly behind the times, the company must invest now to keep up on things.

    2. Re:Working environment by Kjella · · Score: 2

      Give me the ability to work uninterrupted. I know open-plan offices are all the rage, but you're expecting me to do work that requires high concentration for hours at a time. I can't do that with every conversation in the office distracting me, or everybody coming over randomly with questions or conversation. Same for phone calls. People should not be calling developers directly unless the developer's asked them to. If you need to, hire a receptionist to field calls and route them where they need to go (as opposed to where the caller wants them to go).

      I recently switched to an office and I'm not sure single person offices are the trick, I feel my productivity has gone down rather than up. I'd rather go with team rooms - if you're working on the same project/area, you sit together but under no circumstances more than 2x4 people islands and no mixed rooms. However, this requires you to have a bit of headroom so you can leave seats idle and don't need to do a full reshuffle or knock down/put up walls all the time. Also small discussion rooms you can ad hoc grab for say 4 people max that don't need booking for extended conversations/discussions or if you really need closed door time. Make sure each room has a PC so you can show stuff unless you're all on laptops/wireless. I've found that if one is always available and people are just too lazy then a few swift corrections/reminders will make people use them.

      As usual there's many exceptions to these rules but I really feel the distance of getting up and walking from my office to their office is a big enough barrier compared to just looking across the room, seeing they don't look particularly in deep thought and just ask my question. And usually that means most of the other people heard it too so now they a) don't need to ask the same question and b) could object if they disagreed and c) throw in any related question they were wondering about. Team talk is overall more beneficial than it is distracting in my experience, it's people talking about entirely unrelated things that put you off your game.

      --
      Live today, because you never know what tomorrow brings
    3. Re:Working environment by Todd+Knarr · · Score: 1

      True, but then by going over to someone else I'm interrupting them just as much as people coming to me interrupts me. And much of the stuff can be handled better via e-mail, which leaves a nice neat paper trail of information that I can file and refer back to and is a lot less disruptive if properly used. Don't underestimate the value of that paper trail. A record of why you came to a particular decision about how to do things is more valuable than a simple description of the decision. Things will change over time, and you can't know if the reasoning behind a decision's still valid if you don't have a record of what that reasoning was. Having the conversation in e-mail automatically creates that record (assuming people file the e-mails, which I do). There's also IM and VoIP and desktop sharing, and it's amazing how effective those can be (especially when combined with webcams so you can see who you're talking to). I can reserve face-to-face for really critical issues.

      As for group areas, I'd say that simply having several meeting rooms with network access should suffice. I've found it rare that I needed to be actually working in a group for any length of time, more often it's sit down as a group to bat issues around and come up with plans, then divide up and get working with individual conversations when needed. And one big bullpen area, suitable sound-isolated from the office area, where you can sit down for truly large meetings or for things like full deployment tests where for an afternoon you really are leaning over each other's shoulders to help sort out problems.

    4. Re:Working environment by jonwil · · Score: 1

      Related to what you said about a good computer, I would suggest that having a good keyboard and mouse are important too.

      And in terms of the CPU horsepower, if a compile pass takes 3 hours on the hardware you have, consider how much wasted developer time (at $x per hour) it takes before investing in a faster box to do compilation on is worth the money.

  48. #1: dumb developers by mveloso · · Score: 1

    The #1 impediment to developer productivity is developers writing code that does the wrong thing. #2 is writing code that doesn't work.

    Blame meetings all you want, but realistically speaking most developers are totally clueless.

    Even this question is dumb. It's basically asking "how do we write bad code faster?"

    1. Re:#1: dumb developers by chrismcb · · Score: 1

      So the #1 thing that impedes YOUR work, is another dumb developer? This can only be true if this person is constantly in your office asking questions.
      As for your last statement, yes. The question is "how can you write more code." It doesn't ask whether you are writing bad code, or good code. The problem is, at least for me, I can work for a while. Sure my code might be bad, or it might be great. But I am getting the problem solved. But if I have to context switch, it takes some time to get back to where I was in the groove of writing code.
      This has nothing to do with being clueless or not.

  49. Bad meetings? by Okian+Warrior · · Score: 2

    When I was a senior developer, I would have a weekly status meeting with my team. The meeting always started off with basic status reports (what did you do, what are you stuck on, what do you need help with), followed by project updates from other teams (where pertinent) and finally a free topic session to discuss any issue.

    Okay, just to be clear.

    In your meetings, everyone waits while one person tells his status, then everyone waits while a 2nd person tells his status, and so on.

    How is this more efficient than everyone composing a 1-paragraph summary and sending it around in E-mail? How is this more efficient than the boss visiting everyone one-at-a-time, taking notes, and typing up a summary E-mail?

    How is a "free topics" meeting with everyone better than "targetted topics" meetings with only the people involved? Aren't impropmtu get-togethers with a couple of people in the bosse's office more effective than big meetings in the conference room?

    I'm confused. What about your meetings make them good meetings?

    1. Re:Bad meetings? by tnk1 · · Score: 2

      Using email for everything can have a very negative effect. I've seen arguments that became holy wars in email chains completely dissipate in a meeting. I know some developers work in those conditions, successfully, but it is situational. It is often helpful to periodically just make sure you don't forget that those whom you are talking to over email are actually humans like you are.

      I agree that many meetings are pro forma BS, but they do have their uses.

    2. Re:Bad meetings? by Bengie · · Score: 3, Interesting

      That's not how our meetings go.. more like

      Person 1) All is going well, notice this is part is x% slower than expected and their other part is x% faster than expected based on our last discussion
      Person 2) Nothing here, all is well
      Person 3) I'm stuck on this one part, this is what's going on, this is what I researched, this is how I'm thinking of attacking the problem
      ...Think tank mode for the group...
      Ideas tossed around, move on

      Most meetings around here aren't of managers, but of senior developers, architects, and engineers.Some times a manager or two will sit in and listen, but they tend not to say much, but that's more like once per month.

    3. Re:Bad meetings? by schlesinm · · Score: 1

      th), followed by project updates from other teams (where pertinent) and finally a free topic session to discuss any issue.

      Okay, just to be clear.

      In your meetings, everyone waits while one person tells his status, then everyone waits while a 2nd person tells his status, and so on.

      How is this more efficient than everyone composing a 1-paragraph summary and sending it around in E-mail? How is this more efficient than the boss visiting everyone one-at-a-time, taking notes, and typing up a summary E-mail?

      How is a "free topics" meeting with everyone better than "targetted topics" meetings with only the people involved? Aren't impropmtu get-togethers with a couple of people in the bosse's office more effective than big meetings in the conference room?

      I'm confused. What about your meetings make them good meetings?

      What I've found is that if you don't meet together as a team, then you can't make sure that everyone's on the same page. You'd be surprised how many times someone brings up a problem and it turns out that 2 other people knew about it and hadn't said anything yet or knew about it and figured out how to fix it (or work around it). Email isn't as good because you don't know if everyone read it or understood it. Impromptu get-togethers are encouraged, but aren't a substitute for a regularly scheduled team meeting. Things are often handled quicker and easier if everyone's in one place at the same time. In addition, as the leader, I had a busy schedule, so spending 30 minutes together with everyone was more efficient than spending 10 minutes with 5-10 different people. And I often had project updates from the management that I would pass along. I only had to talk about it once and answer questions once while knowing that everyone is aware of it. Targetted topics meetings are scheduled for topics that aren't of interest to the general team. Free topics are usually for non project updates (going on vacation, doctor's appt,, etc) which the rest of the team should be aware of. And strict meeting rules were enforced. If a topic started going on too long (usually longer than a minute or two), then discussion was stopped and a separate meeting was scheduled to handle that particular issue with only the people needed. Most of the meetings were done in 10-15 minutes and were scheduled no closer than once a week. But they are necessary to make sure the project runs smoothly and everyone is aware of what's going on with their teammates and the rest of the project team and don't get stuck in their own silo without knowing what else is going on.

    4. Re:Bad meetings? by raarts · · Score: 1

      Because in most of the open source development world there are no deadlines and no pay.
      When you have a deadline, meetings can be great to make sure everyone stays focused and
      looking in the same direction.

    5. Re:Bad meetings? by tnk1 · · Score: 1

      In a business, as opposed to an open source project, you could certainly have projects with no deadlines, particularly for new products that no one has seen before, but usually you need to supply features which then have to be marketed, documentation written for them, and of course, sold. All of that requires that the code be some state of completed on a certain schedule to make it all work out.

      Customers are also not going to wait forever for you to make changes or features that they want. If you take too long, you lose a customer, either by causing them to jump ship, or by your competitor getting that feature first.

      Deadlines are necessary in business, but they're not the real problem, assuming that the deadlines makes sense based on a rational assessment of your available time and resources. However, whether deadlines make sense or not, they aren't going anywhere and meetings are useful for coordinating action.

    6. Re:Bad meetings? by tnk1 · · Score: 1

      Thing is, you should do one on ones, but you should also do things together. People need to hear what other people are seeing as issues. If you are trying to disseminate information on blockers and status, it is more efficient to do it in a very short standup.

      Agile standups are supposed to be once a day, at the beginning of the work day. If you happen to be an early riser and start coding before most people get in, it will interrupt you, briefly, but honestly, while I understand that 5 minutes of distraction is 30 minutes of restarting your focus, the reality is that it is a 35 minutes that you will benefit from. Since it is on a regular schedule, if you can be flexible on what you're working on, you can make sure you start the day off with something you can get to a reasonable state in the block of time before the meeting.

      To be frank, compared to a properly run standup, simple socialization with co-workers is going a bigger cause of focus loss during your day.

      Personally, I like working without interruptions and without meetings, and I skip any and all meetings that I can get away with. However, some meetings, properly run, are a very good idea for team communication, taken in reasonable doses, of course.

      I don't really like the instant messaging idea, however. If you are going to bother to have a meeting, you're going to want people focused on it, and you want the people in the same room. Many of the problems I have run into with outsourced teams is indicative of a simple lack of geographically distant teams never actually meeting in person. Not even teleconferencing does it. Oh yes, your company doesn't fall apart, but things take longer to complete, misunderstandings persist longer, and cooperation also suffers. Your mileage will vary, but that is my first hand experience.

    7. Re:Bad meetings? by JavaRob · · Score: 1

      Here's what my current dev team has settled on -- we ran into many of those issues early on, and modified our approach.

      We have brief meetings MWF (calls w/ screen sharing, technically, since we're distributed).

      We make up meeting notes in advance (on the wiki), each person adding in briefly what they've done, what's next, and what they'd like to discuss (if anything).

      In the meeting, we only actually discuss the points listed for discussion, unless someone brings up what someone else is working on (like, "if it's useful, last year I did something quite similar to X that may be helpful to you").

    8. Re:Bad meetings? by Mark+Hood · · Score: 1

      Well if you believe that the rest of the group get nothing out of the status reports, then yes it's a complete waste of their time.

      Normally when we've done these meetings they are a) fast and b) lead to someone offering an insight the other person had missed.

      Not to mention the actual feeling of being part of a team, which is often overlooked.

      Combining reports into email is all well and good, but if I'm busy I'll just file it - and not give up my time to help someone out, unless I know I have enough time spare. 5 minutes each in a meeting is more productive for everyone.

      --
      Liked this comment? Why not buy me something nice
  50. bad Junior Developers by locopuyo · · Score: 1

    Asking questions every 5 minutes on basic things they should already know.
    Checking in buggy code that wastes QA's time and blocks me from working on something.
    Working for weeks on a file without doing an update and then end up overwriting my changes and breaking them.

  51. answer - Management by Kingkaid · · Score: 1

    Oddly enough it also helps developers stay on task and not over-build or over-complicate things, meaning projects require less work.

  52. Distractions by torind_2000 · · Score: 1

    the people that constantly come to my and say blah blah blah facebook blah blah blah facebook

  53. Correction: by Cordwainer+Duck · · Score: 1

    E-mail in an environment where you _cannot_ close it because the sender will be on the phone or in your cube if you haven't responded within five minutes.

  54. Math Test by DeanFox · · Score: 5, Interesting


    I had a similar thing going on with a clueless manager. He wanted an explanation why projects weren't getting completed on time. I suggested I could do one better and show him why. He agreed. I downloaded I think it was a sample SAT math test. Where ever I got it, it was one of those four or five hour timed math tests.

    I gave it to my manager and told him it had to be completed that day. And that just a passing score wasn't acceptable. It had to be returned at 100 percent. No exceptions. But the good news, it was open book. When completed, at his discretion, he could go back over any or every answer and double, triple check, use Google or whatever he wanted. But that no matter what, 100% was needed.

    I handed it to him and said your time starts now.

    Then I continued taking and mentioned the two meetings we had scheduled. I also told him I'd be needing his help later that day solving an issue we had with a project that was also due that day, etc.
    I said I'd be back at the end of the day to see how well he did accomplishing his basic minimum job requirements. I wished him good luck

    My goal was to convey that programming is like taking a math test. A math test requiring 100% accuracy. A task requiring full, uninterrupted concentration. That checking every answer when finished was equivalent to testing the code. Even if it was similar to taking the 4 hour test several times. But along with that, meetings, telephone interruptions, being pulled off on unrelated tasks were all part of the job.

    Did I mention he was a little clueless? By the end of the day he hadn't even started the math test. And yet he never seemed to 'get it'.

    -[d]-

    1. Re:Math Test by mcmonkey · · Score: 1

      I had a similar thing going on with a clueless manager. He wanted an explanation why projects weren't getting completed on time. I suggested I could do one better and show him why. He agreed. I downloaded I think it was a sample SAT math test. Where ever I got it, it was one of those four or five hour timed math tests.

      Dern. I've already posted in this thread, so I won't moderate, but that is genius.

    2. Re:Math Test by minstrelmike · · Score: 1

      I work with all developers (including the boss but she's over the hill and clueless now).
      We each have our own office with a door that closes but the doors are generally open
      When my clueless boss walks into my office, she starts talking immediately as if I'm listening.
      When the rest of us walk into someone's office, there are two options for what the other person is doing
      1. typing furiously on the keyboard or
      2. staring out the window.
      If the dev is staring out the window, I come back later not wanting to interrupt deep thought.

  55. Putting untested undocumented work into production by conspirator23 · · Score: 1

    Oh wait! I forgot, this is supposed to be about things developer's DON'T like. Not the things that developers love to do that make everyone else miserable.

  56. Principal cause by NEDHead · · Score: 1

    Access to /.

  57. Rogues by jklovanc · · Score: 1

    Egotistical programmers who firmly believe that their way is always the best no matter the history of procedures of the company. They do things without regard to how they effect other people and cause others a great deal off wasted time trying to figure out their 'optimized" code is doing. It is about project productivity not individual productivity. If an individual's excellent productivity leaves such a mess behind that it delays others it is not a good thing.

    A perfect example of this is code format haters. They will use their own preferred format and ignore the company standard. They may work faster but the next person who reads the code will work much slower. The code will also be modified in code reviews wasting time. Short term gain for long term loss. Had they buckled down and accepted the code format they would be back to their original productivity in a short time and not be a continual drain on overall productivity.

    There are other similar issue. I will use package A when it everything else uses Package B because I know Package A better. This neglects the fact that everyone else knows Package B and not Package A and will have to waste time going through the learning curve. The same goes for design patterns, scripting languages, etc.

  58. Re:Putting untested undocumented work into product by conspirator23 · · Score: 1

    Users like yourself

    Sorry AC, not a user. I work on the support/administration end, where 90% of my life is cleaning up turds left behind by cowboy devs who think that "practices" interfere with their "creativity," and the "users" (aka THE PEOPLE YOUR JOB EXISTS TO SERVE) are somehow beneath notice. But thank you, I really appreciate your dropping by and proving my point for me.

  59. Noise by assertation · · Score: 4, Informative

    I program better when I am in a quiet environment.

    I have been amazed how hard it is to get work done in cube farms, especially when there are people nearby whose job it is to talk on the phone often.

    A few gigs like that made me invest in these. They work as well as ear plugs but without the inconvenience of roll and stuff them:
    http://tinyurl.com/cw33u3x

    There is this popular article about research that shows that quiet and solitude boosts productivity, including for developers
    http://www.nytimes.com/2012/01/15/opinion/sunday/the-rise-of-the-new-groupthink.html?pagewanted=all&_r=0

    If an org will not pay for real offices they should consider separating people with noisy jobs ( phone use ) from others and make some rules about noise levels

  60. outdated information by CaptainNerdCave · · Score: 1

    ...and meetings.

    I work primarily in product testing, and nothing wastes more time than people or documentation that haven't been brought up to the latest information and standards.

    Anecdotal evidence: Last week, a crucial item wasn't shipped on Friday because I had outdated documentation about the last few tests required before shipment. The prototype failed key tests, and nothing could be shipped until Monday. It didn't matter that this item met the expected standards, everyone in testing had outdated standards, and the shipment was halted.

    Sadly, the failure went unnoticed by anyone who cared until long after the deadline, because they were all, you guessed it, in meetings.

  61. Everything by detain · · Score: 1

    Documentation, Testing, Bosses differing ideas, Making interfaces idiot proof for that 1 person that cant figure out what to do no mater how simple or straight forward something might be to you

    --
    http://interserver.net/
  62. Re:Putting untested undocumented work into product by hendridm · · Score: 1

    cowboy devs who think that "practices" interfere with their "creativity," and the "users" (aka THE PEOPLE YOUR JOB EXISTS TO SERVE) are somehow beneath notice.

    Lol, such bullshit. I am the most customer-focused individual on my team, and I am constantly getting yelled at for not ping-ponging tickets back at the users for pedantic reasons.

    The goal isn't to actually do any work or help people. The goal is to make sure you close the tasks in your queue before the end of the sprint so that the productivity reports are stellar. This makes the boss look good. It's also easier to justify his budget if you're constantly putting out fires rather than actually installing some fire prevention.

    HOW MANY TIMES have I been forced to close a ticket even though it isn't done, and then have to work on it later because the shit is still broken. Obviously, this system requires a bit of planning, so you have to way overestimate projects to allow time for fixing shit that was prematurely closed but not actually fixed.

    Madness!

  63. Frivolous Software Patent Litigation by neghvar1 · · Score: 1

    I believe Frivolous Software Patent Litigation to be a major impeder.

  64. Pure hubris. by conspirator23 · · Score: 1

    We know bad requirements when we see them

    I agree with your overall suggestion that poorly defined requirements lead to poorly executed projects, but this statement is some serious overreach on your part. So all devs have an innate understanding of all business needs? Devs have an innate understanding of the expectations of the user base? If such things were true, there would be no need to "push back." Trust me, people on the revenue side of the house do NOT want to go through the exhausting process of trying to communicate their needs. They would love it if you could read their minds and give them what they want.

    Given free reign however, developers will tend to give the users what the devs want to make, not what the users want to use. I wonder how you would feel if [warning: gratuitous car analogy] the auto industry decided that seatbelts and airbags are wasteful because only incompetent people need them? Yet this is how many devs think when faced with the tedious, onerous business of building something to satisfy the needs of others.

    It really fascinates me how this attitude continues to survive in geek culture. In most other creative professions, the creative types are obsessed with winning the adoration of their audience. This frequently leads to less talented people being branded as "hacks" or "panderers" who choose the easy path and are focused solely on pleasing an audience without demonstrating any true artfulness. Somehow many software devs continue to live in this bizarro world were they do what they feel like and pity the poor mortals that don't appreciate their genius.

    Those of us who fix problems, rather than create them, are not amused. I'd rather work with a pandering hack than an arrogant prima donna any day of the week. My recommendation for your specific gripe is to make a point of reaching out to the project managers and the business analysts in your organization and offer to put resources from your team into the lion's den during the requirements definition phase of the project. Then you don't have to push back against decisions that were made without your input. You were there when the decisions were made. Good luck with that though. Apparently requirements definition is a fancy name for those "boring meetings" modded 5-insightful at the top of the post.

  65. Lack of respect for the trade by longfeet · · Score: 1

    I work for a big software company and work on a huge product.

    The number one productivity killer is Broken Code.
    Broken builds, bugs which prevents the product from running, newly (undocumented) configuration.
    Sometimes it takes me days until I can actually start developing.

    Proper testing environment is a valuable asset for productivity.
    Beyond the obvious reasons of making it easier to clean bugs, test by running is a time consuming method.
    Our product is heavy and takes ages to start running and it surely consume my time when I'm developing.

    That brings me to slow machines which is not a major time killer but is very easily fixed and I'm pretty sure has a good ROI.

  66. Not using an issue tracker by erik.martino · · Score: 1

    Too many small assignments outside the issue tracker is filling the head with distracting thoughts. One small issue you have to enter on behalf of someone else could loose 10 minutes of productivity. All because the reporter was too lazy to spend 2 minutes in the ticket system. Another distractor is phones, a ringing phone breaks concentration even if it isn't your own. Fortunately my office is completely phone free.

  67. Lack of management appreciation of code quality by presidenteloco · · Score: 1

    The cycle goes something like this:
    1.Non-software-background or bad-developer background management does not place a value on good quality, maintainable, extensible, appropriate code, Also, they don't understand that silent, non-communicating developers are often productive developers, focussed on generating good code.
    2. Developers are therefore trained to feel that focussed time spent developing good code is bad for their career.
    3. Developers are trained to rush everything and always meet magical deadlines, above all.
    4. The project/company fails due to the software not being cost-effectively extendable to the refined definition of needs.
    5. Or the project/company fails because the software development was rushed and produced code with inappropriate features and/or poor (non-performant, unmaintainable) architecture.
    6. All of the rushed effort was therefore essentially "unproductive" in that it failed to produce a viable, maintainable product or service, for easily predictable reasons.

    --

    Where are we going and why are we in a handbasket?
  68. Boy, where to start... by seebs · · Score: 4, Interesting

    I think the biggest thing is probably "assuming that the same practices are good or bad for everyone". Consider "face time"; this ranges from essential to disruptive depending on the people involved. If you don't make sure that your socially-oriented developers are getting the human contact they need to be engaged, you are crippling them. If you don't keep your non-socially-oriented coworkers free from disruptive enforced socializing, you are crippling them. So if you pick a policy, and use it for everyone, you're likely hurting productivity.

    Honestly, though, the biggest thing I've seen, by far? Blame. When I have worked places where there was a focus on identifying fault and trying to punish failure, it meant that the bulk of effort in responding to issues was spent on identifying or avoiding blame. Where I work now, the corporate culture is that we all know we make mistakes (although I like to think I make more of them than anyone else; I have a spectacular track record in that regard), and we also know that in nearly every case, any of several people could have prevented something. If code goes in that breaks something, and I reviewed it, I don't say "oh, there's no way I could have known that would happen", I say "whoops, my bad, I reviewed that one".

    And that means that, when something goes wrong, we have the best information we can have about what went wrong and how as soon as possible, and we can focus on fixing it. And "fixing it" doesn't mean "sitting around waiting for the person who screwed up to be around to fix it", it means "best fit of availability and schedule". I will fix mistakes I didn't make, other people fix mistakes I make, and we get stuff done.

    I basically laugh when people ask me whether I'm looking for work. :)

    --
    My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
  69. Re:Noise by HPHatecraft · · Score: 1

    ha! the place I used to work decided to integrate teams across all departments. Essentially we had one cluster of various IT admins sandwiched between the sales team. I forgot where the account managers were. At any rate, let me repeat: the sales guys (and gals) were on either side of the support teams.

    Different culture, diametrically opposed. Completely different goals for work, different energy. You're trying to troubleshoot, and these idiots are banging a gong (really) every time they get a sale. They're fidgety, with ADD, we were much, much more quiet.

    It was kind of hard to explain to the customer with a downed server that we were not celebrating the fact that his server was down by holding an impromptu dance off and banging a gong.

  70. People by vanye · · Score: 1

    I could get so much shit done if it wasn't for people.

    And computers.

    richard.

  71. Re:Putting untested undocumented work into product by conspirator23 · · Score: 1

    The goal isn't to actually do any work or help people. The goal is to make sure you close the tasks in your queue before the end of the sprint so that the productivity reports are stellar.

    Well hello, you appear to be agreeing with my sentiments. Agile is allegedly supposed to sweep away all the "bureacracy" that interferes with brilliant programmers writing beautiful, functional code. Nice in theory. Once you actually bake it into an actual organization of any size, it effectively becomes a codified work avoidance process. Fuck quality, we're SPRINTING baby.

    Honestly, it's the people like your boss and the worker bees that buy into their thinking that I'm railing against. How many points in your sprint planning gets allocated to QA? Support documentation? Who knows? I will fully admit I'm not studied on what Agile's formal methodologies suggest, but from what I can tell in the implementations I've witnessed, things like QA and docs are just two more undefined activities that can be easily ignored if they look like they'll sully the productivity reports.

  72. The Marketing Department.... by kimgkimg · · Score: 1

    ... selling things that haven't even been invented yet... but somehow now have a delivery timeline...

  73. Poor design, untestable codebase by Tomster · · Score: 1

    Some good comments have already been made; a hearty "me too" to bad requirements, meetings and other time wasters, interruptions, and bad prioritization of tasks/stories.

    My contributions to the list are poor design and untestable codebase.

    Poor design makes it difficult to understand what the code is doing and change it. Hidden side effects, a nightmare of dependencies, poorly named classes/methods/fields, badly thought out abstractions, copy-and-paste coding, the list goes on. When the design is bad, it will take me about three or four times longer to implement a feature or fix a bug. When it's complete crap, that multiplier probably doubles.

    An untestable codebase means the only way to see if my changes are good is to build, deploy and manually test the application. Maybe that's only 30 seconds, although it's more likely to be measured in minutes. Even if it's only 30 seconds, that's about 28 seconds longer than it takes to run a unit test. Give me unit tests, or give me death by a thousand wasted minutes.

    Thomas

  74. Recent trends by sootman · · Score: 1

    I've noticed a substantial increase in disagreements over coding styles recently. :-)

    --
    Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
  75. A bit off-topic, but... by mariox19 · · Score: 1

    “ I read this book on Saturday. ” Jeff Goins | 17 reviewers made a similar statement

    You just gotta love the automatic content generation over at Amazon. What a review! I think I'll run out an buy it right now.

    --

    quiquid id est, timeo puellas et oscula dantes.

  76. Cubes suck. by jcr · · Score: 3, Insightful

    It shouldn't be necessary to have headphones on to be able to concentrate. I need an office. Two-up is fine if there's enough space, but the HP/Intel cube farm style or even worse, open-plan offices are not acceptable.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  77. Don't forget co-location by NotSoHeavyD3 · · Score: 1

    I mean in theory it's nice you can go over at any time and talk to a developer to get some info. Why it sucks is that as a developer people come over, often literally every 20 minutes and bother me about stuff they should be able to figure out themselves. I never get into the zone because of this co-location. If I had an office I would close the damn door to let people "No, I can't help you. I really am that busy."

    --
    Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
  78. Constant interrup-interupt-interuptions. by Rinikusu · · Score: 2

    I love this one. One of my bosses loves to tell everyone to leave her devs alone; the switching cost is too high. Five minutes later she'll yell across the room and ask a question that completely derails said developer and then can't understand why it takes so long to get things done. "You were able to switch to answering my question, why can't you switch back?" Fuck.

    --
    If you were me, you'd be good lookin'. - six string samurai
  79. Re:Noise by assertation · · Score: 1

    I hear you. During the dot com boom they were short on everything so I was sitting between two markerters. Then later on at the bigger place I was around the corner from some millionaire programmers who were working for the fun of it. Arrested adolescents literally playing with toys.

    I had always taken quiet as a god given workplace right endorsed and understood by everyone.............not so.

  80. Re:Noise by assertation · · Score: 1

    Money.

    Cube farms are cheaper than offices,
    Open office layouts are cheaper than cubes.

  81. Meetings, Bloody Meetings by jgarry · · Score: 1

    John Cleese made a management film about how to run meetings. Everyone should watch this film before scheduling meetings or commenting about the subject. We'll schedule a meeting for that.

    --
    Oracle and unix guy.
  82. Re:Noise by anonymous_wombat · · Score: 1

    Noise is a much bigger factor for me than meetings. I don't know how you can be expected to write reasonable code when people are screeching all around you.

  83. Re:Noise by oursland · · Score: 1

    It was kind of hard to explain to the customer with a downed server that we were not celebrating the fact that his server was down by holding an impromptu dance off and banging a gong.

    This is the shit sitcoms are made of!

  84. Re:Beg to differ & WHY... apk by chrismcb · · Score: 1

    You are a FOOL for believe meetings help you.
    You really don't need to sit down in a meeting, to do a code review. Maybe when someone first starts they should sit down with their mentor. But otherwise just do the code review by yourself, and write up some comments.
    Meeting your customers? That really isn't the job of the developer. Sure it might be useful, occasionally, but not all meetings are bad and harmful. Just most of them.
    Meetings are generally a waste of time. And cost more than the allocated time.

  85. Re:Noise by radtea · · Score: 1

    Cube farms are cheaper than offices,
    Open office layouts are cheaper than cubes.

    The difference in developer productivity is at least a factor of two between cubes and offices. It may be as high as a factor of ten in some cases. So you waste a lot of money on salary--which is the dominant expense in development shops by a very large factor--by having cubes rather than offices.

    So the answer is clearly anything but money. If it was just about money (the least money for a given work product) small teams of developers in good conditions would be strongly favoured.

    Businesses are not run to maximize productivity, they are run to maximize manager's feelings of power and control.

    --
    Blasphemy is a human right. Blasphemophobia kills.
  86. A simple observation by Peter+(Professor)+Fo · · Score: 1
    When working within an organisation there is a difference between
    • Sharing progress on our previously established shared goals.
    • Off-hand suggestions for minor alterations to the plan
    • Demanding a meeting about 'an issue'
    • Being uncomfortable about something

    Each of these is different and so needs different treatment. The first two might be dealt with in daily check-ups. The third needs a gathering of 'people who know' and the last needs a corporate agony aunt. Hint: Now you know the answers, implement them!

  87. Everyone asking questions all day by bipbop · · Score: 1

    Working "core hours", then having those hours taken up by answering questions from random employees about random subjects all day, then having to do all of one's actual work at night to make up for it.

  88. Re:Noise by chrismcb · · Score: 1

    http://tinyurl.com/...

    WHY? You are copying and pasting, WHY are you using tinyurl? Is slashdot's server running out of disk space?
    Post the whole URL so we can see what we are clicking on

  89. Bullpens by CapOblivious2010 · · Score: 1

    "Bullpen" environments (lots of desks in one big noisy room) are the single worst productivity sink I've ever seen. Sure, meetings reduce the time available for useful work, but bullpens make it next to impossible to concentrate, and thus next to impossible to get useful work done, even in the non-meeting time. But boy are they trendy - and just think how much money we're saving by not buying cubes or actual offices!

    Oh, and slow PCs and small monitors are huge productivity sinks too.

  90. Lack of tight feedback loops by pnagel · · Score: 1

    Every bit of code written by a developer represents a hypothesis that "this will have desired behaviour X in the context of the production environment".

    Anything that lengthens the time between when that hypothesis was formed, and when that hypothesis is validated or invalidated, decreases productivity in a non-linear way.

    This could be anything like:

    • There is no proper testing, so developers have to wait months for the system to be released so they can get the bug reports then,
    • There is a test suite, but it takes ages to run,
    • It takes ages to build/compile the system,
    • Developer lacks the skills to extract the maximum amount of feedback from a single "edit/compile/test/whatever" cycle, so it takes many more cycles to validate the original code,
    • The underlying system/development environment/build system is flaky and often behaves in unanticipated nondeterministic ways, so the developer has to spend a lot of cycles rebuilding/retesting to get a sort of statistical sense whether the code will "work" more often than not,
    • The system involves large database backup files which take ages to copy and restore to a development environment, so it takes ages to work on and validate a production data fix,
    • Deployment of the system to a production, staging, or development environment takes ages and/or is a manual brittle process, so it takes ages to validate whether code will in fact work in the context of the actual complete system,
    • and so on and so forth.

    In my experience issues like these are often the number one source of productivity issues in any team and environment.

    This does not negate that individual developer skill is a large factor in performance differences, because skilled developers know how to mitigate or prevent such long feedback loop times.

  91. People not born near Silicon Valley by tepples · · Score: 1

    Provided you can afford to move to where "another job" is.

    This is why you work in Silicon Valley, where the "another job" is in the next building

    Provided you can afford to move to Silicon Valley in the first place. Where do most people not born near Silicon Valley find that kind of money?

    1. Re:People not born near Silicon Valley by tlambert · · Score: 1

      Silicon Valley.

      The circumstances into which you are born are no excuse if you live in the US.

      Your education level can be an excuse; but you own that; that is NOT beyond your control.

      I grew up in rural Utah; one of my third grade chores prior to walking a mile to the bus stop to go to elementary school was taking hay to horses and cleaning up after them. Another was dragging trash containers half the length of a football field for trash pickup, since the guy with the dump truck couldn't get closer than that when there was 6 feet of snow on the ground. Right before I moved to Silicon Valley, I had worked myself up to living in BFE (Tucson Arizona), working for one of those companies which could hold you captive because they were the only game in town: Artisoft.

      If you are born in a poor area in the US, you can do better than your peers in school by applying yourself (your peers will not all be applying themselves), graduate at the top of your class (due to applying yourself), do well on your ACT/SAT scores (all schools have libraries/access to libraries via bookmobiles, even if they have poor teachers), get a full ride scholarship some place (it may not be an Ivy League University), and get hired into a job in Silicon Valley.

  92. Etymology of online/offline by MarkusQ · · Score: 1

    "Online" and "offline" in the meeting sense considerably predate the internet sense. Originally it referred to equipment that was in the main production flow or pulled to the side for repairs, dating back to perhaps WWII and possibly further. The meeting sense was in use by the 1970s at least, and didn't seem new or strange then.

    -- MarkusQ

  93. Re:Beg to differ & WHY... apk by 14erCleaner · · Score: 1

    I BELIEVE I've IDENTIFIED who this ANONYMOUS COWARD is. He SEEMS to be quite EGO-DRIVEN as he continually MENTIONS his grandiose ACCOMPLISHMENTS to establish his CREDENTIALS. I assume that he's a MAJOR PAIN IN THE ASS to work with. http://sourceforge.net/p/ultradefrag/discussion/709672/thread/f8561602

    --
    Have you read my blog lately?
  94. managers by crutchy · · Score: 1

    usually problems with projects are caused by poor project management... regardless of whether the project is programming or otherwise

    if there are problems, project managers don't often look at themselves (and take responsibility) to see if they could personally do things differently or learn how to manage better

  95. Email by romons · · Score: 1

    Working in an environment that uses email and instant messaging constantly knocks me out of 'flow' state. Check email mornings, and after lunch. Disable instant message clients.

    --
    Go to Heaven for the climate, Hell for the company -- Mark Twain
  96. Re:negative value comments Too Much Documentation by dfries · · Score: 1

    Putting in a code comment that documents why something is the way it is, when it is not obvious is good. Commenting what something does is good for an overview of a complicated routine. Then there's what I would term negative value comments. The ones that take up a line commenting the next line that was so obvious that anyone couldn't have gotten what the comment said by half looking at the code wouldn't have understood what the comment was trying to tell them either.

    Actual comments from C++ code in production that I've seen.

    // ladies and gents we have a textured quad
    m_TexturedPolygon = true;

    // construct the input string stream
    std::istringstream iStream(buf);

    // set color states
    SetupColorState();

    // includes
    #include "...

    If a comment doesn't add value it takes away value by taking up space, time to read it and try to ignore it, question the value of any comments by that person in the future, and such. That's why I can them negative value comments.

  97. jordan heels by onlybest · · Score: 1

    Valentine Day Jordan Heels Sale

    Air Jordan Heels 2013

    Nike Heels 2013

    Nike Dunk SB High Heels

    Nike Air Force One Heels

    Air Jordan 11 High Heels These images give out all the facts.You can have a nearer seem then examine the specifics on the cake with that of your unique pair. Soon following you could make out whether the details are accomplished effectively or not.You might have observed many cakes which have been launched these 12 months featuring the themes of some conventional sneakers.Numerous well-known pairs of Air Jodans happen to be employed for making the cakes that looks just exactly the same just like the pair on which the cake is based mainly. These shoes are of rand value that is self-evident high quality, durability and comfort all the time.