Slashdot Mirror


Ask Slashdot: Have You Experienced Fear Driven Development?

nerdyalien writes: A few years back, I worked for a large-scale web development project in southeast Asia. Despite formally adopting Agile/Scrum, development was driven based on fear imposed by managers. Scott Hanselman defines Fear-Driven-Development as having three parts. 1) Organizational fear has "worried about making mistakes, breaking the build, or causing bugs that the organization increases focus on making paper, creating excessive process, and effectively standing in the way of writing code." 2) There's also fear of changing code, which comes from a complex, poorly-understood, or unmaintainable codebase. 3) The most common one is fear of losing your job, which can lead to developers checking in barely-functioning code and managers committing to a death march rather than admit failure. My project ran four times its initial estimation, and included horrendous 18-hour/day, 6 day/week crunches with pizza dinners. Is FDD here to stay?

17 of 232 comments (clear)

  1. Wow... by DoofusOfDeath · · Score: 5, Insightful

    Is FDD here to stay?

    It seems like you're extrapolating from that experience, to thinking "FDD" is a current trend. AFAIK it's not. A small number of dysfunctional shops like that has virtually always existed. I'm going to go out on a limb and guess that you've only been doing software development for a few years, so you're working from a limited sample size.

    I have been in a few jobs where the managers were verbally and/or emotionally abusive. In both cases I left ASAP.

    1. Re:Wow... by MadKeithV · · Score: 5, Insightful

      A small number of dysfunctional shops like that has virtually always existed.

      90% is a small number, right?

      I'm joking, I've never had to work in a truly dysfunctional shop, and yet "fear-driven development" tends to make an appearance whenever stress levels get higher. Pressure makes people take funny decisions that they think are "safe", such as not touching a legacy code base for another 5 years because "it works and we don't want to break it", until it finally collapses under its own weight and technological advancement (in the case I'm thinking of it was the lack of multithreading and 64bit support).

      Often its the fear of other people's reactions if you stick your neck out and get it wrong that will doom you to inaction. It helps to remind yourself and others constantly that you cannot have improvement without change, and the only way to do nothing wrong is to do nothing. Build up trust at detecting and *recovering* from mistakes is at least as important as having a process that avoids mistakes. Mistakes happen. Learn to deal with them instead of expending inordinate amounts of time trying to avoid them.

    2. Re:Wow... by Z00L00K · · Score: 3, Insightful

      And you still forget Management by Confusion.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    3. Re:Wow... by coofercat · · Score: 3, Insightful

      ...and also, FDM - Fear Driven Management.

      Eg. "Thou shalt not rework that heap of shit to unblock countless other ideas and projects because it's way too scary".

  2. Fear of changing code.... by justaguy516 · · Score: 5, Insightful

    [2] is a very common problem, not just because of a badly written code-base, but mostly (IMHO) because of people not having the time to understand a complex piece of code. Ends up in 'nearly' the same code being written in a dozen different places. In my knowledge, it doesn't immediately screw things up, but, over time as the garbage accumulates leads to extremely interesting failure scenarios.

    1. Re:Fear of changing code.... by rioki · · Score: 3, Insightful

      Except that "new development" and "maintenance" are just labels. As long as there are no new user visible features (apart from improved speed and smaller memory footprint) all development is "maintenance". I understand the rationale between the maintenance / new development budgeting and can totally work within it's framework. But sometimes you just need to clean up code before you can add this new feature (100% "new development") and sometimes you need to replace a legacy database system with a modern one to keep the application running smoothly (100% maintenance). You try to answer the question "why am I doing this?".

      The "you can't do that because we don't have the budget for maintenance" is just a lame excuse for two situations, either you just don't have the budget to do it or your manager is scared that you will break something. In all cases it is just a failure to communicate properly, which is especially lame when prefixed with "I would like to let you do this, but..."

    2. Re:Fear of changing code.... by MadKeithV · · Score: 5, Insightful

      I have also seen/heard of circumstances where "doing the minimum to keep the thing working" is allowed but actually improving the code is not because improving the code counts as "new work" and comes from a different budget than maintenance. Seems stupid but that's how some shops operate.

      "The minimum to keep the thing working" nearly always implies improving the code. All developers need to realize this and stop this silly false dichotomy between "maintenance" and "refactoring".

    3. Re:Fear of changing code.... by rioki · · Score: 4, Insightful

      No it compares to: You told(1) me to inflate the front left tire, but the tire was worn and had a hole, so I needed to change the two front tires. You should also consider changing the back tires and the brake pads look worn, but it's your car.

      (1) "I don't care how, make it work!"

      I am a lead developer and bill against two accounts when developing (a third account when I tell people what they should do). I resolve the issue by simply looking at why I started working on something. Did I start working because bug or performance issue forced me to improve the bit (maintenance) or did I start adapting a piece of code because of a feature request (new development). By keeping the "boy scout mentality" (leave the code in better shape than you found it) my peers and I are able to keep a body of software running that was originally written in 1993. Just because you are slightly bending accounting nitpicking does not mean you go gung ho hacking though the code. By the way we are going to release V8.1 next month.

  3. 3rd world by goarilla · · Score: 5, Insightful

    The only thing I will say is that emerging economies need Unions !
    This machiavellian style of management is akin to slave labor.

    1. Re:3rd world by goarilla · · Score: 2, Insightful

      Democracy Yuk. You end up with replacing machiavellian dictators with machiavellian (popular) politicians.
      But as long as the union bosses stand up for their members then yes a little fight fire with fire is acceptable.

    2. Re:3rd world by goarilla · · Score: 4, Insightful

      I'm a European, we've had fairly decent unions over here.
      That your unions were run by maffia front-man for decades reflects on them personally
      not on unions as a concept. I accept that you're skeptic.
      But somebody (unions, governement) does need to reach for and uphold a decent quality of living and good working conditions are crucial to that.

    3. Re:3rd world by goarilla · · Score: 3, Insightful

      Let us get to a point where most of our people have jobs, and then we can discuss more unions, until then unions are just yet another problem keeping us back in the dark ages.

      And you believe that disbanding the unions will make everyone happily employed
      In the midst of the Industrial Revolution we were in exactly the same position you are now
      And it took unions and other righteous men to break the situation.
      There has actually been a movie about this situation http://www.imdb.com/title/tt01.... See it and learn from it before you call me ignorant and pompuos.

  4. Free market by Thanshin · · Score: 2, Insightful

    If employees stay while working 18-hour/day, 6 day/week, it's because they are unable to find a better job. Thus, they have the best job they can find. So, there is no reason for the corporation to change their ways.

    Therefore, the problem lies not in the current job but in the job offer. Thus, to solve it, the employee needs to find a way to get better offers:
    - Develop new skills/ get new knowledge
    - Switch city/country
    - Self employment

    Solutions based on forcing the current job to become individually better won't usually work as long as the change is local. (A local union, for example, will simply make external corporations more profitable and able to offer a better salary for the same job). Solutions based on forcing ALL corporations to become a better workplace are usually too slow from a personal PoV.

    1. Re:Free market by Princeofcups · · Score: 5, Insightful

      If employees stay while working 18-hour/day, 6 day/week, it's because they are unable to find a better job.

      That's called blaming the victim.

      --
      The only thing worse than a Democrat is a Republican.
  5. Re:Well by Drethon · · Score: 3, Insightful

    For me on the development side when I give an estimate with no accounting for problems along the way the answer is typically, great, here are your hours. When I get an estimate with a realistic estimate of problems that will pop up along the way I'm told, here is a quarter of what you asked for, see how far this gets you. Typically I tend to get less hassle if I ask for the minimum and then ask for more hours as needed (multiple times) with the reason why I need more hours (ex the same reasons I would have given for those hours up front).

  6. Seriously? This is a post? by bfwebster · · Score: 5, Insightful

    Not to pile on here, but there is nothing new or recent about fear-driven projects of any kind, much less fear-driven IT projects. All you need to do is read some of the classic books on IT project management, including The Psychology of Computer Programming by Jerry Weinberg (1971), The Mythical Man-Month by Fred Brooks (1975), and Death March by Ed Yourdon (1997).

    Back in the early 90s, I was chief software architect for a start-up developing a large, complex and novel commercial software product. After working long hours for years, we had missed our original release date and were struggling to come up with a new date that we could be sure of making. Top management (CEO, CFO) was considering carrot/stick "incentives" to "motivate" the engineering team to make a certain date; one of the senior developers stopped me in a hallway by the engineering offices and asked, "Don't they realize they're dealing with grown-ups back here?"

    P.S. At the risk of sounding like an old fart, I remain appalled at the profound lack of familiarity among far too many IT industry practitioners of the essential books on software engineering and IT project management. As I have said ad infinitum and ad nauseum, not only do they keep re-inventing the wheel, they keep reinventing the flat tire.

    --
    Bruce F. Webster (brucefwebster.com)
  7. Thoreau already covered this by Shoten · · Score: 3, Insightful

    From Thoreau, in Walden:

    The mass of men lead lives of quiet desperation. What is called resignation is confirmed desperation. From the desperate city you go into the desperate country, and have to console yourself with the bravery of minks and muskrats. A stereotyped but unconscious despair is concealed even under what are called the games and amusements of mankind. There is no play in them, for this comes after work. But it is a characteristic of wisdom not to do desperate things.

    Based on this, it seems to me that every one of us who has ever been involved in development projects for any significant amount of time has encountered fear as a major force in one or more projects. For that matter, I'd say we've all encountered it as a force in many things we've been a part of.

    --

    For your security, this post has been encrypted with ROT-13, twice.