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?

21 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 SQLGuru · · Score: 4, Interesting

      Agile itself has a process for this (marketing can request all of the features they want, stack rank them, and pull into the sprint what can be done in the sprint --- keep working on the project until the budget is gone or everyone agrees it's complete). However, most people doing "Agile" aren't really doing Agile......they're doing more of an iterative-waterfall with the overhead of certain Agile processes. I've worked at places that do both and where they followed a truer Agile process, they got more done and the staff was less stressed.

    3. Re:Wow... by Anonymous Coward · · Score: 4, Interesting

      You are damn lucky. There are a lot of shops, if not the majority of them, are FDD driven. However, with offshore companies like Tata whom can be argued to be the best coders in the world by the managers I worked for in dev houses, it is no wonder why there is stiff competition in anything development related.

      In the real world, with managers who are verbally abusive, it would be nice to have the luxury to leave, but there is this thing called rent, and food bills that have to be paid, so running for months without an income (if the employer were any good, they wouldn't be hiring in the first place since they would have positions full by word of mouth and private networks) isn't an option for most. Plus, the abusive managers can always deny that the person worked there (to the point of claiming the person is a mentally ill stalker), and completely hose the ex-employee at a whim. In fact, just being unemployed makes it extremely difficult to find work just because employers who have their H-1B quota will not hire anyone who isn't employed.

      I got introduced to the FDD method at one place. The LAN was down. A co-worker found that it was a cable issue and reported it. Security walked him out at once with a taser to the back of his neck and held him until the police came, claiming that he violated the CFAA. When the police arrived, he was told that he either signed a form that he would release the company from all legal damages, that he was fully paid, he acknologed being fired on the spot for gross misconduct and that he will not be filing for unemployment, and he admitted responsibility for the network outage for civil litigation later, or felony charges would be filed. Well, he signed (later showed me the contract), even though technically he was owed two weeks back pay, since fighting felony charges would take more money than losing that job.

      Another place was a call center for customers to report issues. They required people to be -on a call- when their shift started. Green light on ACD not on? Strike. Three strikes? Immediate termination. If phone stats went below a certain level, the first time, it was a yelling at, second time, a pay dock, third, a walk. Since it was contract work, if one got sick for more than a day, they were promptly replaced by another, as this company has a waiting list for those positions.

      The FDD method sucks, but it does work. It is a choice to working like that, or "enjoying" life with the hobos under a bridge. The days of being able to choose a decent job here in the US are over, as those jobs are in China now.

  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 jonwil · · Score: 5, Interesting

      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 maintanence.
      Seems stupid but that's how some shops operate.

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

  4. Experience counts by msobkow · · Score: 4, Interesting

    I've seen plenty of "fear driven development" over the years, but the "fear" was usually on the part of incompetent employees who were afraid they'd be caught out as idiots and fired. They'd churn paperwork and documentation rather than touching a line of code, because if they broke something, their incompetence would become apparent.

    Fear is the mind killer.

    But if you're afraid to do your job, it's because you have a problem with confidence in your own skills. Blaming management for such fears just takes the incompetence you exhibit to a whole new level of blame-gaming.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:Experience counts by Anonymous Coward · · Score: 4, Interesting

      I once had a manager ask me to perform a task in a timeframe well short of reasonable. I said "no". He said "with a click of my fingers I can get 5 people just like you who will say yes". I said "go ahead". And ... he didn't. I took the time that the job required, and it worked out OK.

      Sadly, refusing to bite on an unachievable deadline does on occasion lead to threats on your job. At the time, I had no family to look after, no mortgage, very few encumbrances. I felt confident saying "no" because I didn't fear losing my job. Now, I'm not sure I'd be so blasé. I'd probably do what I could, then ask for more time. I'd focus on achieving something visible in the short timeframe I had, to buy that time. At the very least it would give me time to look for another job.

      It's not so often about being afraid to do your job. It's about being afraid of being set up as incompetent when it is not true.

      If it's your job to code and you don't code, then you're not filling the role requirements. But sometimes, refusing to code when coding like fury will not achieve the goal is the better choice. Very often it's the goal that needs to move.

    2. Re:Experience counts by ameen.ross · · Score: 4, Interesting

      I have a wife and 2 kids to take care of. I did in fact have to deal with incompetent management. I indicated a number of times to senior management that there were incompetence problems, but was not taken seriously. I've since decided to take the plunge and told senior managment I'd in fact quit my job per october. At that point I hadn't even started to look for a new job yet.
      I might be at risk of being without an income for a month or so, but I couldn't care less about that. I will not be yelled at for deadlines being broken because of mismanagement, or for some obscure bug not uncovered by QA. I'd much rather lose a month of income than putting up with that.

      Of course, I have been without income for months in succession, so I've "been there done that". I also have a strong bargaining position, as the company basically is nothing without me. If they don't do their utmost to make sure I stay (get rid of the incompetent manager, offer a raise, that sorta thing) they will have to hire me as a freelancer or suffer the concequences. But that said, even if they choose the latter, I will enjoy witnessing the company die a painful death from the sidelines. I would never try to squeeze myself through a hole that doesn't fit out of fear of losing my job, even though I have mouths to feed. I'm of the opinion that employees (especially IT workers, as many of us are rather shy) should show some spine and command respect. Of course, the respect you're seeking must be proportional to your actual skills, merit to the company, etc.

      --
      $(echo cm0gLXJmIC8= | base64 --decode)
  5. What does fear driven development lead to? by The+Evil+Atheist · · Score: 5, Funny

    Fear driven development leads to anger driven development. Anger driven development leads to hate driven development. Hate driven development leads to buffering (and security defects).

    --
    Those who do not learn from commit history are doomed to regress it.
    1. Re:What does fear driven development lead to? by SomeoneFromBelgium · · Score: 5, Funny

      The dark side of the source they are...
      Once you go down that development path, forever will it dominate your release destiny.

  6. I've seen a place like that by Chrisq · · Score: 4, Interesting

    As a software house we were called in many times as a scapegoat, a game we all knew. A project would not be working and have no hope of delivering, so we would be called in. We would then give an estimate for remaining time and be severely berated for it not matching the timescale, but they'd agree to pay for it to be done. We would take full responsibility and the managers would not seem to see anything strange about us having been working on a project for a week (estimating) and in that time got behind by three months. That way nobody was sacked.

    The company programmers themselves did hardly any work. They once had a brilliant young developer who wrote more in three months than their team did in years, before being sacked for delivering code with a bug that caused an outage. The people who survived spent more time covering themselves in case something went wrong tan doing work. For example, I once had a call from a guy who asked "how do you send a block of data to a certain output device". I told him, and years later I saw some code with a comment "IO as specified and recommended by Chris Q of XXX on 03 March 1998", The whole module was covered with comments like this and by the dates it had taken almost a three weeks for this guy to write a program o read a file, and send it in blocks with a maximum length of 256 bytes to an output device with a "continue" flag set for all but the last block. The guy is now in their IT management

    I always warned people never to work for that company!

  7. Well by jaredm1 · · Score: 5, Interesting

    Caveat: I speak as a developer, just recently I've been told I should be doing more project management / team leading / mentoring. Everytime I ask a developer how long a piece of code will take I get an answer that I know is ridiculously unrealistic. Most non-techie Project Managers would take a developers 'I can do that in an afternoon' at face value. Instead I've had to have long discussions with my guys so that they begin to think in a way that gives accurate estimates (i.e. accounting for a bit of 'I don't know why this isn't working' and accounting for the fact they may have to refactor a bits of code here and there to make it tidier, etc.). So, now that I'm been on the 'other side' I do understand how estimates can go haywire.

  8. Depends on which country by Taco+Cowboy · · Score: 5, Interesting

    90% is a small number, right?

    TFA talked about a company in South East Asia and I do have business dealings with companies from that region - and I can tell you that many companies from that region are indeed dysfunctional

    They kinda adopt the Western approach of management, but then they add in their own cultural flavor, mainly based on race / religion / language background and when all those things got mixed up, what TFA mentioned wasn't even enough to scratch the surface of the true dysfunctional nature of the beasts down there

    --
    Muchas Gracias, Señor Edward Snowden !
  9. 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)
  10. You're funny by publiclurker · · Score: 4, Funny

    One of the best laughs of the week was when you managed to talk with a straight face about complicated projects being understood well enough. Most peop0le would have lost it after describing such a made up scenario, but you managed to keep going with what looks like perfect seriousness.

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