Slashdot Mirror


The Sad Graph of Software Death (tinyletter.com)

An anonymous reader writes: Programmers, raise your hand if you've been on a project where bugs keep piling up, management doesn't dedicate time to fix them, and the whole thing eventually bogs down. Gregory Brown summarizes that situation in one simple little graph from an issue tracker, and discusses why so many companies have problems with it. "This figure tells a story that is no way surprising to anyone who has worked on software projects before: demand for fixes and features is rapidly outpacing the supply of development time invested, and so the issue tracker is no longer serving as any sort of meaningful project planning tool. In all but the most well-funded, high functioning, and sustainable businesses — you can expect some degree of tension along these lines. The business side of the house may blame developers for not moving fast enough, while the developers blame the business for piling work on too quickly and not leaving time for cleanup, testing, and long-term investments. Typically, both sides have valid concerns, but they don't do an especially good job of communicating with one another." What methods have helped you deal with situations like this? What methods haven't helped?

15 of 210 comments (clear)

  1. Management by Lisias · · Score: 4, Insightful

    Communication is the main task (and, IMHO, should be the sole one) of managers.

    Get rid of that wave of mongols that call themselves "Managers", give the task to someone that can understand both sides, and you will see things going better.

    --
    Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
    1. Re:Management by Anonymous Coward · · Score: 5, Insightful

      My problem is this one

      'drop whatever you are doing this is your top priority' then 'why is xyz not done yet'.

      I spend at least 2-3 days a week in meetings. The remaining time is spent doing 'support'. The other time is supposed to be my development time. Guess which one suffers?

      My 'passion' is gone. I come in at 9ish leave at 5. I then take a decent lunch. I dont care anymore. They do not want to let me schedule time for dev work. I am not going to give them extra time. They dont care then I dont.

    2. Re:Management by sunderland56 · · Score: 5, Insightful

      No, I think that being an effective *filter* is the main task of a manager. Communicate and prioritize the requirements from above that make sense; but block ones that are stupid or not worth it. Communicate the needs of the team up to management (again, ones that make sense) and make sure they get addressed. And, most of all, block the constant stream of questions and requests from sales/marketing/support, and force them to all pass through you. That way you (a) will soon recognize who brings reasonable requests, and who does not; (b) get to know which areas of the product get the most questions, and so may need work; and (c) allow your team to work mostly uninterrupted.

      You're right that under-communication is an evil sin; but so is over-communication.

    3. Re:Management by Opportunist · · Score: 4, Insightful

      I think that's not what he meant. What he meant is the management equivalent of the sales person who claims that it doesn't matter whether he's supposed to sell mattresses, cars or refrigerators.

      A manager has to know at the very least (AT LEAST!) the pitfalls of what he is managing. Of course not the technical side, but the management side. In IT this means that he has to know that bugs WILL happen and that he WILL have to dedicate time to fixing them, that wishing them away will not work and that customers will want them fixed because they notice them and you can only bullshit them so long into "it's a problem on your end".

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    4. Re:Management by Anonymous Coward · · Score: 5, Insightful

      I have thought about having T-shirts printed up that say "The meetings will end when morale improves". There is nothing like an excessive number of meetings that sucks the life out of me. Fortunately I don't work on that product any more.

  2. Idiots by penguinoid · · Score: 4, Insightful

    The business side of the house may blame developers for not moving fast enough,

    Yes, but that is the most pathetic excuse ever. No one is preventing the business from hiring additional workers, if the business lied about its workers' capabilities or is managed by idiots who substitute optimism for basic estimation skills that's their own problem.

    --
    Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
    1. Re:Idiots by Ichijo · · Score: 2, Insightful

      But according to Brooks' law, adding manpower to a late software project makes it later. So hiring additional workers would actually be counterproductive.

      --
      Any sufficiently unpopular but cohesive argument is indistinguishable from trolling.
  3. The other side of the coin by Jeremi · · Score: 4, Insightful

    ... is, if you're still receiving bug reports and feature requests, that means people are still interested in using your software.

    You know a particular program is really dead when you stop receiving feedback from users about it -- that means either it is finally perfect and bug-free (ha ha, not bloody likely), or everybody has given up on it and moved on to something else.

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
  4. Start by categorising bugs by mikael · · Score: 4, Insightful

    Figure out what those bugs are coming from. Are they documentation, failed unit tests, new features, badly colored GUI widgets, or more hardware features?
    It isn't going to help to have a recruitment blitz for more hardware engineers if your technical writers can't keep up with the documentation.

    --
    Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
  5. at least partly a project management problem by david_bonn · · Score: 3, Insightful

    Like the article said, this could well be a symptom of poor or clueless project management. Duplicate issue reports and low-priority nice-to-have items may be overwhelming actual problems. On the other hand, this could also be a case of software "maturity" where it becomes difficult, if not impossible, to fix any bugs without introducing new ones.

    The least bad "solution", as a technical lead or developer, is to abandon the problem tracking system. To politically sell this idea it describe it as a "critical bug tracking system" and make it a simple command-line or email interface that only the lowly code grunts and technical leads will be comfortable with.

    Another "solution" is to start closing problems and declaring they cannot be fixed without a redesign of the product.

    One thing to remember is that substituting product management with a bug tracking system is seriously lame. We all use software, from web browsers to compilers to editors to source control systems to databases, that has bugs. Each new release of said software will fix some bugs and introduce new ones. Most of the time, for most users, if we had a choice between fixing those bugs and making the product in question ten times as fast or use 10% the memory we'd take one of the latter over the bug fixes. What I'm trying to communicate is that an "issue tracking" system can't usually communicate what customers want or need perfectly.

  6. Give us direct access to users by SuperKendall · · Score: 2, Insightful

    I think a lot of the problems software development has, could be solved by ending the absurd game of telephone we are all playing as to what the people using the software are actually wanting.

    It's easy in a bug fix swamp to lose sight to lose track of what the hell working even means, or what is important to HAVE working.

    It's impossible to avoid creating massive technical debt without understanding the possible futures for what you are working on, futures that sorry to say non-technical people are awful at interpolating from the user desires and issues of the day.

    In so many companies I've worked at, developers are given at most the tiniest bits of information or contact with real users or customers. If you ever want software to really improve, that must end. Heck, most companies should probably have programmers shadow a real user for at least a day at least once a month.

    I think companies are loathe to do this because of the myth that software developers are anti-social - in reality I don't think it's any more true than any other group of people (except of course for sales people). And on a side note if someone is difficult for a customer to get along with, why on earth do you think they would be good for team dynamics....

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Give us direct access to users by Anonymous Coward · · Score: 2, Insightful

      I hope you realize "direct access" does not necessarily mean "personal access." I imagine the poster was referring to the possibility to actually directly communicate with the people who will use the software, not try to divine it through several layers of managers and systems analysts. The ability to actually speak with a customer, ask them questions, and answer any questions they have for you might well work wonders in terms of producing the software that is actually desired, not the software that has been distilled into rigid, overly verbose specifications with varying levels of vagueness and utility.

  7. Developers as cogs in the machine. by Anonymous Coward · · Score: 2, Insightful

    On a couple of occasions, there have been attempts to completely sidetrack us onto some other highly urgent project for a product that is not what we normally work on. This ignored several relevant points.

    1) We are primarily C/C++ programmers. These other products were primarily Java based.
    2) We knew nothing about the internal architecture of these Java-based applications.
    3) We are not co-located with the developers who work on these Java applications. Questions would have to be posed by phone/email/skype.
    4) Sidetracking us like this would result in our current product withering.

  8. Figure Out What Happened on April 7th by dcollins · · Score: 3, Insightful

    Looking at the graph in the article, there's on obvious inflection point that occurs on 7-Apr. Prior to that, the two lines (opened and closed items) are basically tracking each other. After that point, the opened items (red) retains the same slope; but the closed items (green) switches to a different, shallower (but thereafter basically constant) slope. And thus the two curves veer away from each other from that point.

    So: What happened on 7-Apr? Did one or more developers quit, burnout, take a long vacation? Maybe they haven't been replaced yet?

    After that I'd try real hard to stop new features from coming in, and start thumbing through a Brooks book to look for suggestions in an emergency like this.

    --
    We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
  9. Re:agreed dev time is the last to get allocated by Z00L00K · · Score: 3, Insightful

    If management were to add bugs into the bug tracker then you would have complete chaos - most managers don't know crap about what the bug reports are about and can't distinguish a bug from an enhancement. Let it be the responsibility of the developer to re-classify bugs that should be enhancements and submit such to a decision board for future enhancements.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.