Slashdot Mirror


It's Not Developers Slowing Things Down, It's the Process

An anonymous reader writes: Software engineers understand the pace of writing code, but frequently managers don't. One line of code might take 1 minute, and another line of code might take 1 day. But generally, everything averages out, and hitting your goals is more a function of properly setting your goals than of coding quickly or slowly. Sprint.ly, a company than analyzes productivity, has published some data to back this up. The amount of time actually developing a feature was a small and relatively consistent portion of its lifetime as a work ticket. The massively variable part of the process is when "stakeholders are figuring out specs and prioritizing work." The top disrupting influences (as experienced devs will recognize) are unclear and changing requirements. Another big cause of slowdowns is interrupting development work on one task to work on a second one. The article encourages managers to let devs contribute to the process and say "No" if the specs are too vague. Is there anything you'd add to this list?

122 of 186 comments (clear)

  1. Nope... Nailed It by Foofoobar · · Score: 1

    Take managers out of the equation and work gets done. Pretty simple.

    --
    This is my sig. There are many like it but this one is mine.
    1. Re:Nope... Nailed It by skaag · · Score: 4, Insightful

      This is not exactly accurate. It hinges greatly on the type of manager we're talking about.

      For example if the manager is very hands-on, goes into the details, produces proper mock-ups, flow diagrams, and everything is properly documented: This type of manager can actually accelerate the development process significantly since developers now know exactly what to do. But again, this manager has to really know what he's doing, and have some serious programming experience in his past.

      --

      All those moments will be lost in time, like tears in rain... time... to... die...

    2. Re:Nope... Nailed It by TrippTDF · · Score: 3, Insightful

      There is also the management of the manager: If the manager has too many products/projects on their plate they can't dedicate the time and focus to being that detail-oriented manager that gets things done. A good manager can turn into a bad one if they can't focus. That's where even higher-level management needs to set expectations and manage proper headcount.

    3. Re:Nope... Nailed It by sjbe · · Score: 1

      Take managers out of the equation and work gets done. Pretty simple.

      Pity it will be the wrong work getting done. On the upside life is simple.

    4. Re:Nope... Nailed It by tnk1 · · Score: 4, Insightful

      You don't want to take managers out of the equation. They're the only people keeping the other departments from running you over. You see that most clearly, ironically, when you have an incompetent manager and you get run over in spite of it.

      And a bad manager in this sense isn't the evil taskmaster, it is the guy who has no idea of his team's capabilities and taskload. He's also probably a little clueless about what is or is not possible, but in that sense, it's more of a feature of him making promises without talking to the rest of the team first. That manager goes to meetings and lets himself get cowed into submission when sales or marketing goes after him because he has no facts. Removing someone in that position just means that engineering is no longer even a speed bump to unrealistic goals.

      Saying "No" to business people is not a valid strategy. You'll just find yourself replaced. Saying, "yes, but you'd need to spend 2 million dollars on it" with proof is a valid strategy. You don't want to sit around and come up with that data, that's what the manager is supposed to do.

      I agree that indecisive managers and overwrought process is probably the top cause of problems with productivity. However, there are good managers and bad ones. It pays to understand the difference.

    5. Re:Nope... Nailed It by OzPeter · · Score: 3, Interesting

      Take managers out of the equation and work gets done. Pretty simple.

      Yes, but what work gets done?

      Is it the sexy feature that the dev has been just dying to implement since he/she read about some new language/process/data type de jour?

      Or is it fixing the hard to locate bug in deep in the back end that deletes all the users data on seemingly random occurrences (and can be brushed off in dev's opinion as merely an aberration)

      --
      I am Slashdot. Are you Slashdot as well?
    6. Re:Nope... Nailed It by AchilleTalon · · Score: 4, Insightful

      That is a good one. Sometimes, managers are having too many projects to manage at once and are experiencing the exact same problem as lead developers. They have to switch context so often they lose completely the focus when time comes to a particular project.

      Usually, when a position post description mention: "must work well under pressure", "must be able to multi-task", "seeking for rockstar developer", etc; you can be sure you don't want to work there. It is symptomatic of a shop which operates without enough staff and on low budget expecting miracles to come out from the process.

      --
      Achille Talon
      Hop!
    7. Re:Nope... Nailed It by bluefoxlucid · · Score: 1

      Actually, this is all stuff known to project managers.

      When a project is initiated, the Project Manager first creates a Project Charter. This is done by identifying stakeholders (people doing the work, people affected by the work, people receiving deliverables... any individual or group who affects, is affected by, or perceives itself to be affected by any activity or outcome of the project) and gathering preliminary project requirements. Essentially, the project manager talks to the stakeholders to roughly determine what we're trying to accomplish, how we're going to accomplish it, how much we want to spend, and how much time we're willing to take. That's written up as the charter.

      After this, real requirements are gathered. Work is broken down in a Work Breakdown Structure, a hierarchical decomposition of deliverables in which each level is fully broken out into lower levels. The entire project is level 1; level 2 is the major deliverables (Including project management itself, as well as phases or components, testing, validation, documentation, hand-off, and final project closing); and those are broken out into the deliverables which make them up. The final level of deliverables is the Work Package, a complete unit of work which can be understood and managed. Work Packages are broken out into Tasks and Activities--things to do which can be assigned, and which are required to produce the Work Package.

      To do all of this, the Project Manager must consult the Project Team. The Project Team will know what components go into building the deliverable output as requested. The project team will be able to estimate their competency and experience with the various components. The Project Manager will use historical information to come up with rough scheduling and budget numbers for each Work Package and Task; but the Project Team will raise issues such as that the historical information was in a wildly different context, that the people who did the work are not on this project, and so on, which means that the work may take more or less time. These factor into the baseline schedule and into the management and contingency reserves (the extra time allotted based on how likely a task should take--in theory, a programmer can write a decompression module in 4 hours, but it's 90% likely to take less than 5 hours, and a 90% success rate is targeted, so we budget 4h with a contingency reserve of 1h).

      In the end, the engineers will inform the project manager of what can and can't be done, what effort goes into it, how long it may take, and so on. The Project Manager will have stakeholders prioritize deliverables, and then have them select which deliverables to cut from the project if they can't make time or budget. If the engineers tell you they simply can't build this in 5 months, you either give them 7 months or you give up enough requirements to shave 2 months off the project. You could also identify underutilization of resources in non-critical paths, and crash or fast-track the schedule by assigning more people to those tasks which may be done in parallel rather than in serial.

      That's what managers are for.

    8. Re:Nope... Nailed It by nine-times · · Score: 5, Insightful

      First, that doesn't seem to be what the article is saying. Second, I don't really believe that it's true.

      When I say "don't believe that it's true", I'm saying, "I don't believe that the removal of managers necessarily gets work done faster." I'm not talking about programming specifically-- I'm not a programmer, and managing programmers is not my expertise-- by my general experience is that a lot of people think managers are just wasting everyone's time, when the reality is more that most people don't understand what managers do. Unfortunately, this sometimes includes managers.

      A good manager often spends his day trying to figure out how to remove obstacles so that the people he's managing can just do their jobs. For example, the summary says, "The article encourages managers to let devs contribute to the process and say 'No' if the specs are too vague." That sounds right to me. First, a good manager will of course listen to the people he's managing. That doesn't mean doing whatever they say, but when I have managed programmers, I assume that they know what they're doing better than I do, so if they say there's a problem of some sort, there's a problem of some sort. I wouldn't always go with their recommended solution, but would I listen to their explanation of the problem and try to come to a solution that addressed the programmers complaint as well as meeting the business needs we were trying to address.

      If specs are too vague, that seems like the sort of thing a good manager would help to work out. For example, I might suggest talking to the programmer, trying to figure out which aspect of the specs are too vague, and then meeting with the stakeholders to try to clarify the specs. I wouldn't necessarily make the developer get involved in the process of clarifying them, since unless they're needed for the discussion, they probably have better things to do.

      But being a good manager is pretty difficult in general. It's often not clear what needs to be done, or how it ought to be done, and it's your job to figure that out. It's pretty much impossible to be a bad manager without annoying people, but even the best managers might seem annoying or clueless because you don't see what they're doing for you. Sometimes good managers are only noticeable in their absence-- when they go away, you suddenly go "Oh jeeze, things are falling apart a bit here. How was it that we never had these problems before?" And the answer is, you were having those problems, but your manager was dealing with them when you weren't paying attention.

    9. Re:Nope... Nailed It by TemporalBeing · · Score: 1

      This is not exactly accurate. It hinges greatly on the type of manager we're talking about.

      For example if the manager is very hands-on, goes into the details, produces proper mock-ups, flow diagrams, and everything is properly documented: This type of manager can actually accelerate the development process significantly since developers now know exactly what to do. But again, this manager has to really know what he's doing, and have some serious programming experience in his past.

      Do agree it depends on the type of manager; but they don't necessarily need to know the subject matter to be useful and accelerate the project; sometimes a technical manager an make things much worse.

      I had one that gave me a very broad goal - produce a GUI like X for the application. He was fairly hands off, and things got done. He knew his limits and relied on the people under him to overcome those limits.

      I had another that was techical, but tried to be hands off - that is, until things weren't going like he thought (even if they were on schedule, one which he didn't give any input into producing despite requests for him to do so) and then he'd micro-manage to try to get things back into "control".

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    10. Re:Nope... Nailed It by SQLGuru · · Score: 1

      Turn around.....the congregation is over there. This is the choir. But preach on.

    11. Re:Nope... Nailed It by gtall · · Score: 4, Insightful

      That's nice, you left out architecture. Who's doing the overall architecture? Has it been done before? If it is new, better spend a lot of time doing the architecture. Unless....

      You have caught Agilitis. In this case, spend no time doing the architecture up front, do it on the fly. Add time to every single task you think you see for doing architecture related stuff. At the end, allocate a large blob of time to figure out the correct architecture rather than the one you built which now resembles a dirty snowball. And begin rebuilding the thing, reusing any errant parts you did in pass one. And because you are agile, be sure to appropriate time for execs who understand agile as they get to change what's necessary on the taste of their coffee that day, whether their secretary gave them a perky Good Morning, or whether their hair will turn sufficiently silver in time for that next promotion.

    12. Re:Nope... Nailed It by war4peace · · Score: 1

      My manager never gets involved into the development process except when there's an escalation, usually from me. He's there to help me overcome hurdles, nothing more. And he's been really good at keeping stupid people at bay.

      --
      ...gis sdrawkcab (usually not responding to ACs; don't bother posting as AC)
    13. Re:Nope... Nailed It by Stripe7 · · Score: 1

      Managers are supposed to manage the time of their charges. Document everything, if there is a ticket, document the ticket and every change to that ticket. If they keep changing/moving the target document every change. If you spend more time documenting the changes than actually doing the task, then you know you will never complete the task as whatever code you write will be obsolete before you even finish start to code. Documenting the changes requested is your best defense,

    14. Re:Nope... Nailed It by Austerity+Empowers · · Score: 2

      That's a manager who manages down. Most managers manage up.

      In my ~15 years of experience "manage down" managers are hurting their career advancement prospects by helping the company deliver. It's one of those corporate blackholes. Normally if you take care of your house, you have a nicer house to live in. If you maintain your car, you save money and have a more reliable car for longer. But in the corporate world, investing in yourself is usually trouble.

      Not everywhere, but 3 out of my 4 employers.

    15. Re:Nope... Nailed It by NatasRevol · · Score: 4, Insightful

      Yeah, my company does that.

      75 features to be implemented by the end of the quarter.

      2 weeks in, cut it down to 50

      1 month in, cut it down to 20.

      Actually deliver 12 features.

      Planning & prioritization are all over the place for the first month. And code freeze is 2 weeks into the second month.

      Every single quarter. Why don't the people expecting 75 features every quarter get fired?

      I'm just glad I'm not a developer here.

      --
      There are two types of people in the world: Those who crave closure
    16. Re:Nope... Nailed It by Svartalf · · Score: 1

      The problem with that particular notion ("Yes, but you'd need to spend...") is that they're oftentimes NOT savvy enough to grok where you're coming from and they'll just hear the "yes" and make you try to jam 18+ months of dev effort into 6-8 months with the typical, classical, predictable failures, in spite of explanations why it just won't work with their notion. They hear "yes" followed by "wah...wah-wah...wah-wah-wah" like on Peanuts animated features when the adults talked. The "yes" means to them it's doable- the rest is irrelevant details as far as they're concerned (And, YES, I've dealt with the kind all too often and quite a bit in the last two and a half years, much to my chagrin...)

      If "yes" is part of the answer when it probably ought to be a "no" or a qualified "no", then it's the wrong answer many times. Seriously. Any notions, from HR or otherwise that doesn't allow for a "no" answer from anyone other than executive management is a recipe for disaster.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    17. Re:Nope... Nailed It by Svartalf · · Score: 1

      Sadly, the JIT model is the only way to work in a mess like that...followed up with plans to vote with your feet.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    18. Re:Nope... Nailed It by bouldin · · Score: 2

      Or is it fixing the hard to locate bug in deep in the back end that deletes all the users data on seemingly random occurrences (and can be brushed off in dev's opinion as merely an aberration)

      I completely agree with your point, but would like to observe that senior or mid-level management always cares the LEAST about fixing old, broken stuff.

      Every place I've worked has had serious ghosts in the closet, but projects to go clean up old messes never get approved. This has been true across business, IT, and development roles (in my experience).

      After all, leadership doesn't get bonuses for reducing risk to the company, they get rewarded for the next feature/launch/whatever.

    19. Re:Nope... Nailed It by tlhIngan · · Score: 1

      And let's not forget another role of manager - managing the customer.

      Unless you want to dress up in a suit and tie because the customer expects it (some do) and babysit them for the week they're here and interface with them, those are tasks best left to the manager.

      Dealing with customers is a huge part of being a manager because customers can become extremely demanding especially if they're doing site visits and need to be babysat. Best to have someone else being interrupted every 5 minutes than you trying to get some work done.

    20. Re:Nope... Nailed It by Svartalf · · Score: 1

      And, if you've not figured out what I'm trying to tell you, my answer in your example would be, "Unless you want to spend two more million and spend 12 more months in development, and COMMIT to that- no."

      The idiot notion of not being "negative" is fantasy that some crazy HR people came up with to whitewash over the real problems going on in a given company. You need to not just simply say, "no", but in the same vein, trying to not say no is stupid, crazy, etc. Sometimes things ***ARE*** really negative things and you can't wish/will them any other way.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    21. Re:Nope... Nailed It by sjames · · Score: 4, Insightful

      Especially funny. Rock Stars don't multi-task. They lock themselves away in a darkened office working on the currently interesting single problem until it is solved. Then they come out, decompress, and repeat.

      Part of why they have rock star performance is that they don't multi-task and don't sit through endless meetings re-hashing yesterday's meeting.

    22. Re:Nope... Nailed It by Maxwell · · Score: 2

      Your argument is nonsense and can be extended to: he didn't even mention the servers, be sure to add a few megs of RAM for each feature to developed, and some HDD space too. Oh, and increase the chip speed for each new feature as well! Then later but new servers to replace the cobbled together disasters you built on the fly.

      We use Agile for the *development* process which is distinct from the *design* process. That is, we do architecture up front, including DB design, and - surprise - we even build the server platforms too!

      Business gets an opportunity once a month to change development priority order. Once. A. month. New features introduce are written up, added to the feature list and the business gets to include them in next months re-prioritization.

      It's simple , everyone gets it, and the business (ie the people paying the bills) love it. And that's bad, how?

    23. Re:Nope... Nailed It by eulernet · · Score: 1

      For example if the manager is very hands-on, goes into the details, produces proper mock-ups, flow diagrams, and everything is properly documented: This type of manager can actually accelerate the development process significantly since developers now know exactly what to do.

      With this type of manager, as a programmer, you have to write exactly what he wants, and it's completely demotivating: the programmers cannot take any initiative.

      A manager must be available.
      Instead of mock-ups, diagrams, etc..., he/she must be available when the devs need him/her when some "obvious" feature is not written in the specs, or when to validate this or that feature.
      If the manager is never available, because he/she spends his time detailing the process or spending time in meetings, his/her team will stop producing.

      But again, this manager has to really know what he's doing, and have some serious programming experience in his past.

      Absolutely no !
      Programming and managing require quite different skills.
      Managing requires to understand human nature while programming requires to understand computer's logic.
      How could these be compatible ?

      Let me guess: you are a managers' manager.
      You prefer to work with people who make you believe that everything is predictable.
      Am I right ?

    24. Re:Nope... Nailed It by uncqual · · Score: 2

      One problem with discussions like this is that there is a lack of consistency in titles and job role naming across companies.

      For example, in some companies first level managers of developers are not very technical (fortunately, I've never worked at a company where this was the norm) and can only manage work units and people but not solve technical problems themselves or provide detailed technical guidance. They can be good people managers, good at working the politics, good at making sure that the project dependencies (both inward and outward) are being tracked, and good at protecting the group from abuse. However, they need to rely on project leaders/lead programmers for the technical stuff. In other companies (fortunately, the most of the ones I've worked at as a developer or a manager), managers are de facto project leads and/or psuedo-architects and are able to (and do) look at code, review specs, make technical decisions when necessary.

      Similar story for "project managers". At some companies they just push lines around on PERT charts and note and track that there's an issue that needs to be resolved by next Thursday about if the asdfasdf is to provide some data to the lklkjfsdf or if the lklkjfsdf should independently fetch it. At other companies, "project managers" would actually know what asdfasdf and lklkjfsdf were and be able to understand, at some level, that lklkjfsdf couldn't possibly independently fetch the data because security policies don't allow it no matter how loudly the owner of asdfasdf insists otherwise (and, knows who/how to bring in to shut the owner of asdfasdf up).

      --
      Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading /.
    25. Re:Nope... Nailed It by Bengie · · Score: 4, Insightful

      We use Agile for the *development* process which is distinct from the *design* process. That is, we do architecture up front, including DB design, and - surprise - we even build the server platforms too!

      Don't ever leave your job unless this is becomes no longer true. So many people think agile is free tick to skip design and when wonder why agile isn't saving them from creating a pile of crap.

    26. Re:Nope... Nailed It by __aaclcg7560 · · Score: 1

      But in the corporate world, investing in yourself is usually trouble.

      I worked at one company that wouldn't train workers since management was afraid that they would get certified and go work for a competitor. Never mind that most employees were training themselves, getting certified and leaving for a competitor anyway.

    27. Re:Nope... Nailed It by Bright+Apollo · · Score: 2

      Rock star performance is achievable by anyone who gets to focus on just one thing at a time. It's also called being a prima donna, not a rock star.

      --#

    28. Re:Nope... Nailed It by AuMatar · · Score: 1

      Maybe you guys do, in which case it will probably work out fairly well. Most places use Agile for design and development- in fact Agilistas will claim that any time spent on design is wasted, and that one of the benefits of agile is not needing to do design, that a design will form as you go naturally. It tends to turn things into a major cluster fuck.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    29. Re:Nope... Nailed It by morgauxo · · Score: 1

      Vague specs are bad. But.. there is little I hate more than when they go the other route and try to fill in all the techical details. I've received a lot of specs that already included things like database schema complete with really bad table implementations and duplicated data all over the place.

    30. Re:Nope... Nailed It by Gr8Apes · · Score: 2

      This is provably false. There are certain people, we'll call them rock stars, that you can stick in a room and they'll get a better solution out faster that addresses everything you need versus 100 lines of doesn't work for 20% of the cases code. Sometimes the rock stars do this to existing code with a 1 line mod. It's because they actually take the time to understand the problem and can visualize the system, instead of writing some boilerplate garbage cut and pasted from stackoverflow.

      --
      The cesspool just got a check and balance.
    31. Re:Nope... Nailed It by tnk1 · · Score: 1

      Of course, there is a time and a place for saying "No". However, there needs to be an understanding that engineers are there to make things happen. Business people aren't trying to get developers to do things because it amuses them to do so. So, there needs to be an understanding that while there are times to put your foot down, it is far, far better to be able to explain the level of effort required to achieve that goal and give some alternatives.

      You want to be in a position where you get them to say, "No". It goes like this:

      Executive: "I need to have full PCI compliance done by next month."

      Manager: "I agree with the value of that goal to the business, but we are currently under-resourced for that goal. I may be able to do it in six months, if we can postpone work on that feature for 7.5"

      Executive: "Absolutely not."

      Manager: "We also might have the option of hiring contract labor for six months. That will cost approximately two hundred thousand dollars at current rates."

      Executive: "I don't have budget for that."

      In all cases, you want the executive to be the one to keep saying: "No." Not you.

      At this point, your executive either folds, asks you to try and work out a plan, or they get angry and tell you to just work smarter, not harder.

      The executive who folds is admittedly something of an unusual beast, but they might if it is not incredibly important to them.

      The good executive will probably push back at you to get more information. Annoying, but fair. They didn't get where they are by crumpling at the first sign of difficulty.

      The bad executive (or the besieged executive) will start whip-cracking. If an exec starts whip cracking because you didn't give them good estimates, it is your fault. If they whip crack despite your good figures, then you are in a fire drill, and you should just do your best and start updating your resume. If you would like to continue to work at that company, you may want to skip level so their boss gets the actual facts, somehow. Welcome to politics, in that case.

      You don't want to do any of that as an individual developer.

    32. Re:Nope... Nailed It by RabidReindeer · · Score: 3, Interesting

      Couple of big shops in my town. Take one for example. They had a 2-year window for a very important project.

      Bought (expensive trendy tool) from (major software vendor). Spent 18 months drawing stick-figure diagrams with (expensive trendy tool). Realized they only had 6 months for implementation and panicked. Basically tossed the stick-figure diagrams because they had to drastically modify expectations to make it in 6 months of 100-hour programming weeks. Using contract laborers who didn't know the company and how it operated, because they'd taken a chain-saw to the ranks of the in-house experienced staff.

      I'm sure that they learned a valuable lession from that and will never do anything like that again. I'm also sure that pigs fly and cows routinely jump over the moon.

    33. Re:Nope... Nailed It by tnk1 · · Score: 1

      I agree that Sales or whoever should trust your judgement, but bear in mind, as much as we joke about Sales or Marketing, they're usually not actually morons. They just have different goals.

      A product person who is in your business vertical knows what companies around them are doing. They sometimes are past developers or technical management. They are usually well informed on their market segment. If they want something, they're doing it to make themselves look good by delivering money to your company.

      They will expect you to be able to quantify the reasons for your resistance so they can understand why your company can't do what some other company can. They will trust you if they know you aren't just saying "No" because you're a shitty manager leading a shitty department. To gain that trust, you need to respect their need to do due diligence on your responses.

      Yes, if I have worked at X company for 10 years with good results and respect their need for data, then we all benefit if they trust me on occasion and save some effort. However, few people are going to accept a flat negative answer, and that has nothing to do with namby-pamby HR happy bullshit. It all has to do with people doing due diligence to make sure that someone actually *checks* to make sure it truly isn't possible. You'd be surprised at the number of people in my career I have seen who insist that something can't be done... only for someone to do it not too much later. People are funny creatures when they assume they know something. Sometimes it pays to check yourself.

    34. Re:Nope... Nailed It by Oligonicella · · Score: 1

      My experience has been that managers care a *great* deal about users (read clients) calling in and complaining that their data is gone and threaten to sue.
      Then again, I mostly worked in banking where reducing risk was a prominent concern for all parties.

    35. Re:Nope... Nailed It by Oligonicella · · Score: 1

      But IT doesn't do that, so IT doesn't see that, so IT doesn't believe it exists, is part of a job or is important. IT is just as myopic as any other group of business people, they just think they have all the answers - just like every other group of business people.

    36. Re:Nope... Nailed It by Jane+Q.+Public · · Score: 1

      I'm sure that they learned a valuable lession from that and will never do anything like that again. I'm also sure that pigs fly and cows routinely jump over the moon.

      This is a good illustration of the folly of top-down "waterfall" methodology. Too much micro-planning in advance, no action.

    37. Re:Nope... Nailed It by jcfandino · · Score: 2

      Rock star performance is achievable by anyone who gets to focus on just one thing at a time. It's also called being a prima donna, not a rock star.

      --#

      Pri Madonna, a Pop star.

    38. Re:Nope... Nailed It by RabidReindeer · · Score: 1

      I'm sure that they learned a valuable lession from that and will never do anything like that again. I'm also sure that pigs fly and cows routinely jump over the moon.

      This is a good illustration of the folly of top-down "waterfall" methodology. Too much micro-planning in advance, no action.

      Well, they also think that they're "agile". And have another expensive trendy tool to ensure it.

    39. Re:Nope... Nailed It by Jane+Q.+Public · · Score: 1

      Well, they also think that they're "agile". And have another expensive trendy tool to ensure it.

      But according to the description their methodology very clearly ISN'T "agile", whether they think so or not.

      Agile isn't a tool, it's a method. And that method doesn't include eons of top-down planning, no matter what tools are used. But I may be preaching to the choir here.

    40. Re:Nope... Nailed It by Comrade+Ogilvy · · Score: 1

      Weird as it sounds, you might be able to count yourself lucky. At least this company described here is re-setting expectations in a drastic and somewhat realistic manner halfway through the quarterly debacle. Instead, the management could hold steady 75% of the way through, then squeeze the developers for 90 hour weeks for three months "because you all are behind, and we have to make good on commitments, even if late".

    41. Re:Nope... Nailed It by bickerdyke · · Score: 1

      As a dev myself, I'm absolutely fine working with vague specs. As long as my manager accepts a few iterations for fine tuning. And considering the time that is spent for planning the smallest of details, that may even be more productive.

      Just don't give vague specs and complain about not sticking to them exactly.

      --
      bickerdyke
    42. Re:Nope... Nailed It by david_thornley · · Score: 1

      Actually, one of the best things the manager can do is shield the team from other managers, and support them when talking to others.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    43. Re:Nope... Nailed It by OrangeTide · · Score: 1

      I played a funny card game once where the engineers would work on projects indefinitely until you got a release manager card to make sure stuff really ships.

      --
      “Common sense is not so common.” — Voltaire
    44. Re:Nope... Nailed It by Antique+Geekmeister · · Score: 1

      > For example if the manager is very hands-on, goes into the details, produces proper mock-ups, flow diagrams, and everything is properly documented

      Then I'm afraid that nothing will get done, because the "proper mockups" take so much time to develop and build that they literally lock up all management time and prevent the developers from being able to write even a single line of code that actually does anything not already hand-written by management.

    45. Re:Nope... Nailed It by Zontar+The+Mindless · · Score: 1

      ...some boilerplate garbage cut and pasted from stackoverflow.

      Is the text still available on Stackoverflow following the paste operation?

      Then you meant "copied and pasted". Not quite the same thing. You should use the one that actually means what you apparently want to say.

      --
      Il n'y a pas de Planet B.
    46. Re:Nope... Nailed It by Hognoxious · · Score: 1

      They lock themselves away in a darkened office working on the currently interesting single problem until it is kinda-sorta-mebbe solved. They then chuck it over the wall to the poor bastards in support.

      FTFY

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    47. Re:Nope... Nailed It by CBravo · · Score: 1
      --
      nosig today
    48. Re:Nope... Nailed It by buybuydandavis · · Score: 1

      Weird as it sounds, you might be able to count yourself lucky. At least this company described here is re-setting expectations in a drastic and somewhat realistic manner halfway through the quarterly debacle. Instead, the management could hold steady 75% of the way through, then squeeze the developers for 90 hour weeks for three months "because you all are behind, and we have to make good on commitments, even if late".

      You people are so terribly healthy. They actually reset expectations *before* the deadline? Don't you know that all failures are *caused* by those who point them out?

      In my experience the usual way is for everyone to pretend everything is on time, fire anyone who hints otherwise, then blame the contractors. Another possibility is the big wig Potemkin Demo, followed by a reorg where the frauds leave the group, and the peasants left behind are executed for "breaking the code".

    49. Re:Nope... Nailed It by buybuydandavis · · Score: 1

      Vague specs are bad. But.. there is little I hate more than when they go the other route and try to fill in all the techical details. I've received a lot of specs that already included things like database schema complete with really bad table implementations and duplicated data all over the place.

      The worst is no specs but a halfway implementation that self contradictory. "Here, implement this." There's no way to fill in the blanks and make it work, but if you change anything, it's "But I gave you the implementation!".

    50. Re:Nope... Nailed It by Gr8Apes · · Score: 1

      ...some boilerplate garbage cut and pasted from stackoverflow.

      Is the text still available on Stackoverflow following the paste operation?

      Then you meant "copied and pasted". Not quite the same thing. You should use the one that actually means what you apparently want to say.

      A "cut" on a non-editable item equals a copy, so I suppose to be pedantically correct, I should have said "copied".

      --
      The cesspool just got a check and balance.
    51. Re:Nope... Nailed It by NatasRevol · · Score: 1

      Late is not allowed. Managers don't get bonuses.

      Instead, features get 'minimized'. And work very poorly. ie edit xml config file instead of GUI with controls. For a customer of a GUI product.

      --
      There are two types of people in the world: Those who crave closure
    52. Re:Nope... Nailed It by Xest · · Score: 1

      "You have caught Agilitis. In this case, spend no time doing the architecture up front, do it on the fly."

      No this isn't anything to do with agile. Agile does not in any way force or suggest this whatsoever.

      You can either do the architecture and design up front in a waterfall style manner and then use agile for development, or you can do architecture as it's own agile process with it's own sprints which then get taken over by development sprints when that design is done.

      Agile is a project management methodology, if you're throwing out important parts of the development cycle like design as part of moving to agile then that's nothing to do with agile, that's just you using it as an excuse to be lazy and skip the important stuff and go straight to development.

      What you're suggesting is like moving from a country that drives on the left to one that drives on the right but as you do so taking the wheels off the car so you can't actually go anywhere and then declaring that driving on the right obviously doesn't work. About now you should be saying "What the fuck? why would anyone do that". That's what those of us who have seen companies that have actual working high quality successful software developed under some agile process (which is most large companies nowadays FWIW) are currently saying about your understanding of agile.

      Don't tell me, "You're doing it wrong! - that's what all Agile defenders say". Well guess what? You are, and you manage to prove it with profoundly stupid comments that prove the god damned point.

    53. Re:Nope... Nailed It by bluefoxlucid · · Score: 1

      I have seen non-project-managed architecture.

      We brought in new programmers, and they threw it out because it was a mess. Due to constant demands from everyone using the software being written (which was in production, and getting incremental rearchitecture), the new architecture kept changing: several parts have been rewritten more than once, a lot are glued together to get around bad architecture decisions, and some stuff is just plain wrong and has odd work-arounds.

      We can blame the programmers for the architecture; but the truth is they were told, by functional managers, to produce everything that was asked for as it was asked for. They didn't have the luxury of collecting requirements, producing a requirements document, breaking down the work, and then designing the architecture as part of the early phase of work. They had to make up architecture on-the-fly, and integrate it with architecture they were replacing, and integrate it with new architecture for new requirements which couldn't reasonably be met under the architecture they had started implementing.

      Project management avoids exactly this;

      Add time to every single task you think you see for doing architecture related stuff. At the end, allocate a large blob of time to figure out the correct architecture rather than the one you built which now resembles a dirty snowball. And begin rebuilding the thing, reusing any errant parts you did in pass one. And because you are agile, be sure to appropriate time for execs who understand agile as they get to change what's necessary on the taste of their coffee that day, whether their secretary gave them a perky Good Morning, or whether their hair will turn sufficiently silver in time for that next promotion.

      Instead, you break out the work, use that to determine what needs to be done, and have a separate piece of work for product design before implementation.

  2. One more right of refusal by msobkow · · Score: 1

    I insist on the right to refuse any tickets from the moron in sales who never makes a fresh pot of coffee when it's out.

    Don't mess with my programming fuel!

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:One more right of refusal by Zontar+The+Mindless · · Score: 1

      French press, hand grinder, beans, and boiling water, baby. Unadulterated and cheap.

      You will never want to touch drip or machine coffee again.

      --
      Il n'y a pas de Planet B.
  3. Constant Planning by wompa · · Score: 1

    The project planning, then replanning, then forecasting, then reforecast, then burndown, then plan the next sprint, then perform a retrospective on the last sprint, then update your work items, then explain the deviations, then participate in the daily scrum, then attend the weekly project status. Oh yeah, then do a little bit of the work you've been churning over for the last month. Planning is fine but the point of development is to create solutions. Not plan to create solutions.

    1. Re:Constant Planning by __aagmrb7289 · · Score: 1

      And this is why you timebox these activities. Are you spending more than four hours a week on this kind of thing? Then fix it.

    2. Re:Constant Planning by Foofoobar · · Score: 1

      No... you blow off all meetings, say you are working from home and then show up three days later with a solution and look like a winner. That way they say 'leave him alone and don't bug him' and have everything run through a project manager. :) Of course there is blow back when a C-level gets involved

      --
      This is my sig. There are many like it but this one is mine.
    3. Re:Constant Planning by gtall · · Score: 1

      Not a fan of agile, I take it. Thank you for that accurate perspective, made my whole day.

    4. Re:Constant Planning by tnk1 · · Score: 2

      Scrums should be 15-20 minutes a day. Period. And they should be stand-ups. And they should only be used to unblock not for status.

      Project status should be reported by the position of the cards on your board. You do Agile well and you don't need a daily or weekly status meeting for developers. If you are doing code reviews, you are evaluating code and progress at the same time.

      If there is a weekly status meeting with product owners, the manager or scrum master should be attending and no one else. That's business stuff, not development.

      I agree that meetings are problematic when it comes to specs. You usually need people who are knowledgeable technically to comment. That bogs things down sometimes, especially when product or marketing gets involved. At that point, the manager needs to say: "I need your minimum viable product for this date.", and then you work out a schedule and hold everyone to it.

      When you start getting things into production instead of dithering, business starts getting a lot happier, even if they don't get everything they want. You absolutely MUST manage scope creep. The plan needs to be committed to and reviewed at specific points where demos are provided. The manager must run interference for developers and the business people should not be trying to alter the parameters in mid stream.

      And yes, developers need to develop. If you are a manager and your team is in meetings all day long, you need to get more managerial skills or get a job at a place where your business people are going to let you do your job properly.

    5. Re:Constant Planning by mujadaddy · · Score: 1

      I learned Project Management in grad school from Ted Kozman, and his guiding philosophy was the principle my peers and I codified as Kozman's Law:

      If you fail to prepare to plan, plan to prepare to fail.

      --
      Populus vult decipi, ergo decipiatur...
      "Force shits upon Reason's back." - Poor Richard's Almanac
    6. Re:Constant Planning by ceoyoyo · · Score: 1

      Sounds like a typical manager, everything more complicated than it needs to be in order to sound clever. My grade four teacher told us "prior planning prevents pretty poor performance." You could cut that down to "think first."

    7. Re:Constant Planning by JohnFen · · Score: 2, Insightful

      Good lord, I could not agree more. From what I've learned in the last three companies I worked for that used agile, agile means that an ungodly amount of time is spent in meetings and constant, meaningless record-keeping. God, I hate agile. It gets in the way of doing good, timely work.

    8. Re:Constant Planning by JohnFen · · Score: 1

      Then fix it.

      You say that as if its possible.

    9. Re:Constant Planning by Anonymous Coward · · Score: 1

      I think that's more a result of the company not understanding anything about agile than agile in and of itself. I spent the last year working at or looking for work with companies that don't have a clue what agile actually is. In those places, it's no different in practice than the abortion that is waterfall. The real problem is that IT has just been overrun by the same kind of talkers that destroyed law and business. They can't do anything but shout buzzwords, bark orders, and lie when everything goes to hell. If you've ever wondered why software is such a steaming pile these days, this is the primary culprit.

    10. Re:Constant Planning by __aagmrb7289 · · Score: 1

      In many cases it won't be. For that I'm sorry. On the other hand, I'm working somewhere where it's possible, and it's actually that way. And I left a place where it wasn't. What'd it cost me? Actually, I was unemployed for zero days, and got a nice bump to my salary - so - nothing. What's holding you back?

    11. Re:Constant Planning by Lodragandraoidh · · Score: 1

      From what I've learned in the last three companies I worked for that used agile, agile means that an ungodly amount of time is spent in meetings and constant, meaningless record-keeping. God, I hate agile. It gets in the way of doing good, timely work.

      They should probably start off by reading the Agile Manifesto...where it talks about the values of agile development - one of which is to value Working software over comprehensive documentation. Sounds like they have the wrong focus.

      Mediocrity is not uncommon, and there are way too many people in the development end of things that shouldn't be. I've been dealing with these clowns for almost 20 years now - and this very topic is what is driving me to retire early and do something else with my time, instead of the endless death marches to nowhere.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
  4. Paging Fred Brooks, paging Fred Brooks by OzPeter · · Score: 1

    Please pick up any courtesy phone in the lobby and read out any and all relevant chapters.

    --
    I am Slashdot. Are you Slashdot as well?
    1. Re:Paging Fred Brooks, paging Fred Brooks by psycho12345 · · Score: 2

      Seriously. Does no one read Mythical Man Month anymore? This stuff has been done to death for ages now...

  5. Re:I need your TPS reports now and don't forget ab by BorisSkratchunkov · · Score: 1

    Sorry, I think I have a case of the Fridays.

  6. Untie the bonuses from the schedule... by __aaclcg7560 · · Score: 1

    When I worked as a lead video game tester at Accolade/Infogrames/Atari (same company, different owners, multiple personality disorder), my schedule estimate for code release was always accurate (+/- two weeks). Unlike the developers and producer, I didn't get a completion bonus for hitting the milestone dates. Their bonuses would fly out the window because they spent so much time trying to hit milestone date that the game couldn't pass QA. Not my fault that they can't code in a timely fashion.

    1. Re:Untie the bonuses from the schedule... by gnupun · · Score: 1

      Not my fault that they can't code in a timely fashion.

      This statement always make me laugh. How can you plan how long something will take if it has never been done before? You can't, and in the case of software it has not been done before. The managers are applying the same planning process that is used in less creative processes like road-building, bridge-building, building construction etc., where each task has already been done for decades or hundreds of years so you know how long some task will take.

    2. Re:Untie the bonuses from the schedule... by nine-times · · Score: 1

      In that sense, I think it's also about setting realistic expectations. With almost anything you want to do, there's some limit to how fast it can be done, even with unlimited resources. Limiting the resources available below the optimal level will increase the amount of time to accomplish things. So you can't take a project that will take 6 months to complete, cut the resources to keep the budget low, and then set a project schedule for 3 months and expect it to work.

      After a certain point, providing big bonuses doesn't make things happen faster. It just encourages people to cut corners to meet the technical requirements for the bonus, even if it means providing a useless end-product at the end of it all.

    3. Re:Untie the bonuses from the schedule... by __aaclcg7560 · · Score: 1

      The marketing department are applying the same planning process...

      FTFY

    4. Re:Untie the bonuses from the schedule... by PRMan · · Score: 1

      The sales drones...

      FTFY

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    5. Re:Untie the bonuses from the schedule... by azadrozny · · Score: 1

      If the task in front of you is so revolutionary that it has never been done before, then you really are building a prototype. This belongs in the realm of R&D which has its own theories and methodologies for handling project scheduling. However, most software projects are built using a set of known technologies. If you properly decompose your system design, an experienced developer should be able to estimate the amount of time required to code each part with a reasonable margin of error. So you are not asking for the time to build the entire data entry screen, but how long to mockup the interface, then add the data validation, then server interaction, and then the middle ware component that writes the data to the database. So not all that different from most construction projects, which all have their own creative aspects such as architectural design elements, floor plans, and color pallet for the furnishings, along with the more mundane aspects like the amount of time required to weld the support structure, and let the concrete cure.

    6. Re:Untie the bonuses from the schedule... by david_thornley · · Score: 1

      Programming is not construction. Programming is design. It's always going to be fuzzier than actual production.

      Manufacturing, in software, is trivial. This apparently leads people to think that software development is something like manufacturing, because they want a visible step there.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
  7. Say no, nobody listens... by Bearhouse · · Score: 1

    Sure, people at all levels should be encouraged to say "no" if other things are wrong too; for example choice of architecture, data model, choice of development environment, language or database...

    Unfortunately, I've seen too many projects where people - including me - said "no" very loudly on these and similar issues and...were ignored.

    Hilarity ensued.

    1. Re:Say no, nobody listens... by Lodragandraoidh · · Score: 1

      Or worse: they simply bypass you:

      A: We need your widget X to be modified to produce wingnut Y by March.

      B: I can't commit to that now; I need to work up the design and give you a good estimate.

      A: Never mind. We'll go with Team C and their widget Z - they assure us they can have it done well before March (the implication being they are more responsive/better than us - never mind that the new widget isn't integrated with our network or systems - and they are going to need us to do the integration work anyway because they know nothing about the systems etc..)

      At this point the PMs and Program Managers break into song:

      I want a feast I want a bean feast Cream buns and doughnuts and fruitcake with no nuts so good you could go nuts. No, now! I want a ball I want a party Pink macaroons and a million balloons and performing baboons and Give it to me now. I want the world, I want the whole world. I want to lock it all up in my pocket It's my bar of chocolate Give it to me now! I want today I want tomorrow I want to wear them like braids in my hair and I don't want to share them I want a party with roomfuls of laughter Ten thousand ton of ice cream And if I don't get the things I am after I'm going to scream! I want the works, I want the whole works! Presents and prizes and sweets and surprises in all shapes and sizes, And now! Don't care how I want it now! Don't care how I want it now!

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
  8. Agile is supposed to fix these things by quietwalker · · Score: 4, Insightful

    On time completion: It will be done as soon as it can be done, only experienced teams can provide reasonable estimates, developers provide timetables not managers, there's a specific amount of work that must be done before release and putting dates on it won't reduce the total amount of work that needs to be done.

    Unclear requirements: It's now the developer's job to talk to the stakeholders and find out what all the requirements are at the point in time they need to size or implement them. They get a vague 'story' that gives an overall concept of a requirement, and then it's up to the dev to talk to whomever needs talking to, then.

    Changing requirements: This happens and everyone expects it. So you do only the least work required to complete each requirement so the overhead in a change will be the smallest, and then you just pop that item on the queue and it gets done, that's it.

    Context switching: Tasks are assigned to a team by managers, not as a sole developer, so if context switching is causing a problem, it's up to the team to figure out how to minimize it.

    Take responsibility: They are, and increasing the duties that a developer has, while removing certain responsibilities from managers and product owners, which more accurately represents the reality of the situation.

    Caveat: Recent studies have shown that Agile is not as good as a waterfall-agile mix, where you do a good amount of planning (especially architectural planning) prior to the agile-like development, which makes a lot of sense. If half your work effort is refactoring, at some point you start take a severe hit to either efficiency, quality (robustness, maintainability, operational limits like memory or speed, etc), or time.

    1. Re:Agile is supposed to fix these things by Anonymous Coward · · Score: 1

      Agreed.

      However, I'd say any method can work with the right dedicated people, wether it be waterfall, agile, agile-waterfall mix, lean etc.

      The right people will tend to choose the best method for the task.
      Even with the wrong method the right people can get spectacular results.
      The wrong people may pick the best method by luck, and still fail miserably.

    2. Re:Agile is supposed to fix these things by Anonymous Coward · · Score: 1

      On changing requirements: This is another area where experience matters. In-house development teams have a huge advantage on this front. Once you have a few years of experience in a given corporate culture and with a given line of business, you will understand where the project is headed in the future much better than the business units will.

      My team learned that "this will never happen" means "this is pretty common". And "this must happen always!" really means "we need to have a way to process exceptions to this rule.

      This is where experience meets architecture. An inexperienced dev team will do things like create a database structure that has one field for the payment date on an invoice because accounting swore up one side and down the other that the bills for this product are always paid by check and always for the full amount of the invoice - and they want to be sure that nobody enters something different than this because it will always be a mistake and it needs to be a part of the business rules to be sure it never happens.

      An experienced team will know that this all needs to be normalized and flexible in the database so that any payment type for any amount can be applied to one or more bills. Why? Because they have been painted into a corner by bad specifications given by managers who didn't properly anticipate what the future might hold. This is the type of discussion that happens among the dev team and never touches the business unit. They don't need to know that you didn't believe their "absolutely never" spec. This is also a good reason to abstract out as many of the business rules as possible and place them in an easily accessible location. Two years from now you don't want to be hunting through code looking for that rule any more than you want to be reconfiguring the database to normalize some piece of the "customer" table.

    3. Re:Agile is supposed to fix these things by JohnFen · · Score: 1, Informative

      Yes, those are the ideals of agile. But I have never seen any of them successfully done in the real world. Instead agile as implemented (which never resembles the ideal) just makes everything worse.

    4. Re:Agile is supposed to fix these things by jcfandino · · Score: 1

      You're attacking the problem by over engineering the solution.
      That's usually a bad idea, against the KISS principle and the "do the least amount of work to complete the feature" rule.
      If the BAs were right, you'd end up with bunch of complex unnecessary code to test and maintain and you'd be running against the schedule for no reason.

  9. Knowledge by scamper_22 · · Score: 1

    I'm surprised knowledge is not listed on there.

    I guess it depends on what you work on. But in many places I've worked, you are interacting with other pieces of software both old and new. Often times interacting with these is a bit of a void and you end up having to figure it all out, which is error prone.

    Knowledge maintenance is not something that is accounted for in the process. Heck, you could probably even get accounting on board with that one.

    The other part of it is a lack of devops.

    A big part of the blame here lies with developers who think of themselves as rockstars, compensating with late night heroics to solve problems that really should not happen in the first place if the process was done and funded properly.

  10. Good vs bad Code by gurps_npc · · Score: 1
    Generally it takes about the same amount of time to actually write Good Code as it does to actually write Bad Code.

    The differences are more along the lines of:

    1) You often don't know code is bad - or how to write good code - until after you have done the work once. So effectively it can take twice as long to write the good code - once to write it badly, then again to write it well.

    2) Good code usually requires a good working environment. You can never write good code while your boss is demanding you hurry up and finish the project.

    --
    excitingthingstodo.blogspot.com
  11. Yeah, I've got a suggestion by NotDrWho · · Score: 1

    Quit RIDING MY ASS, Jim!

    --
    SJW's don't eliminate discrimination. They just expropriate it for themselves.
  12. In my experience.... by mark-t · · Score: 2

    ... when developers say "no", they soon find themselves unemployed.

    Of course, one could theoretically argue that working for an employer who won't give due consideration to a developer's input isn't worth working for in the first place, but that nice little theory doesn't pay the rent. Oh, and try explaining to a future would-be employer about why your last job didn't work out... care take a guess how that will go down?

    Of course, it might seem that working for yourself solves much of this problem, but even that still requires that you actually have paying clients, enough of them that you can support yourself on what they are willing to pay you. Of course, then you are actually back where you started, where saying "no" to a person who pays you money to do whatever it is that you do carries a risk of not getting paid by that person again. If you have enough clients, this may not be a problem to lose the odd one or two because they are dillholes, but getting to that point will take time... possibly many years... so until that time comes, you'll just have to do whatever the heck the person who is paying your salary tells you, unless you really have an affinity for living in a cardboard box on the street.

    1. Re:In my experience.... by PRMan · · Score: 1

      That's OK. There's 500 other companies where I live that are all looking for 5 more developers. So no big...

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    2. Re:In my experience.... by iamacat · · Score: 2

      Seems like a horrible and unusual experience. In a sane organization, getting fired would be a very extreme response to not participating in a single project. You will likely be transferred to something more to your liking. If it's your constant attitude, then yes you will have problems. But then how do you expect to work in a place if you can not make yourself useful?

    3. Re:In my experience.... by Bengie · · Score: 2

      As a developer, a good portion of what I do is consult my manager. I'd say it's about 50/50 in that I tell him how it should be done, and I get my way, or I do exactly what he says, or some general mix of the two.

      If all they want you to do is code, then they want a code monkey, not a programmer. There may be a lack of jobs where you are, but I'd look around for better.

    4. Re:In my experience.... by Matheus · · Score: 2

      That's why you don't really say "No".

      Assuming your boss isn't asking you to do something unethical or illegal, your job is to provide as much information so the best possible decision can be made. SO in this case you will be telling your boss (customer/$$$/etc) everything wrong with what they are telling you to do. If after all of that their decision doesn't agree with your data then it is their liability. You did your due diligence and should document it thoroughly and documentation means you're getting paid either way. If you can sneak in a few tweaks along the way to make the project succeed anyway then good for you... work ethic and all.

      If you find yourself in continually failing projects because the person in charge is a dimwit then you start looking for a better employer / customer OR you get really good at justifying how at fault the customer is and you get to keep billing more and more hours for their failed project... that's how government contractors make the big bucks... only suckers settle for the original contract amount ;-)

  13. And in other news... by kramer2718 · · Score: 1

    Expensive consultants have released a shocking report demonstrating that water is wet.

  14. Requirements, specifications and solutions by Kjella · · Score: 1

    The article encourages managers to let devs contribute to the process and say "No" if the specs are too vague.

    Well, I hate getting into a process too early and I hate getting into a process too late. Too early and they still haven't agreed on what it is they want, why they want it and you end up wasting time listening to a whole lot of arguing and proposals back and forth that have nothing to do with the technical feasibility of any solution. It's like having the chef waiting while the guests are debating fish vs steak vs chicken, they're all good dishes so pick the one you want. It's another thing if they're looking for help at finding a best practice, but in my experience they don't look to IT for that.

    Come in too late and the requirements are woefully inadequate while the solution is half-designed with no regards to sanity. Like a proposal I recently reviewed, it had very little in terms of objetives and results but an almost complete IT solution that'd be a technical, administrative and logistical nightmare. Written by somebody knows the subject matter very well but has never managed more than his own laptop, my Dunning-Kruger meter went all the way to 11. And he wins most arguments by exhaustion, he makes these long deliberations in a slow, monotone voice that drives me nuts.

    --
    Live today, because you never know what tomorrow brings
  15. Re:Nope... Nailed it in crooked, but who cares by Maxwell · · Score: 1

    If "working on your tan" counts as work, sure.

  16. Speed is not the point by iamacat · · Score: 1

    The last thing you want to do is quickly release an application that people do not understand and that doesn't do what is needed. A delay in release is much preferable. Multiple prototypes and user studies may be needed to clarify those vague specs.

    Yes, discipline is needed and indecision can be taken to extremes. But most apps/services fail because they have not been adequately thought through rather than by launching late.

  17. Re:Nope... by mark-t · · Score: 1

    None of the companies that I've ever worked for exercise that principle.... in my experience, if you are incompetent at what you are asked to do, then you are fired. If you are just barely competent enough to keep your position past your probationary period, then this would come up during an annual performance review, with a critique on your work habits and what you can do to improve. If no improvement is noted over the next several months, you will be laid off. In my experience, if you are going to get promoted, you will need to go above and beyond what your job expectations are, and show the employer that you are capable of taking on greater responsibilities than what you were initially hired for, while still meeting all of the expectations of your current position. If there are no exceptions to the "Dilbert Principle", then how does that experience jive with promoting the least competent people to management, exactly?

    Or are you incorrect about your assertion that there are no exceptions?

  18. In other words by korbulon · · Score: 1

    Don't hate the player, hate the game.

    Trouble is, the game never changes.

  19. Meetings by chuckugly · · Score: 1

    Get the meetings in check.

    A good manager can isolate devs from most meetings and will efficiently communicate what needs communicated. Unavoidable meetings should be scheduled for as short a span as possible and must end on time, no exceptions.

    1. Re:Meetings by Gramie2 · · Score: 1

      Absolutely. I have 2-3 meetings a week, almost never lasting more than one hour each. My boss shields me from all the other crap that I would otherwise have to deal with, including saying "NO", which I'm not very good at.

    2. Re:Meetings by Zontar+The+Mindless · · Score: 1

      I have the world's best manager. Typically, I go to him and say, "Please tell me I'm not allowed to do X." His response, "You are not allowed to do X! (Now tell me who actually needs to hear that you're not allowed to do this, and why.)"

      --
      Il n'y a pas de Planet B.
  20. Problem is tools... by blahplusplus · · Score: 1

    ... regarding feedback, see bret Victor on this. Computer programming is different from building bridges because every time you change code you change everything that interacts with it. Whereas the laws of nature for bridge building don't change, every time you modify code you end up having network effects that effect every instruction afterward.

    http://blog.codinghorror.com/v...

    Since most (non multi-core) code happens sequentially. To see this, imagine an extremely simple computer with only a few KB of memory, all you are going to do is draw something. Every time you add more code, you change the nature of the problem, this is hard to see but the best way to visualize it is as a "ring" that expands or contracts vs the computers resouces. We'll use a metaphor for hitting targets for the goal you want to accomplish: Say the target you want to hit is a circle of a given size and everytime you grow the ring (code) you begin to miss the target (aka the ring grows because of more work/timing/etc). You have to stay roughly the size of the fixed target but you don't fully grasp the nature of the problem, partially because the feedback process is broken with coding tools and performance against the problem (requirements) you are trying to solve is unknown until implementation.

  21. saying no is great, but.... by crgrace · · Score: 2

    I'm work for an organization that provides design services (as opposed to building and selling products). If you are ever, ever , realistic about the time it will take to deliver or what features you can include in a design for a given set of resources, you won't get the job. It's as simple as that.

    Why do you think most construction projects go over budget? One big reason is they had to make a crazy bid because if they didn't, someone else would.

    The bottom line is: if you say no, you're out of a job.

  22. Experiences as a manager... by bradley13 · · Score: 1

    I've done my time as a technical project manager. I can't say I enjoyed it, but someone had to do it, namely protect the developers from upper management so that they could actually get their work done. One thing it taught me was to plan around 30% of the project time on the requirements. That still seems insane to me, but that's what it takes. That was my time, working with upper management, documenting things, listening to them waffle, and generally refusing to hand anything to the developers until I had a firm set of requirements, signed off in blood.

    When they would then immediately try to change. So during the implementation phase, the two challenges were (a) refusing to accept needless change requests, and (b) having to literally forbid upper management from talking to my developers directly, because they would direct them to make changes that I had already rejected. That latter led to quite a stressful little showdown :-/

    FWIW: small companies are a lot easier to deal with than large companies. They have fewer managers and less time to waste on endless meetings. Usually you have a small group of people who really need to be elsewhere, so you can reach decisions fairly quickly. With large companies, there are apparently endless numbers of middle-management drones who want to put their oar in - or maybe they just want the coffee and donuts.

    So: 30% requirements, 30% QA/Testing, and 40% development - that's about how the work hours broke down. Calendar time was different, with the requirements phase sometimes taking many months even for relatively simple things that were developed in just a few weeks.

    --
    Enjoy life! This is not a dress rehearsal.
  23. Don't dis the process, embrace it. by sdguero · · Score: 1

    The team I work on reports to a senior director who abhors process. His distaste for it comes from his roots as a rockstar developer at a startup. He often says things like "we just need to fix it" or "this should be simple" and gets frustrated in meetings with teams who push back asking for more information. While being very vocal in meetings, he never creates any documentation or requirements to guide teams. Nor does he consider the impact of the changes to, what can only be described as a giant hairball of a product that we work on. As a contributing software engineer and scrum master, he makes my job very difficult at times. Particularly because he has no respoect for the process and does not develop crisp requirements. Our critical response team (for bad customer issues) also is a direct report to him so he will often distract teams with firedrills, trying to shoehorn code changes and testing into the development process that is already underway. And his firedrills often have no bounds.

    My point is that process, whether it be agile or waterfall, has to be respected in order for development and test teaams to run efficiently. One bad apple, higher up in the management hierarchy, can grind a large group of engineers to a halt. Talented engineers who are unproductive will have low morale and will start looking at other opportunities. All of this will cost a company a lot of money.

    It is easy for a developer to bitch about process and avoid it like the plague, yet the stuff (s)he actually works on is usually a direct result of that hated process. Individual contributers can skirt a lot of that work and still help the company achieve it's goals. But when that attitude creeps into maangement get ready to watch things fall apart.

  24. Re:I need your TPS reports now and don't forget ab by DudeFromMars · · Score: 1

    More flair! More cowbell!

  25. Re: Agile / Waterfall mix? by FrnkMit · · Score: 5, Interesting

    It depends which parts are "agile" and which are "waterfall". From my not-exactly-vast experience, whatever mix you choose has to address four concerns:

    1. WHAT ARE YOU BUILDING? Seriously. This is where the extra planning of "waterfall" -- itself a misunderstanding of someone else's comments -- comes in. One of my first jobs was a derivatives trading app in a perpetual tug of war between an outspoken exotic derivatives trader, back office and compliance folks wanting to automate trade reconciliation, risk managers wanting to manage risk, and the rest of the trading desk who just wanted to price whatever deal they were trying to do (vanilla or not). The end result was a kludgey mess that everyone hated.

    2. HOW DO YOU ALLOW FOR GROWTH? There are right ways and wrong ways. Agile has a good tip: build only what you need, and as cleanly as you can. Better said than done, of course, and sometimes (as the Pragmatic Programmers have said) you *know* there will be a database in there sooner or later, so plan your architecture accordingly even if it's a little awkward short-term. Then there's the wrong way, which I saw in one project: build a "flexible" architecture with "configurable" components so that you can do "anything"! 1) KNOW WHAT YOU'RE BUILDING, even in broad strokes (see above). 2) For software to be reusable, it must first be usable for *something*. 3) If your "flexible" and "configurable" architecture takes more time to modify than writing straightforward code would take, it has failed; start over. 4) It's better to use open-source architecture than build it yourself. (Buying is also better, but beware of vendor lock-in and every-increasing fees, especially if you only use a small part of an elaborate framework.)

    3. HOW DO STAKE-HOLDERS REQUEST CHANGES? No specification will be adequate out of the gate, and unless you're working for NASA or the military people CAN and WILL request changes, sometimes while you're building the product and certainly once people begin using it. Do you jump when they say how high? Do you have a long and slow review process? Do you work individual tickets? Do you have potentially disruptive "projects", and if so how do you integrate them back into the main project? Different applications have different rates of change and different tolerance for defects, but it's best to work out change process before the complaints come in.

    4. WHEN AND HOW DO YOU CUT YOUR LOSSES? Despite your best efforts the whole thing will become obsolete or unmaintainable, sooner or later (hopefully later). As in point #1, have some idea which you're building, and at what point do you deprecate it to build something better. (This is the hardest part for many organizations; why can't the floor wax also be a salad dressing?) At some point make a plan, refactor your code base -- over time! -- to separate the parts you'll keep from the parts you don't need, and toss out the latter. If a radical rewrite is the only way to go, bite the bullet and do it, with appropriate safe-guards like regression tests. If you can't evolve or replace your product, a competitor -- maybe within your own organization -- will do it for you.

    That's my long-winded advice, from someone who's watched many "successful" and "unsuccessful" projects die. Nearly all in-house software is a Potemkin village designed to keep the tzars happy. If the tzars aren't happy, the fake village is set ablaze and you, the fake peasants, go to Siberia. The only real question is how to keep your frantic peasant dance going as long as possible without dying of exhaustion or being sent to Siberia.

    TL;DR: Plan the limits, goals, requirements, and large-scale architecture up front (erroneously called "waterfall"). But planning never really ends; stay agile to correct your course or take advantage of opportunities ... and be willing to throw the whole thing away if warranted. Also, keep your resume updated.

  26. Re:Good managers manage up, not down by FrnkMit · · Score: 2

    To my mind, the best managers set up conditions for their staff to succeed and defend them against higher-level managers. That's it. Managers should take care of head-count and hiring and meetings and all the other boring but apparently necessary stuff; they shouldn't be responsible for *any* analysis and design, let alone coding. Because all the "boring" stuff will eat up someone's time, and better the designated victim, I mean manager, than someone responsible for making progress.

    The *worst* managers, in my not-too-atypical experience, are the rock-stars, micromanagers, timekeepers, and corporate climbers. True rock-star programmers should be writing code, not going to meetings ... and if they can't cooperate with the rest of the team they shouldn't be on the project at all. Micromanagers second-guess their staff and the staff waste valuable work time indulging the boss. Management by Gantt chart is even worse, since estimates in software are rough guesses, not contractual commitments; the work takes as long as it takes, for a set amount of work, and forcing the staff to work harder to satisfy a bogus schedule only makes work later (or buggier). Worst of all are the managers who are simply mouthpieces and boot-licks for their bosses, because they'll throw you under the bus for any perceived failure and claim credit for all your successes, often both at the same time.

  27. self promotion Grrr. by qzjake · · Score: 1

    sprint.ly is trying to sell us their product using slashdot.... Hey, slashdot can you send them a bill for advertisement?

  28. Re:Developers can say no. by qzjake · · Score: 1

    I love H-1B's... every H-1B hired creates the need for two more real coders to clean up their mess! I say, bring them all over!

  29. Heh by mrflash818 · · Score: 1

    : )

    --
    Uh, Linux geek since 1999.
  30. Re:You can't... by BarbaraHudson · · Score: 1

    and I wholeheartedly disagree with the writer's idea that everything "averages out."

    Sure it does. The first 90% takes 90% of the time.

    The next 10% takes 90% of the time.

    Oops - specs changed - time to reset the clock ...

    --
    "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
  31. Don't leave the core or logic behind by EmperorOfCanada · · Score: 2

    So often I see developers and often their managers being loaded down with things that have exactly zero to do with the project's success. For instance I have seen companies that had an 8am meeting every morning at a company that claimed flexible working hours. These meetings were nothing beyond empty platitudes from a manager.

    Many companies that I have visited had sales dictating what needed to be built in that they would chase every whim of every potential client resulting in 100's of features being built for nobody (didn't get the client) but slowly turning the projects to crap. Then sales would regularly blame the programmers for letting them down by not developing an AI driven natural language database over the long weekend.

    The single worst that I saw was a company where the president's wife suddenly started dictating features. These features were completely unrelated to the core product. It would be like a VW engineer suddenly getting instructions on adding a flower arranging module instead of working on a recall where the cars can catch fire. This had the entire project's staff leave one by one until the project just died.

    But if I had to pin project failures down to a single consistent problem it would be that really terrible programmers who are complete blowhards often get way ahead of their co-workers leaving a trail of fuming resentment in their wake; the primary result is that the most skilled programmers are the first to leave resulting in a rapid plummet of the average level of talent as once the best go often the next best are soon to go, and so on until you are left with only duds who don't dare to find another job.

    As for what system is in place it doesn't really matter much as a talented group will make it work. But if that system is encouraging any of the above disaster scenarios the project will suffer.

  32. Elon Musk on "Process" by catchblue22 · · Score: 2

    This is a quote from Elon Musk on what he thinks about "process":

    "I don't believe in process. In fact, when I interview a potential employee and he or she says that 'it's all about the process,' I see that as a bad sign.

    "The problem is that at a lot of big companies, process becomes a substitute for thinking. You're encouraged to behave like a little gear in a complex machine. Frankly, it allows you to keep people who aren't that smart, who aren't that creative."

    This just about nails it for me.

    --
    This and no other is the root from which a tyrant springs; when first he appears as a protector - Plato (423 to 327 BC)
    1. Re:Elon Musk on "Process" by Zontar+The+Mindless · · Score: 1

      Absolutely. Wasn't it the Bard who said, The first thing we do, let's kill all the process junkies!?

      Or, in this more enlightened era, maybe we can send them out to work on a farm for awhile--the fresh air, sunshine, and exercise would do them a world of good, and they'd at long last get the chance to learn a useful trade. Not to mention the most excellent poetic justice factor when they're the ones shovelling the horseshit...

      --
      Il n'y a pas de Planet B.
  33. Corporate Policies by wabrandsma · · Score: 2

    Corporate Policies requires that developers cannot have so called 'elevated rights' on a server. Any server, including test and development servers.
    Well, that is, the developers have been granted local admin privileges for the development servers, but as a special exception to the corporate policies.

    The daylight savings patch that has to be installed, requires an upgrade of the application on the server, with an uninstall and a fresh install.
    With a full redeploy of the content and reconfiguring connections to ldap, databases, other servers and reconfiguring user autorizations linked to the content.

    The developer documents the deployment procedure in an installation guide.

    Next the the upgrade has to be deployd to the test server, but none of the developers have local admin rights for the test server.
    So, resources from platform operations have to be claimed by the coordinator. For the installation and the finalization of the application upgrade.

    The upgrade takes a little more than the standard 2 hours that have been reserved per week, but finally after a week a slot is available to do the part that has to be done that requires local admin rights for the test server, by someone from platform operations.

    At this point, the system test has slipped by a week, on a monthly release cycle, that is a significant amount of time.

    A couple of day later the upgrade is deployed to the acceptance server for user testing. Except that most of the users refuse to test the changes, because there are no new features. In their eyes it is purely a technical upgrade. Nevertheless a bug has been found, and it is declared blocking. It takes some days to resolved it. By now, due to all the previous delay, the issue has not been resolved in time to get the change in production.

    The monthly release date slips. The next slot available is the next month, and the application gets finally released into production.

    Essentially, it means that if something does not get tested beforehand, like a deployment procedure, it eventually gets tested in production.
    That is the best way to test something, isn't it? A consequence of the Corporate Policies.

    Absurd?
    Now I am going to watch some South Park episodes. I like documentaries.

  34. Proposal: by fyngyrz · · Score: 1

    For these groups: middle management, "UX" design, human resources, and everyone at or above executive level...

    They get their own building, with its own network. We''ll call it location "E." The network is in no way connected to the outside world. There is no mailroom, and no delivery access to the building. All vehicles in the parking lot are to be classic Pintos. The parking lot shall be liberally equipped with speed bumps.

    Developers, Manufacturing and Shipping work in another building or complex. We'll call it location "D."

    Location D requires its own badges. You can't get past the lobby security installations if you don't have one. If you try, you get dumped in an unmaintained pond over-populated with carnivorous ducks carefully selected for unusually unsanitary and highly aggressive natures. To protect these wonders of evolution, the pond shall be patrolled by duck enthusiasts with fully automatic weapons.

    Location D has its own network, which is firewalled at every possible level against anything, in or out, from location E, as a prophylactic measure, should location E somehow arrange for a WAN connection.

    At location D, the janitorial staff shall work hand-in-hand with the mailroom to heat the building by incinerating any mail or package that isn't (a) a paycheck, or (b) items that are on a list of things previously ordered by the occupants of location D.

    Location D shall have its own high quality NY pizza shop, a Dunkin Donuts, and an Orange Julius. The mailroom shall be responsible for delivery of products from these to the developer's desks, and for running out to fetch non-local take out orders. Mailroom salaries to be commensurate with consistency of their on-time, still-fresh delivery records, which shall be kept in consummate detail.

    At location D, female developers shall have hot male sexataries with pole- and stripping-experience. Male developers shall have hot female sexataries with pole- and stripping-experience. Poles shall be conveniently located in and/or near all developer offices. The sexatarial pool shall have both a shallow and a deep end, a selection of diving boards at varying heights, and a suitably awesome sound system and snack bar, and it shall be located adjacent to a well-equipped workout center. Fridays shall be devoted to data collection by careful developer examination of active poles.

    Location D shall have a rooftop laser tag facility with long-range light-arms. Location E shall situate all offices such that they have windows facing location D, and all location E personnel shall be required to wear lasertag suits that (with one exception) simultaneously initiate a period of physical incapacitation (locked limbs) and a significant shock. The single exception to this rule is that at location E, the vests worn by UX designers shall be equipped to deliver fatal shocks, whereas the incapacitation feature is to remain uninstalled in order to save the company money.

    At location D, any occupant of an office that wishes the title "rock star" to be affixed to, or adjacent to, his or her door must demonstrate the ability to actually perform rock and roll using an actual musical instrument to a panel of rock and roll enthusiasts suitably selected from the ranks of the developers. Air guitar does not qualify. Singing ability may qualify, at the discretion of the panel. Developers so qualified shall be additionally eligible for multiple sexatarial personnel/services, a small but well-equipped stage, and their own snack counter.

    All developers shall receive 1 (one) exotic car of their choice leased for them for the duration of their employment, funding for which shall be achieved by garnishing executive salaries as needed. The location D parking lot shall provide direct access to both high speed oval and full scale Nürburgring-configuration tracks. There shall be no speed bumps in the location D parking lot, however, the west extent of the lot shall be configured as a 1/4 mile track with a 1/2 mile rollout at the end.

    At location D, there shall be a Lego parts acquisition department, which shall be expanded as developer needs require. All offices shall have a lego assembly and display area.

    --
    I've fallen off your lawn, and I can't get up.
  35. Definitely not universal by Teunis · · Score: 1

    I work at a company that tends to be ahead of schedule and so we get time to improve things, and improve things steadily. We're not typically stressed and usually pretty confident about stuff.

    This just reminds me even more how much I love my job.

  36. This is a misunderstanding of Agile IMO by Goonie · · Score: 1

    Not every Agile process recommends that kind of approach. I teach Agile development, and I certainly don't. When you see a lot of final year student projects, you see all sorts of interpretations of "Agile" methodology, from utter adhockery to an approach that's waterfall in all but name. The more successful students, and successful projects, will take the time to carefully design the parts of the system which are a) high-risk, and b) difficult to change, and don't bother with trivial design for simple, easily modified parts of the system.

    --

    Any sufficiently advanced technology is indistinguishable from a rigged demo
    --Andy Finkel (J. Klass?)
  37. Re: Agile / Waterfall mix? by ndogg · · Score: 1

    Maybe it's just me, but Agile and waterfall development seem like orthogonal concepts that don't exclude one or the other. Waterfall probably needs to be tweaked a bit to work for a team using Agile, but other than that, I don't see any reason why it still couldn't be used as model for project management even if Agile is used.

    --
    // file: mice.h
    #include "frickin_lasers.h"
  38. Re:Nope... by ConceptJunkie · · Score: 1

    They key word here is "small". The complexity of managing a company grows at an geometric rate as a function of employees. The complexity of a project grows at an exponential rate as a function of the number of developers (at least after you get past a handful of people). Small companies that don't produce quickly die. I work at a medium-sized company where the scaling issues I described above really apply, so even though it's a good environment and management isn't a hindrance to making things happen, there's no way I would say work gets done quickly. However, the work does get done, and the environment is such that I feel like I can really make a difference. This contrasts to when I worked for a large company where I felt like nothing I said or did mattered in the long run (even though I did really good work for them.).

    It sounds like you are in a good situation, and I hope it stays that way.

    --
    You are in a maze of twisty little passages, all alike.