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?

186 comments

  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 Anonymous Coward · · Score: 0

      Wait, I thought XTreme Programming, no Agile Programming, no Lean Programming solved all this!

      Here's what's generally happened in places I've worked. When programmers are getting behind, management decides they need help. So they hire another layer of management designated solely to pester the programmers. That just becomes another status reports that you have to give to yet another manager. Worse yet, is when they decide that programmers cannot ask questions of the customer. You have to go through a BA who is neither technical nor knowledgeable about the business/project so your question probably isn't answered. That ends up being a back and forth that can take forever.

      Secondly, as good as Agile is, I've only seen it applied to programmers. Management hears "two weeks" and "sprint" and think we're going to kill ourselves to get this code done. The first thing I ask anyone who wants to hire me into an Agile shop is who's doing Agile? Do the customers and the BAs get to talk about a project for six months and then I, as a developer, have to implement it in one sprint? No thanks.

      I find it amazing that in so many situations that managers, project managers and BA don't think they have to be technical when they work in IS/IT. You get an MBA who has bought into CMM(I) and they think the process will create the software and imbue it will quality all by magic.

    7. 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!
    8. 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.

    9. 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.

    10. 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)
    11. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      As someone with a bad manager, I can attest to this.

      In every status meeting I get told that I need to be more selective on what projects I take on because we don't have resources to do everything. However, in every meeting he goes to, he is persuaded to have my team take on more projects.

      He's such a swinging gate that the other departments feel just fine in bypassing him as well.

      I've taken to just working on things in a JIT model and try to ignore everything falling down around me.

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

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

    13. 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.

    14. 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)
    15. 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,

    16. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      Do project managers or any type of manager really ever do proper mock-ups, flow diagrams, and documentation?

      I've been in software development for a while and usually the best I might get from a project manager is a high level business requirements document with a page or 2 high level information and maybe a project plan with dates and deadlines that shows when I'm supposed to be done.

      In the role of software developer/engineer, I'm usually the one doing the technical design document, talking to the users for more information, doing more diagrams, doing the coding, and doing unit test plans. Sometimes I even have to help QA design test plans.

      At least at the companies I work at, its very rare that a project manager or manager provides anything technical, unless they were a developer themselves at some point in their career.

    17. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      That's the really unfortunate thing - devs I know would totally go after the bug, management only wants shiny new features that customers don't want / never use.

    18. 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.

    19. 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
    20. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      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)

      Oh, that bug? It turns out one of the old developers (gone now) was having a caching problem so he wrote a script that would fix it, and then he shared that with Josh, a junior developer who decided to become an account manager, and he shared it with the other managers. Vicki in accounting runs it whenever she can't login.

    21. 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
    22. 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
    23. 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.

    24. 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.

    25. 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
    26. 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.

    27. 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?

    28. 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 ?

    29. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      Watch out for the proof trap. There are times that numbers can be meaningful and helpful. However, it is never possible to prove an engineering project will take a long time, you can only say that it will from your team's judgement. Any time you feel pressured for proof, see if the need has actually been proven. Sales cannot prove that you will make new sales with a new feature. Customers can always say no -- things can always change. If business people cannot accept your team's professional judgement, get the hell out of there. No one other than the people do the work should ever be able to say how difficult something is.

    30. 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 /.
    31. 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.

    32. 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.

    33. 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.

      --#

    34. 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?
    35. 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.

    36. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      I've gone to interviews where I am told my job would be to build a new version of all the existing tools, they need to bring in a new team for this because the old team is still supporting the current version of the technology. This is a sign that a company has built up so much technical debt that it would take more effort to fix the current systems then to start over from scratch. Unfortunately for them, you can never rebuild everything from scratch, since you can never recapture all of the hidden knowledge that is buried in that debt. The new tools do different things, but you still have to support the legacy tools, and soon you need a new team of developers to unite everything in a new framework, creating a new legacy. At this point most companies collapse.

    37. 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.
    38. 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.

    39. 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.

    40. 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.

    41. 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.

    42. 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.

    43. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      Nope. gtall nailed it. Code that doesn't have thought out architecture becomes unmanageable spaghetti code. I've seen it to many times. On the fly coding built on top of on the fly coding without time spent on architecture leads to hundreds of regression issues with each code update.

    44. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      It's very common amongst incompetent managers.

      I briefly worked for an insurance company where this was the case. They had half a dozen people in tech support team plus, because of the quantity and severity of bugs in the system, the programmers took turns on call. The code base was a disaster, of course, but early on I was recognizing patterns. Some report would get botched because an agent entered the wrong info or the system timed out or whatever and then its aborted presence would keep said report from being rerun which in turn locked everything up. And so on.

      These were the kinds of problem I'd solved many times before but every time I brought them up in a developer meeting I was shouted down. It was so bad that if some other bug (and believe me, there were plenty to go around) impeded an assignment I was given, I was forbidden to work around it. No, I had to file the bug and wait weeks/months for it to be assigned to somebody else and wait weeks/months for it to maybe be addressed. So no matter how fast I was finishing other assignments (about 6 years of work at their pace), I was forced to turn a handful in either late or still broken.

      The last straw for me was when the fat pig who was responsible for alot of the bugs talked down to me about code formatting rules. Yeah, let's waste untold resources prettifying a sloppy codebase full of broken logic and totally ignore that bugs consume 50 IT man-hours every single day. This is what happens when your IT department is overrun by thin-skinned talkers who struggle with baby's first language (VB.NET)...

    45. 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.

    46. 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.

    47. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      Had they been using the tool properly, they could have hit a button and had 70% of their code instantly finished. If you design the system properly and if the requirements don't change (two very big ifs), waterfall is the best methodology. All the other methodologies are tweaks to waterfall, mostly just smaller waterfalls. I don't know of anything that isn't some type of waterfall.

    48. 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.

    49. 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.

    50. 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".

    51. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      Many organizations are "tool driven". You can tell, when the answer to every issue is "there's a tool for that".

      Need a configuration management system? One might ask the question, where do these configurations need to be, how should the be applied, what items must be tracked, what kinds of patterns must we support, etc? A tool driven shop answers "we just bought shiny product X", now we have a configuration management system.

      In a weird way the tool-driven shop is right, they have _something_ when they lacked that _something_ before; however, they completely miss the mark because they haven't done the hard work: integrating that something into the process of getting the product out the door. This means that the next step is to "learn how to use the tool", which leads them to model the problem according to the tool's needs, instead of the company's needs. After they get some idea of what the tool can do (and how to use it) often they wind up solving what they know how to solve, completely side-stepping the most important part: the requirements analysis.

      And that's how a tool driven shop keeps working hard at solving problems but the environment never seems to get much better. They put the analysis of what they need at the end of a pipeline which may limit their ability to deliver.

    52. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      In which case, they do a quick fire drill to fix the "one issue" that caused this problem, leave the rest of the ghosts in the closet, and wait for the next phone call.

      If you're lucky, it happens enough time that you need "stability" iniatives. If you are not lucky, you've both lost your sanity and your customers.

    53. 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
    54. 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
    55. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      > 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.

      I use to developer then I became dev-ops, then I became project manager, then director (about 80 people). Being director was the worst experience of my life. The problem was not dealing with the team, the issue was the board. Incompetence was the rule, not just the technical side but also the financial part: understanding the meaning of an average was above their capacities. I felt like my job was about stopping them wasting money on useless products.

    56. Re: Nope... Nailed It by Anonymous Coward · · Score: 0

      Cisco? Someone said nearly exactly what you just said.

    57. 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
    58. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

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

      Or add some actual managers. I'm not sure I've ever met a manager. I think I've only ever met middlemen who spend their time jockeying for position in the corporate heirarchy. And like all middlemen they extract as much as they can from others while contributing nothing themselves.

    59. 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.

    60. Re: Nope... Nailed It by Anonymous Coward · · Score: 0

      This also makes the assumption that new features are bneficial and tend to have longer code. In truth smaller snippets of code tend to perform better, and many features can be redundant or confusing.
      The best code is often heavy planned, and may take many revisions before it ends up in a final well documented but concise final form.

    61. 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.
    62. 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."
    63. Re:Nope... Nailed It by CBravo · · Score: 1
      --
      nosig today
    64. 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".

    65. 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!".

    66. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      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.

      Bingo. The best manager I ever had worked that way. His attitude was that it was his job to make sure that his team got what they needed. Stable and complete specifications, no distractions, proper tools, a comfortable environment, healthy lines of communication. A team is an organic, living thing that needs to be fed and nurtured.

      The worst manager I ever had was focused not on his team's needs but on his own needs. "What can I do to bring more of the company's business under my control (muahaha)?" Sadly, the entire company culture was structured along those lines, with power shifts and such. It was Machiavellian crazy, and terribly wasteful of everyone's time. Happily, the company was shut down after about a year of that.

      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?

      Yes. Create a development process that can't move forward unless the conversion of specifications into working product is viable. Actually using the team's skills to go through that process is going to be more reliable than waiting for feedback about a spec being "too vague". If it's "too vague" at a simple reading, then the company has the wrong person writing their specs.

      When I was at Microsoft, the functional specification was presented to the development team. The architect guys were involved with the functional specification, so they know the basic architecture. The leads then work up the detailed design of the product. The team members then work out how they'll implement their pieces, breaking things down to between 0.5 and 3.0 day work items. Collect everyone's work and find out what it will take to build the product.

      Such a process is akin to "compiling the spec". If it doesn't compile, you'll find out pretty quickly. Nobody can design or implement a feature when they can't figure out what they're designing or implementing.

    67. 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.
    68. 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
    69. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      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.

      Here's how managing works at my organization. The higher ups decide what needs to be done and how long it will take. They have no programming experience. Deadlines and milestones are set. Then, the programmers receive the writ from on high. The more critical and rapid the project, the more time devoted to meetings. Currently, I'm at 4 hours of meetings a day, which consist of "OK, Bob, how's item 54 coming?" "Uh, it's doing OK I guess" "So we'll put that as On Target" "Uh, OK" "OK, Jane, how's item 55 coming?" etc The actual programming team needless to say has zero confidence this will get off the ground on D-Day. The fact that we're the fourth team to have this thrust upon them, the other three having failed despite all this management help, doesn't encourage us.

    70. 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.

    71. Re:Nope... Nailed It by Anonymous Coward · · Score: 0

      Take managers out! There fixed that for ya.

    72. 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 Anonymous Coward · · Score: 0

      Single serve coffee maker. Your company needs to get with the times.

    2. Re:One more right of refusal by Anonymous Coward · · Score: 0

      yeah, paying $1 a cup rather than $.50 a pot is a great way to make that runway last.

      #idiot

    3. Re:One more right of refusal by Anonymous Coward · · Score: 0

      I got an idea. Why don't you make your own coffee if you want it so bad? I'd like to see you offer that bitch like response to one of my tickets, and see how fast your ass is marched out the door. You whiny cunt.

    4. Re:One more right of refusal by Anonymous Coward · · Score: 0

      Uh oh, beware of the internet tough guy, everyone.

    5. 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.
    6. Re:One more right of refusal by Anonymous Coward · · Score: 0

      $1 a cup? I pay $.35. Beside the fact that it is more convenient. That's why most companies have moved in that direction. It's no different than paying more for a Snickers bar from the vending machine.

      #You fucking dumbass

    7. Re:One more right of refusal by Anonymous Coward · · Score: 0

      At home, I wouldn't do it any other way. Too messy at work with the wet grind disposal and cleaning.

  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 Anonymous Coward · · Score: 0

      I like agile. I dislike scrum, which pretends to be agile but screws it up.

    12. Re:Constant Planning by Anonymous Coward · · Score: 0

      Our scrum is just a meeting where we all stand up. One of our Ops guys commented on the fact that it was supposed to be brief today. I'm kinda kicking myself that I didn't add that it isn't supposed to be run by managers. I may have to do something passive-aggressive about it (post the definition in the elevators or something).

    13. 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...

    2. Re:Paging Fred Brooks, paging Fred Brooks by Anonymous Coward · · Score: 0

      I'm not even in development, I'm just in network administration and I'VE read it. It should be universally read by managers by large just for the skepticism it gives you towards what feels "intuitive" but is in turn counter-productive.

  5. I need your TPS reports now and don't forget about by Anonymous Coward · · Score: 0

    I need your TPS reports now and don't forget about the new cover letter on them as well.

  6. Re:Nope... by Anonymous Coward · · Score: 0

    This is not exactly accurate.

    Refer to "The Dilbert Principle".
    Do not think there are exceptions. Anywhere. Ever. Notta single one.

  7. 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.

  8. 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 Anonymous Coward · · Score: 0

      In QA's case, when they stop testing is when they are done. Even if there are still bugs to be discovered (and there are, somewhere in there), the date QA stops testing, no future bugs will be discovered.

      So, I can easily see how QA could meet all of their milestones. What I cannot determine is how they actually advanced their company's efforts by clamoring how they were done even if development wasn't released.

      One of the jobs of an employee is to have the company's back. I'm not talking about ethics-violating support of your company, but in the absence of a moral dillemma, you should be concerned with your company's bottom line. Can't QA the product (coders aren't done) but claiming you hit your deadlines? Sounds like a QA employee that is overly concerned with himself instead of getting the product released. (the bonus comments seem to reinforce it too).

    7. 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
    8. Re:Untie the bonuses from the schedule... by Anonymous Coward · · Score: 0

      How can you plan how long something will take if it has never been done before?" Actually, every bridge is new, and has never been built before. The right way to estimate it, is to ask people who are familiar with similar developments how long they think it will take. But asking this, must be done very carefully. Often, the first answer, is the amount of time that someone could prove is the minimum amount of time, and it can't be done faster. To properly schedule, you also need to ask to find out what the longest possible time would be. Add some math from project planning principles, and you can estimate proper schedules. The real problem, is keeping control of higher up levels of management, who have been selected for their competitive natures, and preventing them from turning a well thought out schedule into an ill-thought-out race, with "bonuses" as "motivators".

  9. Re:Nope... by Anonymous Coward · · Score: 0

    I might consider myself lucky then, because I have a manager (he's also the owner, it's a small company) who is a software developer and we get work done very, very quickly when we focus on projects together.

  10. 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 Anonymous Coward · · Score: 0

      A: Do you think we can do this by March?

      B: No.

      A: Well, we need to do this by March.

      And that, ladies and gentlemen, is how a person who says no gets ignored. Do it "too many" times, and you're no longer even invited to the meetings where they polietly ask you questions knowing full well that then answers are already pre-determined.

    2. 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
  11. Hey! Didja hear that, Martha? by Anonymous Coward · · Score: 0

    Why, it's those vague specs and bug reports put together by the managers and support folks that's been slowing us down!

  12. 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: 0

      Agile = douchebaggery intended to excuse not getting your shit done.

    3. 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.

    4. 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.

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

      The tricky part is actually getting a list of stakeholders when you get the job.

    6. 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.

  13. You can't... by Anonymous Coward · · Score: 0

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

    Because it doesn't. Never does.

    In many situations, you wind up being hired into multipurpose roles where you can solve "general problems" using a plethora of multifaceted solutions (which you realize you frequently need to resort to due to the realizations inherent in subsequent scoping). But because of this and the cart-before-the-horse evolution this field is known for, there is just never a "general" solution! That just doesn't exist in this work! That's why we keep running into this problem over and over again...

    A 100 or however many years from now, I believe programming languages will begin to settle down. You'll see more and more be consolidated into more formal languages that last longer without major revamps (or so, this is my hope). Assuming this ever happens, you'll begin to see things be a bit more stable whereby metrics most managerial staff love to see might then become possible (i.e. - "How much time will x-y-and-z take?", "Can we use the last estimated time amount from the last project and apply that to the new?", etc.) ...another major issue here is the fact that developers still allow their lives to be dictated by employers. If all the developers banned together to form either some sort of union or else just went to business on their own, they'd own the world. The problem, though, is that despite their omniscience, they just can't ban together enough to do this. Must be ego...

    1. 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.
  14. No if the cost/benefit doesn't work out by Anonymous Coward · · Score: 0

    Stakeholders have to understand the cost (detriment?) to benefit. Adding functionality is more than adding the feature, it's adding the lifetime care and feeding of the function.

  15. 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.

  16. 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
    1. Re:Good vs bad Code by Anonymous Coward · · Score: 0

      Agreed. Most seasoned developers realize this to be true.

  17. 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.
    1. Re:Yeah, I've got a suggestion by Anonymous Coward · · Score: 0

      But Bones, we're the only two survivors of this away mission, and the Enterprise won't be back in system for three more days.

  18. 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 Anonymous Coward · · Score: 0

      If their jobs are no better than the one you have, then what kind of a career is that?

      P.S. There's this thing called a resume, and after some time the good ones will have to decide on if you're worth the risk because you other employers were sub-optimal, or if you were sub-optimal. They'll error on the side of "well, there's this other guy where we don't have to ask or answer that question.

    5. 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 ;-)

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

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

    1. Re:And in other news... by Anonymous Coward · · Score: 0

      Expensive consultants have released a shocking report agreeing with the manager who hired them that water is wet (or not).

  20. 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
  21. What I've learned by Anonymous Coward · · Score: 0

    Competent management is rare. But when you get it, it's absolutely worth its weight in gold.

    I've had fantastic managers who've shielded developers from the HR / corporate nonsense, while keeping realistic schedules and checkpoints. At best, they are your advocates, and let you get on with solid work, with a minimum of interruptions. And they earn when they go into bat for you - if the higher-ups keep getting the spec wrong, or it's a moving target, a good manager makes the case for more resources. Anything else just ends in overshoot, and ultimately costs more in the long run. Under-estimation always ends up costing more, while damaging morale and possibly resulting in people resigning.

  22. Re:Nope... Nailed it in crooked, but who cares by Maxwell · · Score: 1

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

  23. 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.

  24. It's called Engineering by Anonymous Coward · · Score: 0

    That's why it's called Engineering.

    Writing code is quick if you (precisely and accurately) know the goals it must achieve. Establishing those goals and ensuring they've been met are not trivial.

  25. 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?

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

    Don't hate the player, hate the game.

    Trouble is, the game never changes.

  27. 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 Anonymous Coward · · Score: 0

      Say no to meetings that are a waste of time. Challenge people in meetings what the purpose of the meeting is, and whether you are required for that purpose. If done properly, you will get out of the meeting and they will look like the asshole. Good chance of making you look like the asshole, though.

    3. 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.
  28. 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.

  29. 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.

    1. Re:saying no is great, but.... by Anonymous Coward · · Score: 0

      Confirmation Bias has you perpetually stuck in crappy contracts damaging your reputation in the process. The more toxic the relationship becomes with your clients, the more word of mouth damages your ability to secure contracts, the more you have to underbid in order to capture the few clients naive enough to go with lowest bidder.

      It's a race to the bottom where a fixed pool of inexperienced customers are fought for by diving closer and closer to the bottom of the barrel until you've pretty much scraped bottom. Three outcomes once you're there: bankruptcy, massive lawsuit, criminal investigation, or Toronto Stock Exchange(sometimes all or several of the above).

      Three options:
      1. Continued improvement until you're no longer a "bottom feeder"(no offense) and the investments begin to pay dividends in efficiency gains.
      2. Capital investment in tools to buy the above efficiency gains.
      3. Keep doing what you're doing and see how long you can circle the drain before the clock runs out.

    2. Re:saying no is great, but.... by Anonymous Coward · · Score: 0

      Around here if someone goes over budget or over time we never work with that company again.

    3. Re:saying no is great, but.... by Anonymous Coward · · Score: 0

      ... most construction projects go over budget?

      Because they are pay-as-you go contracts. Which contractors use because they, or their employer don't know what the hell is going on. When one has predictable inputs and outputs, contractors are the perfect choice for out-sourcing. If one is making it up on the day, one is paying the contractors to try, try, try again until they get it right. Worse, they can then sell those skills to your competitor.

      Look at how many Government projects fail. The fundamental reason is the scope being too large. The second reason; institutional resistance to changing the process and workflow. Next is the failures caused by change and project mis-management.

  30. This is why I don't code for any company. by Anonymous Coward · · Score: 0

    When I code I take projects on the side.. side jobs. I know how long a project will take me. I also know what code I am going reuse and what i am going to write from scratch. Bean counting managers take the fun out of coding. I used to look forward to the hard stuff because that's when I learn something new. Especially when it comes to write a new original algorithm.

  31. Nothing surprising there by Anonymous Coward · · Score: 0

    The so-called software development methodologies (like Agile, the current fad) are there, for the most part, to justify the jobs of certain managers. That's it.

  32. Obvious by Anonymous Coward · · Score: 0

    In fact actually creating code is a largely mechanical task that can be automated. This may either elate or depress you.

  33. 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.
  34. 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.

    1. Re:Don't dis the process, embrace it. by Anonymous Coward · · Score: 0

      Sounds like a dream job. I bet I could code me several mini-vans if I worked for that guy.

    2. Re:Don't dis the process, embrace it. by Anonymous Coward · · Score: 0

      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.

      In my experience, when a developer is "bitching about process", they're actually bitching because stuff that the parts of that process they weren't supposed to be a part of suddenly found its way onto their desk due to the incompetence or laziness (or both) of someone in management.

      Developers love process. It's literally what they create. But they want to do their work and not someone else's work. That's the important bit. When developers bitch about process, it's because someone else is shitting on them.

      OK, occasionally, a developer is just too stupid to handle his own work. Developers like this should be fired. But it's usually the other thing.

    3. Re:Don't dis the process, embrace it. by Anonymous Coward · · Score: 0

      Your sir sound like an incompetent nincompoop hiding behind "process".

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

    More flair! More cowbell!

  36. 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.

  37. Management by Anonymous Coward · · Score: 0

    I will preface my comments and say that I have been on both sides of this argument, as a developer and as a manager. I learned good management by being managed by good managers.

    People talk about these named development models like Agile, Scrum and Waterfall. When I started off doing dev work in the early 1990s we did what is now called Agile development, only for us it was just called good development work, or common sense to involve your stakeholders in the development process and create feedback loops so that bugs were caught early and new features that might come up get integrated before release, if they can. The names for these things keep changing so I don't bother trying to keep up with them, I just implement best practices from experience.

    This process, "stakeholders figuring out specs and prioritizing work," should be completed (at least 75%-90%) before development work begins. I have dealt with this issue my entire career. People want to dive right in and start doing stuff before they have a clear path. It's maddening! For some reason people want to shortcut everything and skip step one. First rule of good management (and development) is you can't skip step one, nor can you let someone else above or below you in the organization try. Just diving right in without thinking things through leads to wasted work and project delays. It's inevitable when you don't have proper leadership controlling the process.

    A lot of comments above seem to hit the nail on the head and say that a lot of managers are bad because they don't know how to manage properly. These bad managers seem to come into management with preconceived ideas of what their role is from textbooks or from bad managers that they themselves have served under. They have no reference for what good management is and how it is different from bad management.

    Touching on management's role again, one of the things I found myself doing quite a lot as a manager was running interference for the people under me when half-baked or just ludicrous ideas were flushed down the pipe at us. I was the one constantly saying "No" and trying to keep my employees from being overworked or burned out because my superiors wanted to do "more with less". I also tried real hard to get interesting and more useful/utilitarian projects into the group to build competency and make the work less monotonous. This lead to some really big projects with some really big positive outcomes for my organization. But, those are rare and so are good managers. Too many of managers are just on a ladder climb and really don't pay attention to anything but their career so they don't care about the developers and others under them. They want something for their resume so they can get the next three to five year position before they move again. Selfish, sickening bastards is what they are. Unfortunately, they vastly outnumber us good guys and often scheme to get the good guys punished or canned because they make the bad managers look, well, BAD!

    I am truly empathetic to all those dealing with bad managers. There are far too many of them out there and they defile the pool within which we all must swim. However, sweeping generalizations about management are about as useful as sweeping generalizations about data types.

  38. Developers can say no. by Anonymous Coward · · Score: 0

    Developers can say no. However, in this cut-throat market, saying no means being fired for not being a team player, and having your recently vacated position filled by an H-1B visa holder (or two) who can't say no, because they can be shipped back where they came from.

    1. 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!

  39. 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.

  40. 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?

  41. As a cat herder ... by Anonymous Coward · · Score: 0

    As someone who attempts to cat herd, I have to say that after you've been in the business for a few years most of the articles observations are on the money. I'd add a couple of my own observations to this though, namely:

    1) Developers need to play their part in bouncing out of band requests into the process backlog (even when it's a 'easy' glory opportunity) if they are not to undermine attempts to protect them from interrupts.

    2) Humans are incapable of predicting the future; requirements will always change. If it's too painful, then it is either a sign of inadequately stakeholder engagement or of a strong need to invest in a process that reduces the cost of iteration (see test driven development and BDD in particular for an idea about where to start with both of these.)

  42. Heh by mrflash818 · · Score: 1

    : )

    --
    Uh, Linux geek since 1999.
  43. Analysts? by Anonymous Coward · · Score: 0

    Business Analysts work with the business to set the project scope / requirements to ensure the BUSINESS NEEDS and BUSINESS VALUE are identified and met before the project begins.

    Systems Analysts work with stakeholders to elicit functional and non-functional requirements, document them, present them to the Scrum Master / Development Manager / Project Manager, and ensure they are clear and adequate for prototyping / development work to begin, up to and including pseudo-code.

    Both of these roles identify the scenarios (Business and System), and Use Cases that would leverage this system / feature, and they describe these as scenarios that are used for both system and user acceptance testing. They also provide the training that would be required for this solution.

    Good Analysts make everyone on the team more successful and reduce the impact of the challenges that the article describes. Good Managers hire Great Analysts to make the developers Awesome.

    Bad Analysts are another thing entirely, and have the potential to make the effort more difficult and the team members less successful.

  44. 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.

  45. 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.
  46. 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.

  47. So you're telling me by Anonymous Coward · · Score: 0

    Designing a house is different to hammering in a nail...?

  48. The missing point here... by Anonymous Coward · · Score: 0

    Is that once everything is clearly defined, the development is a technical task that we are fully capable of executing in a timely fashion. However, the real creative part is in defining the task! The customer can't define it for you, so the process has to force whatever team is working on things to create that definition. Newsflash: this part is really hard, and usually just gets pushed onto the developer, who has to become a subject matter expert on all sorts of random stuff to both define the solution and develop the product.

  49. 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.
  50. Get rid of... by Anonymous Coward · · Score: 0

    SCRUM, Agile, Paired Programming and Java...

  51. 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.

  52. 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?)
  53. 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"
  54. Gaming the System by Anonymous Coward · · Score: 0

    Where I work I've seen this happening for years, but rather than being fixed, this slowdown has been exploited. What this article doesn't cover is whether engineering starts these projects too early intentionally. Most of the specs aren't in place but Engineering starts up anyway. Fools in marketing think it's great that work starts sooner, not realizing that starting sooner doesn't mean finishing sooner, and it probably means finishing later. Engineering ( or a software manager or two ) understands this and knows that working this way creates more "billable hours" on a project. Since marketing is constantly updating or completing the specs engineering has something to point to as the cause for the delays. Based on how long tasks take to complete over the years, I've seen managers double the size of their staff. They catch grief over not delivering, but not to the degree that the product managers in marketing do as they can claim the project would have been completed on time if the requirements hadn't changed. Those hundreds of course corrections made over the life of the project increase the time to completion even though the end point doesn't appear to have changed.

    Stripping features is another way of "padding the bill". Different factions in marketing all want their pet feature included. But rather than prioritizing the features on day 1, they all have equal priority with work being down on them in parallel. Only when deadlines approach is the work done to pull features that either won't be done or to shift effort to other features. But doing the pruning late in the project means those features that don't get released suck resources from day 1 until they are cut. If / when these omitted features get added to a subsequent release there are efficiency losses due to lack of momentum, change in staff, change in priorities. The company didn't get the feature to sell, but developers still got paid for working on it.

    Why would an engineering manager complain about the status quo? They get paid for more hours of work and most of the blame for delays or blown deadlines gets piled on someone else. It's a balancing act though. Do it too much or for too long and the company might suffer enough that they start to fail, or upper management starts looking for more people to blame.

  55. 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.