Slashdot Mirror


Ask Slashdot: Development Requirements Change But Deadlines Do Not?

cyclomedia writes "Over a number of years my company has managed to slowly shift from a free-for-all (pick a developer at random and get them to do what you want) to something resembling Agile development with weekly builds. But we still have to deal with constant incoming feature changes and requests that are expected to be included in this week's package. The upshot is that builds are usually late, not properly tested and developers get the flak when things go wrong. I suspect the answer is political, but how do we make things better? One idea I had was that every time a new request comes in — no matter how small — the build gets pushed back by 24 or even 48 hours. I'd love to hear your ideas or success stories. (Unfortunately, quitting is not an option)"

221 comments

  1. Agile? by pixelpusher220 · · Score: 5, Funny

    We have a bastardized combo of waterfall and agile here. I call it the Drunken Sailor approach.

    --
    People in cars cause accidents....accidents in cars cause people :-D
    1. Re: Agile? by jd2112 · · Score: 1

      What DO you do with a drunken sailor?

      --
      Any insufficiently advanced magic is indistinguishable from technology.
    2. Re:Agile? by Anonymous Coward · · Score: 1

      We're more of the shitpile approach... I just tell my boss that every time he adds a new feature that "must" be on the new release how long that feature should take ( plus 10 - 15% ) and that it will take that much longer for the release. Then he can either choose to have that feature added to the next release or remove a feature that hasn't been worked on yet to get it out the door when he wants it done.

      The biggest problem is that most of his new features need to be done "yesterday" and there's nothing to do but drop everything and add what he wants...

    3. Re:Agile? by Chrono11901 · · Score: 3, Informative
    4. Re: Agile? by Anonymous Coward · · Score: 0

      Sounds like they need Project Managament that follows PMBOK and is supported by upper management.

    5. Re: Agile? by Anonymous Coward · · Score: 0

      You don't want to know.

      Ok, I'll tell you anyway. It involves a barrel with a hole in it.

    6. Re: Agile? by MarkusQ · · Score: 4, Funny

      We have a bastardized combo of waterfall and agile here. I call it the Drunken Sailor approach.

      What DO you do with a drunken sailor?

      Typically, you start working er'ly in the morning. And stay at it till the even'n's glomming.

      -- MarkusQ

    7. Re: Agile? by HaZardman27 · · Score: 1

      It depends. Is said sailor drunk during acceptable hours, such as the evening, or is it early in the morning?

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
    8. Re:Agile? by kybred · · Score: 4, Informative

      We use the Lava Flow methodology.

    9. Re:Agile? by Sponge+Bath · · Score: 5, Insightful

      ...his new features need to be done "yesterday"

      If you explained the flow of time to him, you would be accused of not being a team player.

    10. Re: Agile? by Teancum · · Score: 1

      It depends. Is said sailor drunk during acceptable hours, such as the evening, or is it early in the morning?

      At this point in time, are you sure of the gender or even gender preference of the said sailor?

    11. Re:Agile? by leuk_he · · Score: 2

      Thx for the link, but then the only reference to avalanche is mainly that wiki article... i am suprised it was not taken down without citations.

    12. Re: Agile? by Anonymous Coward · · Score: 1

      put 'em in a scupper with a hose pipe in 'em!

    13. Re:Agile? by interval1066 · · Score: 1

      Rated funny, but all too true. Almost EVERY shop I've worked at said they were Agile but really just ended up being agile/waterfall. its getting so that every job I go for (consultant here) who claims to be agile makes me just grin to myself. Once I caught one of the engineers I was interviewing with let out that same wry grin while the HR manager expounded on how 'agile' the company was. I've worked in and around silicon valley almost all my profressional life and I've never worked a smoothly functioning agile shop, as far as my understanding of the process is. I may be a fool, but I think I have a good grasp on what agile is from all the literature and online material I've read. Seriously? Who is using it to success?

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    14. Re: Agile? by interval1066 · · Score: 3, Funny

      What DO you do with a drunken sailor?

      Maybe your experience is different but I was never put in the hold with the captain's daughter. Either that or she needed a shave and I wasn't interested in holding the mirror. It was a long voyage though.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    15. Re: Agile? by LifesABeach · · Score: 1

      I'm thinking that Facebook, and Googles business model is to hire more off shore 20-somethings when the old crop gets to about retirement age, 28.

    16. Re:Agile? by RabidReindeer · · Score: 1

      ...his new features need to be done "yesterday"

      If you explained the flow of time to him, you would be accused of not being a team player.

      Well, after all, "All You Have To Do Is..."

    17. Re:Agile? by Anonymous Coward · · Score: 0

      Is the "Drunken Sailor" an actual pattern? If not, it TOTALLY shoule be. :)

    18. Re:Agile? by plopez · · Score: 1

      At least on a "Drunken Sailor" project you get somewhere. It's the "Brownian Motion", aka "Random Walk", projects that drive me nuts.

      --
      putting the 'B' in LGBTQ+
    19. Re: Agile? by OakDragon · · Score: 2

      And Wednesday is your day in the barrel.

    20. Re:Agile? by Roadstar · · Score: 1

      We have a bastardized combo of waterfall and agile here. I call it the Drunken Sailor approach.

      Sounds like a common combo I'm also familiar with: http://www.halfarsedagilemanifesto.org/

    21. Re:Agile? by bickerdyke · · Score: 1

      I worked in a real agile shop once. Sometimes we were agile to a customer feature wish in the morning and shipping him the update in the afternoon.

      Of course this borders the realm of chaos but worked surprisingly well. But you need a small team with very good communications and customers who understand that it's them who are doing the testing.

      And the funny thing: This never has been called "agile". It was way before it became a buzzword. We just called it "normal".

      --
      bickerdyke
    22. Re:Agile? by Anonymous Coward · · Score: 0

      Last time someone asked me about my development process my reply was "carrot and stick"

    23. Re:Agile? by mcvos · · Score: 1

      Everybody claims to be Agile, but few really are. Often they just do a daily stand-up (or even a sit-down), don't really plan, and generally mess about.

      Process is important in Agile, but it's a flexible process that you refine during retrospectives after every sprint.

      I'm currently at my first gig where they're actually doing Agile properly, and it works very well. Best work environment I've ever been in.

    24. Re:Agile? by L4t3r4lu5 · · Score: 1

      Well, obviously the way to handle this is to find your manager and...

      Keelhaul that filthy land lubber, send him down to the depths below!
      Make that bastard walk the plank, with a bottle of rum and a Yo ho ho!


      Pretty NSFW, sound is mandatory

      --
      Finally had enough. Come see us over at https://soylentnews.org/
    25. Re: Agile? by Anonymous Coward · · Score: 0

      Put em in the long boat and up she rises!

    26. Re: Agile? by Anonymous Coward · · Score: 0

      It depends. Is said sailor drunk during acceptable hours, such as the evening, or is it early in the morning?

      As a former sailor, acceptable hours for being drunk begin at 12:00:00 am and end at 11:59:59 pm.

    27. Re: Agile? by bbsalem · · Score: 1

      Yes, and you get what you pay for, half-assed results IMHO. Agile is just a marketing and political ploy, designed to make managers look good. It is bogus. Results still depended on implementation and keeping feature bloat low. I would give huge push back even so far as to find the door or cause the asshole calling the shots to find the door. I wish more assholes were pooped out of some of these organizations, especially the MBAs and financial types, flesh 'em down the tubes.

    28. Re:Agile? by daem0n1x · · Score: 2

      I had a manager to whom all problems could be solved with "a function that receives a string and returns another" and "can be done in 10 minutes".

      He kept accepting project over project over project, and change over change over change. When I told him that we were already busy with one project or feature, he used to tell us "no problem, you can fit this one in your idle time, when you're slacking off". And I used to ask "which idle time?". With no answer, of course.

      Fortunately, someone higher up noticed the insanity and ended it. Our team was assigned to other manager and everything started working fine. It was great to be able to work 8 hours a day instead of 12, but get stuff done and delivered on time and schedule, instead of permanently delivering horribly buggy software, way beyond deadline.

      It's not about working more, is about working better. Behind an overworked team lies a lazy and incompetent manager.

    29. Re: Agile? by LifesABeach · · Score: 1

      I have found that a simple grin is more that enough to cause a tyrant to spin uncontrollably like a top.

    30. Re: Agile? by Anonymous Coward · · Score: 0

      As a former sailor, acceptable hours for being drunk begin at 12:00:00 am and end at 11:59:59 pm.

      Hey- don't real sailors use 24-hour time? Or is 24 hour time only used by pirates?

    31. Re: Agile? by bbsalem · · Score: 1

      Yes, you may be right. The thing to be communicates is "I don't take you seriously, and never will." That is devistating.

  2. Make a deadline for additions by kawabago · · Score: 4, Interesting

    Any additions must arrive 3 days before weekly build otherwise they come out the following week. That is a perfectly reasonable approach to keep things moving on time.

    1. Re:Make a deadline for additions by Anonymous Coward · · Score: 5, Funny

      I go upstairs to the salesman who promised that feature to the customer without changing the deadline, grab him by his shirtcollar, and tell him, "You worthless overpaid coke-addled dumbfuck...if you ever, ever pull that shit on me again, you'll be explaining to the customer why you're talking like a soprano and walking like a cowboy."
       
        -- Ethanol-fueled

    2. Re:Make a deadline for additions by Anonymous Coward · · Score: 5, Insightful

      Pretty much this. Don't change the deadline of the weekly build, set different dates for when the feature appears. One thing our team did was state up front that no new feature would appear for two weeks. Not today, not yesterday, not at the end of the week. Our policy became "all new stuff takes two weeks". This let us spend time fixing things and gave us a buffer to introduce and test stuff before it got rolled out. It ticked off some managers at first because they were used to stuff getting set up or committed right away, but we stuck to it and they eventually learned they had to plan ahead. Well, most of them learned.

    3. Re:Make a deadline for additions by intermodal · · Score: 1

      It's pretty much the only way. push through and pull off the unreasonable, especially repeatedly, and you just poison your own future.

      --
      In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
    4. Re:Make a deadline for additions by Sponge+Bath · · Score: 1

      ...talking like a soprano and walking like a cowboy.

      Swaggering Tony Soprano: I wipe my ass with your feelings.

      Come on pop culture sponges, name that episode.

    5. Re:Make a deadline for additions by Jane+Q.+Public · · Score: 4, Insightful

      "Any additions must arrive 3 days before weekly build otherwise they come out the following week. That is a perfectly reasonable approach to keep things moving on time."

      I disagree. ANY additions that come in during the week are scheduled for the release after the current one. If they are really, really, desperately urgent then they replace the current release, with the current release delayed by a week.

      This makes it painfully obvious to management that unscheduled changes come at a cost. They have to pay that cost, sooner or later and one way or another. Period. Best if those costs are shown up-front and in their face, rather than hidden at the expense of team morale and product quality.

    6. Re:Make a deadline for additions by jimshatt · · Score: 1

      Precisely. That way, you can still live up to being 'agile' (which doesn't mean you can jump through hoops). Bits of work (sprint, iteration, whatever) being worked on cannot be changed in mid-air.

    7. Re:Make a deadline for additions by Anonymous Coward · · Score: 0

      This.

      At date X you have a pile of tasks to complete by date Y. Anything coming in after X gets put to the next release due date Z. Release Z's pile is a large cloud of tasks that is up for discussion on day Y + 1, whereupon it's waveform collapses into a pile that can be realistically achieved by Z.

      _That_ is where management gets it's control (control = adding tasks, determining pile for Z). It can shitcan items from Y too.

      WHERE X Y Z;

      - easyCoder

    8. Re:Make a deadline for additions by Anonymous Coward · · Score: 0

      Unless you're lucky enough to find a symbiotic relationship instead of a parasitic one. In that context your future has a potential to be nurtured with initiative. Good luck.

    9. Re:Make a deadline for additions by TapeCutter · · Score: 2

      I disagree.

      Irrelevant, you have no idea what the GP's source tree and processes look like. Also you appear to be talking about delivering a build to the testers rather than the end customer. If not then how do you handle a change that you know will take at least a month to test after it is added to the build?

      Best if those costs are shown up-front and in their face, rather than hidden at the expense of team morale and product quality.

      This^ is the actual solution, it's called "managing up" in buzzword bingo but we all know it as "office politics". As a "boomer" with 20+yrs as a corporate data plumber, I'm still learning how to do it right.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    10. Re:Make a deadline for additions by complete+loony · · Score: 3, Informative

      Branch the source code!

      You should *always* have a stable base version that can be released at a moments notice. Each feature should be developed and tested on a branch. If the feature isn't "done", it isn't merged. If you discover a bug after merging you back it out again and review how you missed it.

      Pausing development of the current set of half-finished features so you can shift priorities onto something else, should be as simple as creating a new branch and ignoring the others until your next sprint.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    11. Re:Make a deadline for additions by b4dc0d3r · · Score: 3, Insightful

      Making a new policy like that will not happen in an environment with "feature changes and requests that are expected to be included in this week's package". The expectation is there, and the history is there. Making a huge change like that requires getting everyone to change their expectations.

      We don't have enough information to give a diagnosis. What kind of software gets a weekly build, where people expect features to be in that package and usable?

      I don't see any testing - commits happen, a weekly build happens, and then what? There has to be some sort of stabilization period where someone is poking at the solution to find problems - whether it's an analyst, QA team, or user acceptance.

      We don't know what parts resemble Agile - so we can't say you freeze your sprints, because you may not do sprints. Every week you seem to get to whatever you can - that's not a sprint.

      And Agile doesn't have arbitrary deadlines. If you get 5 small requests that you can squeeze in, but your policy is every change pushes the deadline out, you now have 5 days. Deliver early and you undermine your own policy by proving it's arbitrary.

      1) There is no testing, and that is resulting in crap releases.

      2) Code seems to go live too quickly, it needs time to mature

      3) I don't see any analysts in the picture, so it's still a free for all. It might be better, but it's still chaos.

      You need to start explaining that this is not how development is done. You have terrible results because there is no process. Developers get blamed because they are apparently the only people responsible for getting anything done.

      If anyone wants different results, something has to change, and everyone is going to have to take a hit equally. It won't be equal of course, but if you want to CHANGE the results, you have to CHANGE something. Tell everyone the situation sucks and things are changing, and explain why, from whatever applies above.

      Now that you have everyone's attention, and they are feeling like they won't ever get what they want, drop the bomb. Now you have set the stage for "all new stuff takes two weeks". This means two branches - branch on Monday for example, and fixes go into the release branch, and new features go in the new branch. Weekly build comes from the release. Merge nightly. Or skip the two week rule and put in some real discipline.

    12. Re:Make a deadline for additions by Jane+Q.+Public · · Score: 1

      "Irrelevant, you have no idea what the GP's source tree and processes look like. Also you appear to be talking about delivering a build to the testers rather than the end customer. If not then how do you handle a change that you know will take at least a month to test after it is added to the build?"

      Good point. I wouldn't say irrelevant, but you are correct that I do not know his particular situation and my comment might not apply.

    13. Re:Make a deadline for additions by Anonymous Coward · · Score: 0

      Additions go on the story wall for next sprint planning. Period.

    14. Re:Make a deadline for additions by Anonymous Coward · · Score: 0

      In my old job, I used to have a hard and fast rule that I would not push out code changes on fridays. Mostly because I didn't feel like dealing with the inevitable calls on the weekend from my retarded boss bitching about something not working.

      All code changes must be accepted by end of day thursday. Friday was for testing and bug fixing. Occasionally a bug fix broke something on saturday and I would laugh and hang up the phone, but for the most part this saved me a lot of unnecessary weekend calls.

    15. Re:Make a deadline for additions by dfghjk · · Score: 1

      "Our policy became "all new stuff takes two weeks"."

      Sounds like you've really caught the spirit of "Agile". Way to be responsive to the customer!

      This shows that problems aren't solved by arbitrary process declarations. People who don't want to understand what's needed won't. There will always be rationalizations for crappy work.

    16. Re:Make a deadline for additions by dfghjk · · Score: 1

      You mean you've talked yourself into something being 'agile' that's more to your liking. 'Agile' is about being responsive to customer needs; too bad you don't like it.

    17. Re:Make a deadline for additions by intermodal · · Score: 1

      That was a better approach when people worked a full career with one company. These days, the only companies that survive that long are the parasitic ones, and those tend to absorb the symbiotic ones...

      --
      In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
    18. Re:Make a deadline for additions by jimshatt · · Score: 2

      Being responsive to customer needs doesn't mean you have to do everything they say. Most of the time, though, a customer doesn't really 'need' as much as they pretend they do. And most of the time, if your increments are small enough, this isn't a big problem.

    19. Re:Make a deadline for additions by Anonymous Coward · · Score: 0

      Disregard...

      -- Ethanol-fueled

  3. When requirements change in-sprint by NastyNate · · Score: 5, Interesting

    The sprint should start over. It encourages stakeholders to not interrupt the current sprint and to wait for the next sprint to shift priorities or introduce requirements.

    1. Re:When requirements change in-sprint by Anonymous Coward · · Score: 0

      That's not feasible in most environments. There is also very little likelihood that one of the developers is going to have the authority to implement such a controversial decision as automatic timeline resets on feature changes.

      Developer, you already know how management wants you to handle this: Work 60 hours while billing 40. However, you can try to give them additional proposals. What my last employer did was create stories in the next sprint for feature changes. This had the advantage that customer whims were well documented and everyone could see in the metrics how much time they ate up The drawback was that it really did eat up a lot more time than it should have, because developers would fully implement the old request then scrap it in a week to work on the revision.

      My current employer is more of the work 60, bill 40 type of place and customers don't even look at mock-ups until code has started to be written, because they have no reason to think that last minute changes are bad. After all, the sprints are being completed on time and feature-full. I am not aware of a middle ground between the two approaches.

    2. Re:When requirements change in-sprint by Anonymous Coward · · Score: 0

      We struggled with that too, but if you want management to say they are "agile" they have to accept breaking a sprint is a fact of life.. No developer should implement an agile process without being able to call the process broken at any given time. Breaking the sprint is basic agile development and it's a must-have rule. Don't let managers call it agile if they don't give you this.. I've found several managers are much more adaptive after they realize what they want is the "old" methodology. The last thing a manager wants is to be labeled as "old school" these days. It's not easy, but you have to change their mindset and hit them with the business lingo.

    3. Re:When requirements change in-sprint by Anonymous Coward · · Score: 0

      Here's what my previous boss would do:

      If you want to add something NOW, after we've already agreed to a specific plan, then there are several options:

      Remove some other requirement,
      Pay more money and/or increase staffing,
      Extend final deadline, and tack it into another sprint.

    4. Re:When requirements change in-sprint by Anonymous Coward · · Score: 0

      Well, that don't work to well with "Agile" the whole reason for the Agile process is that you don't have a clue where you are running to when you develop and can change direction as the specification changes. In the old day this kind of process was called "panic"... Actually a better name for it than Agile.

  4. Charge them by Anonymous Coward · · Score: 0

    For any change, have them sign a document and charge them.

  5. New requests go in future builds by Anonymous Coward · · Score: 1

    New requests should not be integrated into current or even the build, but should be kicked into the long grass and added as time permits. Do not make agreements to have new features integrated into a particular release, just state that they gradually appear in time. Then there is no pressure and the quality of the builds will go up.

  6. Scrum by sanosuke001 · · Score: 4, Interesting

    Tell them that you do 1-2 week sprints where you have a set amount of tasks. If they want new things added, they have to wait until the next sprint. Give them a login to your tracker site so they can view the progress/status. Have them come to sprint meetings as well so they have some input.

    --
    -SaNo
    1. Re:Scrum by Kjella · · Score: 2

      Tell them that you do 1-2 week sprints where you have a set amount of tasks. If they want new things added, they have to wait until the next sprint.

      Unfortunately at my job the boss tells me what to do, I don't tell him what to do. All I can do is give him options, like saying there's no time for everything so what would he like to put on the back burner. If he tries the usual BS on how surely you can squeeze it in there I usually point out that if there was room in the original plan we'd have added more tasks until it was full, we don't have any time set off for goofing around. I'd also point out how inefficient it is and how these rushed solutions ruin the overall quality, but if they don't listen hey... I only work there, I don't run the place. If the same retarded rules and system applies to the other employees too, I'll probably still come out ahead on reviews even if you're driving with the handbrake on. It also keeps you sane when the WTFs are of a kind or on a level you can't do anything about.

      --
      Live today, because you never know what tomorrow brings
    2. Re:Scrum by hey! · · Score: 3, Interesting

      I second the nomination of Scrum, which complements agile development practices.

      Scrum is about managing development priorities. You can't work efficiently if you keep changing priorities every day because nothing will ever get finished. On the other hand, if you *never* change development priorities until you've finished everything you set out to do, developers are happy but they might not be working on things the business needs or wants.

      The truth is that businesses have to respond to change. A rival announces a new feature; the price of some related product or service changes dramatically; regulators threaten to fine your company for some reason; a PR scandal forces your CEO to get up and make public promises you'd never imagined. Things like these can change a business's priorities, and if your employer's priorities change, yours ought to as well. Just not so often you never manage to finish anything.

      Scrum strikes a sensible balance between changing direction so often you never finish anything, and putting your head down and finishing things but then finding out your employer actually needed something else. Don't get me wrong, if you *can* keep the same priorities for months on end, you should. But in many situations you don't have that luxury. You have to respond to business changes, while at the same time finishing what you set out to accomplish.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    3. Re:Scrum by AmiMoJo · · Score: 4, Interesting

      We have a board with magnetic labels that we write tasks on. When a new task comes in it gets a label and is stacked under the name of the person assigned to it. Anyone wanting to give us a new task has to physically push the other stuff we have down the board in order to stack their's on top, or accept a lower priority.

      We started adding time estimates to the tasks with a simple green/amber/red colour coding system too. We assign the colour before handing the label to the boss. It's very handy when you have multiple people wanting you to do stuff because they can fight out priorities between themselves.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    4. Re:Scrum by ATMAvatar · · Score: 3, Insightful

      Interrupting a 1-week sprint occasionally due to business needs is fine. Doing so on such a regular basis that a member of the development team feels the need to beg for help in a public forum (Slashdot, no less) is indication of a rather large management failure. Blaming schedule slips on the devs after arbitrarily changing direction shows that management has no concern or respect for them.

      I know the submitter doesn't want to hear this, but if his description is even remotely accurate, he needs to start looking for another job (yes, it is *always* an option).

      --
      "They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety."
    5. Re:Scrum by Anonymous Coward · · Score: 1

      Tell them that you do 1-2 week sprints where you have a set amount of tasks. If they want new things added, they have to wait until the next sprint. Give them a login to your tracker site so they can view the progress/status. Have them come to sprint meetings as well so they have some input.

      Too many words, and they have to learn your language.

      Ask them how much money is on the table, and then calculate your team's rough cost per sprint. (8 developers, ~60K each, two week sprint = (8 *(60/26)) = Tell them that they're interrupting a $X effort, and to restart it, will cost ($X in addition to the money that's currently committed), so if they deal isn't worth at least 2*$X in profit (not revenue), don't even think of interrupting the sprint.

      The key is for you to learn their language, and their tools. It is uncomfortable, but that's what you need to do to communicate effectively. In addition, it leaves the door open for those big sales, where it really might make sense to interrupt the sprint.

    6. Re: Scrum by Mabhatter · · Score: 1

      And it's the BOSSES job to put 40 hours of work into the bucket each week with expectation that it can be a achieved. Not to just have a rolling list and HOPE developers hit what's important. Hesse systems break down because the boss is the one responsible for managing deadlines and expectations, not the developers. If the boss doesn't know what a reasonable quantity of work to accomplish in a week is, they are not really the boss.

    7. Re: Scrum by Mabhatter · · Score: 1

      I laughed when changing jobs wasn't an option.... FIRING YOU certainly is an option.

      My company works strictly to tickets, but its a legacy system, not a product. Don't other places work against bug or enhancement requests versus normal development? We have items that are "projects" and items that have complex dependencies, so a certain number of items have to be completed at once, but I guess I don't understand how developers just "add features" each week to a system with out some formal inputs...

      I must be spoiled with really good managers or something.

    8. Re:Scrum by Anonymous Coward · · Score: 0

      ... rather large management failure ...

      "... Anything I don't understand is easy ... " - PHB, 'Dilbert'

    9. Re:Scrum by hey! · · Score: 1

      You totally missed the point. I'm saying you *don't* interrupt the sprint. You make the sprint long enough to get things done but short enough that changing business priorities get injected into the development process in a timely fashion.

      A 1 week sprint is, in my opinion, almost always going to be too short. 30 days is almost always a reasonable sprint length, and as you say if something is *really* pressing you can always interrupt it. A one week sprint that you can interrupt is almost meaningless as a sprint, excepting of course bona fide crises (e.g. man-rated emergencies).

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  7. Making it better by Anonymous Coward · · Score: 0

    We use agile and determine our teams average velocity per 2 week iteration to be able to gauge how much work we can do during a 2 week period. The team commits to a certain amount of work for two weeks during a planning meeting. If new things need to come in after the planning meeting, something we were going to work on will need to go out to replace it. Otherwise, the new item goes in the backlog for consideration in the next iteration.

  8. Say No by Anonymous Coward · · Score: 1

    I learned the "say no" trick. Basically I present them with what I'm working on right now and say "this can't all happen, what would you like to take out". It doesn't make me super popular, but I've found most people appreciate honesty over disappointment.

    1. Re:Say No by Chrono11901 · · Score: 2

      I second this... I would also drive home the fact that the lack of quality is a direct result of them interfering with the development process.

    2. Re:Say No by TapeCutter · · Score: 1
      Works well provided you don't actually use the word "no". ;)

      most people appreciate honesty over disappointment

      Only if you consistently deliver on your own promises.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    3. Re:Say No by Immerman · · Score: 2

      If you're not consistently delivering on your own promises, then by what definition are you acting honestly?

      --
      --- Most topics have many sides worth arguing, allow me to take one opposite you.
    4. Re:Say No by Anonymous Coward · · Score: 0

      I learned the "say no" trick. Basically I present them with what I'm working on right now and say "this can't all happen, what would you like to take out". It doesn't make me super popular, but I've found most people appreciate honesty over disappointment.

      Have you ever got any helpful answer to that question?

      My boss just says, it all needs to be there. Any objection is met by "I don't care, it is your job".

  9. Simple solution by turgid · · Score: 4, Insightful

    But we still have to deal with constant incoming feature changes and requests that are expected to be included in this week's package.

    The feature requests can come in at any time, but tell "them" that they will get prioritised and planned once per week and the important ones will get done in that time box. You will not change course between planning sessions.

    After three or four weeks "they" will see that progress is quicker over all and the code is more stable.

    Push back on your management. As a professional, it's your responsibility to do what you can to ensure the quality and timeliness of the end product. This is part of that responsibility.

    1. Re:Simple solution by Teancum · · Score: 3, Insightful

      This really takes a strong manager, and especially a CEO who can stand up to customers on stuff like this and especially stand up to the sales team saying "no, we won't do that". Any time there is a feature request after the "contract" is signed, it should cost the customer money. Usually it should cost that customer a whole lot of money. Keep in mind, any time there are changes like this, it really does cost the company as a whole quite a bit of money so by demanding that customers pay for those costs you are really asking for the customer to cover the cost of the product itself.

      Indeed, if you are "pushing back" on management, you might even mention that it is their fiduciary responsibility to make sure that the customer pays for the things that cost the company money. That is one way to keep this kind of thing under control, as when it starts to cost the customer money they usually shut up.... or are willing to pony up a huge pile of money for things that really do matter to them. At that point, you have the option of either hiring more employees or at least reassigning people as necessary.

      Yes, I know the old saying that adding programmers to a late project only makes it later. But you can take "other projects" off of developers who are running behind and do some things to at least help out. Or at least insist that the deadline needs to be pushed back plus some extra charges.

      This isn't something that normally can be done by a mere grunt employee though. At best all you can do as an employee is to encourage this kind of behavior in your managers and hope they stand up on your behalf to those who don't give a damn about the pressures you are under. If you have a crappy manager, there isn't much hope other than quitting or trying to convince the CEO that your boss is worthless. That is a risky endeavor on multiple levels.

      I also know that telling a customer they can't have something is risky in terms of possibly losing a contract. Sometimes you have to pick and choose, where I've seen some good managers tell a customer "no", that customer leaves, and then the customer comes crawling back begging to have the company's services again (when you should charge an even higher price). That is the ideal situation, where you are good enough that people will pay a premium for your services and are willing to at least treat you as an equal rather than shitting all over you. When the CEO lets the customer shit all over him, you should be aware that shit runs downhill and only gets worse as it moves down the food chain.

    2. Re:Simple solution by Anonymous Coward · · Score: 0

      ... stand up to the sales team ...

      How many Development departments have a charge-back process? Where any off-contract work, any last-minute feature is charged to the sales department.

      Did anyone authorize the sales department to sell the new system with happy feelings and a new car smell? Another problem is: the sales clerk can just invent vapour-ware and tell everyone that he's a team-player.

    3. Re:Simple solution by Teancum · · Score: 1

      ... stand up to the sales team ...

      How many Development departments have a charge-back process? Where any off-contract work, any last-minute feature is charged to the sales department.

      That sounds like a management issue to me. If those at the top don't know how to run a company and make money, they really shouldn't be in those positions.

      The crazy idea that an engineering department can't make money is one of the most stupid things I've ever heard.... yet I've seen far too many companies who think that way.

  10. Charge them by Anonymous Coward · · Score: 0

    For any change, have them sign something and charge extra for it as it was not included in the original design.

  11. Either featurefreeze or delay up front by PastaAnta · · Score: 2

    When someone requests new features you have two options:
    - Tell them they have missed the feature/requirement freeze and will have to wait until next iteration.
    - Tell them that, if they insist, it will delay the release.
    Do not compromise the quality of the release.

    1. Re:Either featurefreeze or delay up front by Anonymous Coward · · Score: 0

      The corollary is obvious but needs to be stated:
      If one of your customers still insists, do actually skip that release, and inform all customers of why the release was skipped and who insisted.

      If developers are currently getting flack for code quality, and you'd prefer to get flack for delaying feature implementations, that's the way to go.

  12. That's what change orders are for by DougDot · · Score: 1

    $KaChing$

  13. Be honest by abigsmurf · · Score: 1

    Quote the number of hours to implement a new feature or change request.

    Adding an arbitrary fixed minimum for the changes and features is just going to piss them off and seem stupid, especially for trivial changes.

    Quote them a realistic time, show them that quote when they want something rushed through and it deploys with serious issues.

  14. Change Management by DexterIsADog · · Score: 4, Informative

    It's a discipline, it's part of project management, it works. You can look it up.

    I don't believe this answer will be well received on /. because it is usually practiced by project managers, and /. doesn't believe in project management.

    1. Re:Change Management by American+AC+in+Paris · · Score: 2

      I don't believe this answer will be well received on /. because it is usually practiced by project managers, and /. doesn't believe in project management.

      Slashdot most decidedly believes in project management. In fact, The Slashdot Consensus very fervently believes that project management is too important to be entrusted to project managers; like marketing, sales, management, and pretty much every other non-technical facet of business, project management is doomed to fail unless the technical people are doing it.

      We'll call it "Slashdot's Rule of Business": No matter what the task, the only people to which it can be reasonably entrusted are the computer geeks.

      --

      Obliteracy: Words with explosions

    2. Re:Change Management by Anonymous Coward · · Score: 0

      If you get to know ITIL more intimately, you may discover that the end output of projects are input to the Change-process. Projects are typically incredibly more complex and manually driven beasts than the typical maintenance or migration Change. So comparing project / development processes to the Change-process is more like comparing a basket of apples to bicycles. One is not really part of the other.

      A project may spawn off many Changes during it's whole lifecycle, yes. However, the processes going on in projects can vary from project to project, while Change Management should follow the exact same process every time. Change Managament really is not part of Project Management, is done by total different functions, and for projects, is preferred but not mandatory, not even always the best way to accomplish project goals.

    3. Re:Change Management by DexterIsADog · · Score: 1

      My bad... I meant "Change Control", not "Change Management". It was a slip of the brain. I should have caught that - I'm certified and experienced in both ITIL and as a PMP.

    4. Re:Change Management by Anonymous Coward · · Score: 0

      Surely you mean the consensus is that when something directly impacts my ability to do my job/deliver my product, I should at least be consulted as to whether it is even possible to do that thing.

      If the Sales Department says yes to a feature and then swings by on their way to a 3 hour lunch saying that they've told the customer it can be done by the end of the week, you would think that management would be on your side when you say it will take 3 months of 4 peoples' time. But, alas, no.
      Imagine if you said that HR would have something done by the end of the day and they then got in shit when it didn't happen.

      Project Management is great when it's done by someone who knows what is being done and understands it. Good project management doesn't throw you to the wolves when the customer changes their mind about everything but still wants it on time and in the original budget. Bad project management thinks you can get a baby in 1 month if you have 9 women.

    5. Re:Change Management by russotto · · Score: 1

      That's because project management in software is mostly mythical. In practice, having a project manager just means you'll have TWO pointy-haired types running around demanding ridiculous things. But one will have a Gantt chart so it's so much better.

    6. Re:Change Management by MouseAT · · Score: 1

      No, some of us believe that project management is doomed to fail if non-technical people are doing it with no regard for whether or not the technical team have the time or resources to deliver. You cannot separate the technical and business requirements of an IT project. They are one and the same, each bound by the other. Good technical people know this and appreciate this. Far too many business people don't know this or don't care, and feel that they can dictate from on high whilst ignoring the technical aspect completely. That is a recipe for disaster.

    7. Re:Change Management by tqk · · Score: 1

      We'll call it "Slashdot's Rule of Business": No matter what the task, the only people to which it can be reasonably entrusted are the computer geeks.

      That'd make a good .sig ... there's just enough of a grain of truth in it to make it a plausible aphorism. To prove it, you just have to look around and see how average people do things. They don't analyse situations then determine what's the best way forward depending on all the related factors. They don't think twelve steps ahead like chess players. They certainly don't ordinarily have a scientific mindset. They're generally pragmatic ("Whatever works"), not idealists ("Things as they could, and should, be").

      I'm sure someone must have come up with a name for this (rule by the scientifically inclined) before but I can't find it at the moment. Eugenics is related, I suppose.

      --
      "Tongue tied and twisted, just an Earth bound misfit ..." -- Pink Floyd.
    8. Re:Change Management by DexterIsADog · · Score: 1

      That's the stuff! That's exactly the ignorant nonsense I expect from /.
      Good for you dude, don't ever change. Not that you have the capacity...

  15. Weak management by Anonymous Coward · · Score: 1, Insightful

    In my experience, this is an indication of weak management, usually (but not exclusively) in the software development group. Rather than adjusting the build schedule you need to stop the feature creep. Once a development cycle starts the feature list should be locked until the next cycle starts.

    Since you suggest that this occurs on a semi-regular basis, someone in the management chain either doesn't care about the slips or doesn't recognize what is actually happening because their subordinates are incompetent. No software manager enjoys being castigated for schedule slips, and good ones figure out what is wrong and address it. If you really want things to change, you'll probably need to figure out where the weak link is and work to get it removed.

    1. Re:Weak management by Anonymous Coward · · Score: 0

      This +10000

      When i first started here we had constant feature creep on releases from our customer. After a few years though management finally decided they had enough and started getting it in writing from the customer exactly what they expected on releases and if they wanted any new features after writing that up then they were SOL and would have to wait for another release

  16. Mature engineering. by Impy+the+Impiuos+Imp · · Score: 1

    Have a deadline for new features or bug fixes for that week.

    Proper engineering (engineering is about how you build things, not about just crafting the thing itself) typically should look like this:

    - Requirement deadline (Specify bug to fix or new feature)
    - Software domain deadline (To do the above)
    - Integration deadline. (Integrate above into larger project)
    - Test deadline (verify bug fix or feature. Without getting fancy, must budget time for repairs)
    - Customer delivery deadline.

    The key is to work this stuff backwards.

    Software moves a lot faster than hardware, but it does not move infinitely fast. Normal hardware works on the order of months for these things, working backwards from Job 1 to factory tooling to a half-dozen proveouts of HW and assembly line.

    Software needs to recognize this and stop playing the infinitely fast "It should work." famous last words game.

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  17. uhh by buddyglass · · Score: 4, Informative

    1. Before any work is done with respect to a given request it is first assigned to a developer.
    2. The developer's first job is to estimate how long it will take to satisfy the request.
    3. If the request is too vague for an estimate to be made then the developer conferences with the request's originator to get the information he needs.
    4. Once a time estimate has been made, the developer communicates it to a project manager.
    5. If the request can be accommodated without delaying the release then the project manager gives the go ahead for the work to begin.
    6. If the request cannot be accommodated without delaying the release then the project manager conferences with its originator (and the originators of any other requests currently slated for the current release) to determine which will be dropped.

    1. Re:uhh by jimshatt · · Score: 2

      Just getting through these steps is already going to delay the release?

    2. Re:uhh by buddyglass · · Score: 1

      It shouldn't. The only alternative I see is to handle requests on a FIFO basis (with no respect to how long a given request is going to take, since we don't want to sacrifice the minimal overhead of doing time estimates) and then just drop releases every so often and call whatever happened to get done between drops the contents of a given release. If a request originator asks you "What release do you expect will contain my request," you have no real way of answering, since you have no idea how long the other requests in the queue are going to take. You basically have to tell the originator, "We'll get to it when we get to it."

  18. Not many options by TrumpetPower! · · Score: 4, Informative

    First, you can -- and probably should -- just accept that the deadlines don't mean anything. They self-evidently don't to anybody else, so why should they to you?

    But if you must pretend that they mean something, then you've really only got three options:

    1) adjust the deadline based upon how much actual work is involved with the new request;
    2) factor into your initial estimate how much you think it'll take to do what you think they're likely to add on later;
    3) or make new requests a separate project with their own life cycle.

    This, of course, assumes that you're the one estimating time and setting deadlines. If somebody else is doing all that, forget about it. It's not your problem; it's the problem of whomever is setting deadlines. Either they need to be doing a better job at time / project / resource management, or they need to bring on enough additional developers to meet the demands, or they need to fire the incompetent hacks they've got working for them now who can't meet the demands of the job. Whatever the case may be, it's a management problem and nothing for a developer to worry about.

    Cheers,

    b&

    --
    All but God can prove this sentence true.
    1. Re:Not many options by buddyglass · · Score: 1

      This. It's passive aggressive, but one option is to do whatever additional work is asked of you and just be late. When asked why the release was late, be honest: because {guy} told me to do {X}. Either some other stakeholder will tell {guy} to cool it with the requests, or, if {guy} is the only stakeholder and cares about releases being on time then he'll self-moderate. If he doesn't then he must not care about releases being on time.

  19. Send it back upstream by Anonymous Coward · · Score: 0

    Force a delay somehow.

    Requirements given for a new project? Send it back to analysis with some question that you know will force it to be reviewed. Knowing most BA's that should give you at least 2 days.

  20. Historical (Hysterical?) Observation by 3leggeddog · · Score: 4, Interesting

    I hope no one thinks this is a new problem. We had it back in the early 1960's (yes, really, all of a half-century ago). I once was told to attend a conference which stretched on for three days trying to get agreement on how long after the last change order the users would have to wait for delivery. The closest we could get to agreement was that if the change orders never stop there will never be delivery, and only the developers agreed to that: all the managers would agree to was "It can't be that bad." I didn't go back after the first day; I had constructive things to do.

  21. Just quit. by Narcocide · · Score: 1

    No amount of sane, productive, alternate solution propositions will get these assholes to treat you like a human being.

  22. Don't work here by Anonymous Coward · · Score: 0

    I have worked at my present company for 15 years. What you are describing is simply one aspect of what I consider normal development here. We use a modified waterfall. Requirements are gathered and estimates are produced for everything through testing and deployment. That's not requirements then estimates it's estimates then requirements usually and sometimes estimates after some of the requirements. The estimates are always called estimates and everybody seems to understand that they are very ballpark. Somehow, though, they end up in MS Project as deadlines and milestones with a heads may or may not roll consequence associated at the end. They keep paying me and I keep coming back, so I guess you can get used to anything.

  23. You have to start being a complete dick / say no. by Anonymous Coward · · Score: 0

    Sounds like my company. The only thing people seem to understand is when I started being a complete dick, and when someone says I need this done by this date and it is unreasonable, simply say no, too bad, you are the fucking moron sales guy that promised it on a whim, so no go back and tell your customer No. I get lucky and got support from my CIO and CEO, instead of getting fired. 99 out of 100 developers have an excruciating time saying No to people, so upper management gets used to the answer always being Yes. Not until you get a development leader with some balls that can say no will your situation improve.

  24. You need someone to say no. by miltonw · · Score: 4, Interesting

    What I always did with change requests: The rule was, you must get an estimate and approval for ALL changes. The estimate would include how long it would take -- and I was real good at estimating that. The approval would explicitly be for the additional time required for the change -- meaning how much that change would push back the schedule. Most "urgent changes" became "oh, never mind". Any that survived and got approved automatically adjusted the budget and schedule to accommodate the change - so I remained on schedule and on budget.

    1. Re:You need someone to say no. by Anonymous Coward · · Score: 0

      What I always did with change requests:
      The rule was, you must get an estimate and approval for ALL changes.
      The estimate would include how long it would take -- and I was real good at estimating that.
      The approval would explicitly be for the additional time required for the change -- meaning how much that change would push back the schedule.

      Most "urgent changes" became "oh, never mind". Any that survived and got approved automatically adjusted the budget and schedule to accommodate the change - so I remained on schedule and on budget.

      Yep, this is how real engineers do it. If the client wants more stuff but won't pay for it then they simply don't get it, we continue along as per the original scope. One of many reasons I got out of software "engineering."

  25. Agile + Scrum? by merick · · Score: 4, Informative

    If you are using Agile with a combination of Scrum (like we do), then every task is roughly estimated for the size of work required. In each sprint, you can only accomplish so much work. Over time you determine your teams "velocity" (the estimated size of work you can do in a sprint).

    Then, you have a person who plays the role of Scrum master. His or her job is to "protect the sprint". Meaning they help keep new issues from entering the queue during the sprint. When an actual emergency or rush item comes up, the Scrum master (or lead, whomever) asks, "what is OK to drop from the sprint if we can't get both done?". Some places take turns being the Scrum master, so it need not be a set role.

    The Scrum master has to be willing to be that gentle jerk, and say things like, "not now, but we can work on that in the next sprint".

    1. Re:Agile + Scrum? by Anonymous Coward · · Score: 1

      This sounds much like my company. Only the scrum master is really a tech lead who is not empowered to push back. Scrum Master with no authority = recipe for failure.

      The real problem is how do you solve the issue of when work is pushed to the next iteration, the internal customer just goes and gets someone else to break and do it.

  26. As one of my professors said by GodfatherofSoul · · Score: 1

    If you keep missing deadlines and find yourself in overtime crunches, the problem is with the way you estimate costs. Lots of shops assume that you're supposed to start working 60 hour weeks and running around flailing your arms right before every release. If that's your pattern, figure out why things are so delayed and factor that in. If management doesn't accept your estimates and they turn out to be closer to reality, there's not much more you can do.

    Any changes and feature additions obviously have to be included in the estimate.

    --
    I swear to God...I swear to God! That is NOT how you treat your human!
    1. Re:As one of my professors said by Anonymous Coward · · Score: 0

      Typical ivory tower syndrome. Business is real life, shit happens. People get sick, leave, have family woes (ever tried to motivate someone that's lost both parents due to a DUI?, You can't.) Management over promise, sales even staff more so. The bean counters make unrealistic projections, and the board (or owners) favor accountants over those at the furnace. That's before spec changes, some of which have huge ramifications and are driving by law.

      The simple solution is to constantly reevaluate where you are and move the release date, which like stock, can go up and down. 95% of software is in-house, yet it's the 5% "late" that makes nonsense news.

  27. THIS! by Chirs · · Score: 1

    Ultimately someone needs to be responsible for what gets into a given release. And given a fixed pool of developers, if something new comes in then something else likely needs to get pushed out.

  28. Push back by AuMatar · · Score: 2

    You can't do the impossible, and no techniques will allow you to do infinite work in a given period of time. This can be a permanent push back (never going to do it) or a temporary one (we'll discuss it at the next planning meeting).

    If they won't be pushed back, stop caring and dust off the resume. Don't work for people who aren't willing to compromise.

    --
    I still have more fans than freaks. WTF is wrong with you people?
  29. Need to go against Agile by Todd+Knarr · · Score: 3, Insightful

    The problem here is management not wanting to take responsibility for their changes. The only way I know of to fix this is to force the issue. You need a process in place that requires sign-offs for schedule changes due to new requests. Then every time these requests come in you prepare a time estimate and send out the new request and current work-in-progress with a request for management and business to assign a priority to the new work so you can determine which existing work will be impacted and can get sign-offs for those delays. Then make it clear to the people requesting the new work that it will not go into the schedule until it's been prioritized and management and business agree to any impact. The selling point to management is that this is to insure that once work has been promised by a given deadline you won't miss the deadline because of new projects without management and business knowing about it and agreeing on which projects are more important. This goes against Agile in that the whole point of the process is to prevent the development team from adjusting to new requests as they come in. Eventually you will, but you're adding "stiffness" and delay to the process to deliberately act as a stumbling block to new work and force management and business to get together first so when they come to development for an estimate they've already agreed on priorities and development can proceed to revise the schedule without anyone being surprised at delays.

    1. Re:Need to go against Agile by avandesande · · Score: 1

      Or you can just deliver it late. They will get over it.

      --
      love is just extroverted narcissism
  30. Switch to Kanban by Anonymous Coward · · Score: 0

    When you are in an environment where they will not stick with the commited stories during a sprint Kanban is a good way to go. They can add anything they want whenever they want. But all they can control is what is the next item worked on, not when it is due.

  31. Quality, Scope and Deadline by curunir · · Score: 3, Insightful

    If you change one, you can only keep one of the others fixed. This is an immutable law of any sort of work.

    Where I work, we have an agile process, but we're rigid about one thing...sprint plans don't change. Once a sprint plan is finalized and developers have accepted it, managers have two options...blow up the sprint and create a new plan (with a new deadline) or wait until the next sprint. The former option is supposed to be an extreme case and all checkins for the sprint, whether complete or not, are reverted to the previous sprint state. This allows management the flexibility to not wait in emergencies (i.e. we signed a multi-million-dollar partnership with XYZ but their shrink-wrapped software releases two weeks from now and we need our integration by next week) and yet provides enough of a penalty that they don't do it very often.

    --
    "Don't blame me, I voted for Kodos!"
  32. how to fix by Anonymous Coward · · Score: 1

    The whole point of a sprint is that once it starts, it doesn't change. This protects developers from your exact problem - managers screwing everything up. If it's not possible to do weekly sprints (build/release friday morning, plan friday afternoon, start work on monday, or some variant thereof), that are static once the storiesare decided on, you need to move to a "feature" model, where you can build/deploy whenever wherever and your "feature teams" just pick up the next feature in the list, which is prioritized by management. This way builds / deploys can never be late, because they happen all the time on a per-feature basis. If management decides a new feature / fix takes priority over whatever the feature teams are working on at the time, they can either wait a day for their request or they can pull a feature team immediately and start them on the new story.

    1. Re:how to fix by dfghjk · · Score: 1

      "The whole point of a sprint is that once it starts, it doesn't change."

      You speak as though this is a virtue when it is just a consequence of arbitrary management decisions. The goal should always be to determine what needs to be done and how to best go about doing it. All you are describing is a process for preventing that without taking the blame.

      Agile is a load of crap predicated on fallacious assumptions. It is no surprise that people commonly declare how Agile is "supposed" to be so that it mitigates the consequences to them personally.

      Good project management should be suited to the task, optimized to the team, and should have low overhead. Agile approaches may work this way at times but they frequently will not. Relatively few projects need to prioritize customer responsiveness over all else and very little can treat developers as interchangeable. These are two frequently invalid assumptions that Agile makes. If your view of the world is every project is website development then you may feel Agile is great. The world has a wider variety of tasks than that.

      A well-done project achieves a balance between over-design and under-design. Agile leads to chronic under-design and frequently no-design. This is demonstrated again and again in the comments in this thread. Developers, because they are only motivated to make their own lives easier, push design consequences off onto someone else. Where good project management makes good design central, Agile subjugates design to rapid releases of nothing. With Agile, the tendency is to avoid anything that could jeopardize your next deliverable. This pushes the blame onto someone else and results in crappy design becoming institutionalized.

      The sooner Agile dies the better. What's important is doing the job well, not doing it the way that works for someone else on a project unlike your own.

  33. Well, la dee dah da! by Anonymous Coward · · Score: 1

    Alrighty, let me put my onion on my belt, my teeth in, and give you whipper snappers a history lesson:

    That's how it has always been. We have never been given enough time. Specs change and when you miss the deadline, it's your fault. Period, no excuses - there's ALWAYS something you could have done to meet it - that's what my manager told me at NCR.

    And ...the point is?

    Software development and IT (same fucking thing in my day) have been like this. You have to work 10 -12 hours a day or more, at least 5 days a week, and you dealt with it. Because back then, we were paid 80-90 thousand dollars a year in my area - and now, you're paid 80-90 thousand dollars a year in my area - after 20 years of inflation, btw. Just saying - with inflation, developer salaries have been going DOWN.

    And after you spent your 10 -12 hours a day coding or engineering software, you went home reading a goddamn O'Reilly animal book on the latest and greatest "technology" and tried to figure out how to work it into your daily job because the next time you looked for a job, that technology that came out will be required along with 2+ years of experience in that technology. Things change.

    Stopping now because it's banana pudding night, the TV room opened, and there's Matlock Marathon on!

    MATLOCK!

    1. Re:Well, la dee dah da! by PRMan · · Score: 1

      and there's Matlock Marathon on!

      MATLOCK!

      Wow, you are old.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    2. Re:Well, la dee dah da! by Anonymous Coward · · Score: 0

      Just a side comment from another hover-round racer - I spent my career in non software development and it is the same there. Only difference is that back then the managers had come up through the ranks and knew when they were asking the impossible. MBAs today don't have a clue.

  34. Renegotiate your contract by Intrepid+imaginaut · · Score: 1

    Simple really, add both extra pay and extra time when new requests come in. The amount of extra pay and time are to be determined by the developer on a sliding scale. Developers don't need to adjust to unreasonable demands from clients, clients need to adjust to reality.

  35. Burn the whole place to the ground by Anonymous Coward · · Score: 0

    And retire to a Mexican beach resort

  36. Simple: Bad management by Anonymous Coward · · Score: 1

    The first issue is bad management. The second is lazy developers. Development should unit test their code before check in. If the project is 'that big', then there should be a server to run 'test builds' prior to actual check in.

    Yes, I've had to fight these issues at multiple companies.

  37. Acceptance Testing and signoff before release by Anonymous Coward · · Score: 0

    Have your 'clients' test any released builds in a non-production environment and sign off indicating their acceptance.

    If they want the code fast - they can accelerate their testing process.

  38. Deployments should be trivial by Anonymous Coward · · Score: 0

    The problem is that you've got a deployment schedule. It implies deployments are scary, complex things. If you do things right, deployments are trivial, zero downtime events. Extra feature? Extra deployment. No biggie. If you stop deploying on a schedule, you'll also stop wasting time waiting for friday (or thursday, if that's your regular deployment day of the week). Of course, part of any feature being deployed is peer review, proof of testing etc.

    Also, what other people said. If your employer wants to be professional, call them on it. Sneaking in last-minute features is not professional. Request a meeting, raise the issue.

  39. Institutionalize Change... by jdbuz · · Score: 1

    Product Manager here. And I'm the guy who just can't help himself to add in that one more feature that seems so obvious now but was somehow hiding in my blind spot previously. Oh, and we're gonna make a TON of money if you can just implement this.

    Step one: accept that life means constant change and these requests are always going to happen, like it or not. Nature of the beast but you can moderate this.
    Step two: find a way to get your arms around it. A formula of: one feature = X days slip on delivery date is not sustainable since all X's aren't created equal. This will ultimately backfire when features take a long time to implement because expectations have been incorrectly established. You need to have a code freeze date for each build and stick to it. Managing code branches and merging will be key.
    Step three: Make sure your product manager has solid use cases. Features wrapped in a story tend to stick together. If the feature doesn't play well into an already defined use case (story) then it is likely superfluous to the main goal of the product and can wait. If the PM needs to change the use case to accommodate the new feature then the PM needs to get his or her act together (while understanding that PMs are human and can sometimes make mistakes, but this should not be a standard operating procedure, changing fundamental use case scenarios). Sales organizations are typically coin operated so they'll always ask for just this one feature to make the big sale. It's a lie. If they didn't need it last month then they can wait another month.

    In my opinion, this in not something a developer should have to be concerned with, this is a product management issue. What is probable in these situations is that the PM is not including all stake holders in the requirements doc. All stake holders need to understand to some degree the end user's mental model (assumptions, motivations, goals, etc.) and if so a lot of these things will get vetted during the review process. But Sales, that darn Sales team... can't ever keep them happy; can't run a business without the revenue the bring in. They will always try but only the lesser ones will need said feature NOW to make the sale.

  40. I don't know what I'm talking about! by nine-times · · Score: 1

    I'm not a developer, so take what I say with a grain of salt, but I *do* manage technical projects on a regular basis. I try to stick to the rule that deadlines are dependent on requirements. If you ask for something to be added to the project, then the deadline (and budget) must be reviewed and altered to account for the changes. It only makes sense.

    But if you're trying to make a regular release schedule, then I'd suggest that you basically stop accepting new requests for each release some number of days ahead of time.

    The key sentence in your post is, "But we still have to deal with constant incoming feature changes and requests that are expected to be included in this week's package." Change that expectation. Maybe tell people that all requested changes for Friday's release must be submitted at least a week in advance, and then set the task on Monday morning to review those requests and set them on a realistic schedule.

    Of course, I might be talking out of my ass because I don't program and I don't really understand what Agile development is.

    1. Re:I don't know what I'm talking about! by shentino · · Score: 1

      If you have a hardass above you in the chain of command that not only insists on being unreasonable, but threatens to fire anyone who even SUGGESTS doing things differently, how do you handle that?

      It sounds to me like TFA was submitted by someone looking for an escape from a hostile management environment.

      It's all well and good to know that you need to change expectations. But if you have a hardass pulling rank on you, you're kinda fucked.

    2. Re:I don't know what I'm talking about! by PRMan · · Score: 2

      You find another job. Life's too short to work for an asshole.

      --
      Peter predicted that you would "deliberately forget" creation 2000 years ago...
    3. Re:I don't know what I'm talking about! by nine-times · · Score: 2

      If you have a hardass above you in the chain of command that not only insists on being unreasonable, but threatens to fire anyone who even SUGGESTS doing things differently, how do you handle that?

      Politely. With guile.

      I don't know what you expect me to say. I've had to convince some hardass bosses of various things, and either I convinced them, or they convinced me, or I lived with it, or I quit. There's no magical answer here.

      The question seemed to be, in effect, "Everyone expects things to be done in an unreasonable way. What technical thing can you do to meet the unreasonable demands?"

      So my answer would be, "If their expectations are actually unreasonable, you won't meet them, so instead try to change them."

  41. Formally find out why deadlines are missed by milkasing · · Score: 1

    After you miss your next deadline and/or push out a bug riddled release, task the initiative and get your group and sponsors together to formally find out why deadlines are missed.
    As discussed by commentators above, the reasons are definitely a lack of a change management process (and possibly a lack of a clear scope / requirements definition). But somehow people are more receptive to the obvious when it comes from a discovery process, rather than being told.
    After you set up a change management process figure out a way to get an estimate of how much the impact will be. So the next time some change comes up, tell them how much the release will be delayed up. front and ask them if they would want it for the next release.
    Remember, the more time you spend on management, the less time you have to develop, so factor that into your schedule as well.

  42. Document the requests by eples · · Score: 2

    Keep a written record each time something unreasonable is requested.

    After a few months (6?) show the documentation to the manager of whomever is making the requests.

    Then crack open a beer and wait for your new middle manager to arrive.

    Political or not, software project or not, someone in the management chain isn't doing their fucking job and you should not simply accept that.

    --
    I'm a 2000 man.
  43. One Simple Sentence by Anonymous Coward · · Score: 3, Insightful

    "All of our development bandwidth for this sprint is committed. Which item would you like to delay to make room for this one?"

    In the spirit of my title, the second sentence is, of course, the important one.

  44. According to scrum.... by leuk_he · · Score: 2

    Do agile proper. Choose a method. stick to it. Not a bit waterfall and a bit agile. then basically you are doing waterfall with some new term, but not new procedures.

    Eg. with Scrum at the end of a sprint, the product is Done, or it is taken out. The development team decides how much work to take on. Since the development process is transparant business can guess that extra criteria will add load.

    Business decides what are the priorities. Development determines how much can be done in a timebox and how they engineer it.

    If there are more requirement that take extra time, then those requirements are taken to the next sprint. If there are delays, then those delays are the time of a full sprint, (3-4 weeks). And realize that 80% of perfect often is enough.

    Things like "not an option" "business decides". "too costly"... are all in the big excuses book.

  45. Play politics back by Dishwasha · · Score: 2

    To be perfectly honest, you as a developer probably shouldn't be defining timelines. That's what management is for. If management is failing at establishing stable timelines, call them out. It is their job to redefine the release process when it is needed, not you.

    And don't keep the quitting option off the table. Typically the only time I've seen management change in a majorly positive fashion is when they have to deal with a mass exodus of developers.

    1. Re:Play politics back by dfghjk · · Score: 1

      "To be perfectly honest, you as a developer probably shouldn't be defining timelines."

      Completely wrong. if you, as a developer, aren't involved in defining timelines then the battle is already lost. You are the one that knows, management is a service to help facilitate you, as a developer, doing a good job.

  46. Be more agile. by Anonymous Coward · · Score: 1

    Far too many companies partially adopt Agile development practices. They integrate the rapid iteration, sprints, iteration planning, and standups but avoid the real work which is writing unit tests, and integration testing. It's impossible to work at break neck speeds while maintaining the integrity of the build without unit testing and integration testing even if you have embeded testers on hand to test things for you and most non-programmers don't really seem to understand this concept.

    Developers who are being introduced to Agile development practices most likely need some basic training beyond "how to use the iteration planning software" which addresses the concept of Agile development and the importance of writing good unit tests to validate that the code that was written is still working as expected after developer C, B and A have checked in code they've modified which may break someone else's features.

    The whole point of Agile development is to essentially be able to jump from one thing to another, but that doesn't mean things shouldn't be planned out. If a customer comes in asking for changes that are not planned for this sprint it should get added to a backlog, prioritized and then added to the next sprint or delayed even further into the future.

    So essentially what I'm suggesting is to first put in place development practices that will help maintain a working build. And secondly, you need to manage the change requests in the same way any service industry does. A request is made, it is assigned a priority. At an iteration planning session that task is either assigned for this weeks worth of work or pushed into a backlog where it will eventually be assigned. Any work not assigned for this weeks sprint which would include all feature change requests that come in after the iteration planning meeting will not be addressed until the next iteration planning session.

    Granted this is all ideal talk, because most of the time the players involved don't really want to make a commitment to the Agile development process.

    If you can't get buy in on integration testing and unit testing/training for the developers, and sprint planning go back to waterfall development practices. Otherwise you will wind up with a bunch of very stressed, unhappy programmers who are rapidly iterating themselves and the code base into a tangled constantly broken mess.

  47. Just do what the gov't does: by jennatalia · · Score: 0

    Step 1: Create expectations for contractors and then change your mind to something else. Step 2: ???? Step 3: Profit...oh wait, lawsuit, anti-profit.

  48. Rule of thumb for swaps by Anonymous Coward · · Score: 0

    Okay, let's assume this since you say you're doing agile:


    •    
    • You're estimating the cost of stories going into the sprint (for example you might have a sprint where your team can do 20 points worth of stories, and so you have a five pointer, a three pointer, a two pointer and ten one pointers.)
    •    

    • You can estimate the new story they want to put in the sprint

    If they want to put their new story in the current sprint then I've used the rule you have to take double the number of points worth of story out. So if they want to add a three pointer, then they'd have to take out at least six points worth of promised stories. The double points is to account for the fact that anything at the last minute is hard. This *also* has to come from work that hasn't been done yet - so say you've got a sprint with a six pointer in it that is two thirds done (going by your daily burndown) they can only get two points back by saying that this doesn't have to be delivered.

  49. not your problem by shentino · · Score: 1

    Fix the economy so that bosses can't get away with fucking over their workers because there's nowhere better to go.

    Your bosses know damn well they are forcing you to make bricks without straw here. Don't overestimate how much power you have over this situation.

    Since you say quitting isn't an option it appears you are captive to the situation and are going to have to put up with it. Still, now would be a good time to build references and find another employer.

  50. See a few things by multimediavt · · Score: 1

    Rummaging through the thread I see a few good pieces of advice. One, somebody in the food chain needs to grow a set of balls and learn how to say no. Yeah, yeah, yeah, the-customer-is-always-right, if-I-piss-the-customer-off-we-may-never-get-any-more-business BS. It's BS. Grow a set! Second, even with a set and some compromise you will still need to start setting REAL (as in hard) deadlines for feature requests with regard to release dates. Project management 101, actually, and even the current methodologies assume there are still dates for changes. If your boss(es) don't know this already from experience before they became management or while managing elsewhere, they are incompetent and need to be rooted out. Not easy, mind you. Third, keep looking for other opportunities. Even if change starts you may not want to wait for the positive effects, as you may not retain your sanity/joie de vive long enough to reap them where you are.

  51. Scrum master, product backlog, communication. by Fuzzums · · Score: 2

    Don't push back the deadline.
    A new requirement / feature is given a priority and added to the product backlog.
    It's not added to the sprint backlog.

    I'm sure the customer can wait one week longer for a proper release with the new functionality.
    If the feature request is so important that it ABSOLUTELY has to be in THIS release, restart the sprint from the beginning.
    But that should be an exception, since it disrupts the production cycle.

    Of course you explain these procedures with the customer and make sure he knows why it is important to stick to the production cycle (quality, productivity).

    Also work on you Definition of Done.
    Make sure you put "all unit tests passed" on that.

    --
    Privacy is terrorism.
  52. Dealing with that myself by gman003 · · Score: 1

    We're not doing agile or scrum or anything - honestly, we have a development process that's like waterfall but with no falling. Nobody's charted out which parts are dependent on any other part.

    But even with the complete lack of project management, scope creep is still a bigger problem.

    The initial specs for the project ("R2" of a project we did earlier) started with about half a dozen items on the scope list. When the contract was signed (our company is technically contract working for another company), it had expanded to about ten.

    Now it's around thirty, maybe forty depending on how you count things. We're about a month from the due date (we started in March), and we're horribly behind. Some of the things still don't even have specs. I'm trying to get them to trim scope - we've cut half a dozen things just this week, after I blew up on a phone call with the person in charge of managing the project (a combined VP/marketing lead/programmer with commit access, the most dangerous combination I've ever seen as he will sell a customer something, code it in a sleepless weekend, then expect us to help him when it breaks or needs more functionality).

  53. backlog by Anonymous Coward · · Score: 0

    Your project manager and sprint master are not doing their jobs. Perhaps you should apply for the position.

    If feature requests are still being added to the iteration, then development needs to immediately cease and the sprint needs backlogged.

  54. The hell it isn't by Anonymous Coward · · Score: 0

    >(Unfortunately, quitting is not an option)

    Unless you're an indentured servant or your family is being held at gunpoint, then quitting is always an option.

    1. Re:The hell it isn't by rubycodez · · Score: 1

      since they can and will fire you for any reason they choose, quitting or sudden loss of employment is thus also always to be prepared for and considered.

  55. Proposed team motto by dkleinsc · · Score: 2

    "A lack of planning on your part does not constitute an emergency on our part."

    Another option: Use the power of bureaucracy to your advantage. For example, create a fairly confusing Mid-Sprint Change Request Form that needs to be signed off by 2-3 people that are never in the office.

    A third option: Make sure that the work that was requested properly gets released on time, while the work that was requested mid-sprint will get released when it's ready (which, if you're doing things right, is always later than on time).

    The idea is to use the carrot of on-time quality delivery plus the stick of annoying bureaucracy and late delivery to push the people making requests towards doing the right thing.

    --
    I am officially gone from /. Long live http://www.soylentnews.com/
    1. Re:Proposed team motto by dfghjk · · Score: 1

      "A lack of planning on your part does not constitute an emergency on our part."

      In other words, I'm happy with failure so long as someone else takes the blame.

      "Another option: Use the power of bureaucracy to your advantage. For example, create a fairly confusing Mid-Sprint Change Request Form that needs to be signed off by 2-3 people that are never in the office."

      In other words, become part of the problem.

      "A third option: Make sure that the work that was requested properly gets released on time, while the work that was requested mid-sprint will get released when it's ready (which, if you're doing things right, is always later than on time)."

      In other words, make sure you aren't responsive to the customer. Failure is always the answer so long as someone else can be blamed.

      "The idea is to use the carrot of on-time quality delivery plus the stick of annoying bureaucracy and late delivery to push the people making requests towards doing the right thing."

      In other words, don't try to be part of a solution, just be part of the mess.

      The solution to these problems is to fire people like you, not adopt your approaches.

    2. Re:Proposed team motto by dkleinsc · · Score: 1

      In other words, I'm happy with failure so long as someone else takes the blame.

      I'm not happy with failure. What I'm trying to do is make it so that those who do what we want them to do (plan ahead, get things properly on the backlog, then into the correct sprint) get better results. If you're a salesperson making deals with promises of "Sure, we can have it for you in 2 days" without checking in with your tech team, then what you're actually doing is saying "Developers have to work ridiculous overtime so I can get a nice fat commission check." That's not about what's best for the company, it's what's best for the salesperson.

      Another way of looking at it: If you're making irresponsible deals, then no, I'm not going to work really hard to cover up your mistake. Otherwise, you're going to do it again. And again. And again, until I no longer cover up your mistake. And yes, it's quite possible that I'll be blamed for failing to cover up your mistake.

      The solution to these problems is to fire people like you, not adopt your approaches.

      If the direct approach of asking management or sales to be reasonable with their requests to the development team hasn't worked, and someone who uses my indirect approaches is going to get fired from your firm, I don't want to work for you. My current firm doesn't do that, and does well because our salespeople promise what we can actually deliver.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
  56. To bad we can't work like attorneys by CQDX · · Score: 1

    My wife is an attorney. When she's working on a case for a client, there isn't a lot of face time if she able to work out what needs to be done for the client in the initial meetings. Often she'll get clients who want to change or add things mid-stream. Fine... If you want to make a request after I've started working on your case, it's $150-$300/hr for me just to listen about what you want different. If I agree to do the work, it's another $150-$300/hr beyond the initial estimate of how much the total was going to be. And if it's more than a few hours I'll have to charge an additional retainer. This has cut down a lot on clients who bug for too many trivial reasons and don't realize it's just delaying things.

    1. Re:To bad we can't work like attorneys by dfghjk · · Score: 1

      This only works because attorneys make the rules. This is a horrible way to treat customers.

      Both sides should be happy with the result. With attorneys, you are only happy with the result if you believe you have been screwed less than the alternative.

  57. It's simple by Charliemopps · · Score: 1

    You don't get deadlines until you get requirements. Once you have them you give them a quote. "If you want all of this it will be done by February 1st" if they complain, tell them what they'll have to cut out to meet their deadline. Once this processes is done EVERY CHANGE TO THE REQUIREMENTS COMES WITH A CHANGE IN THE DEADLINE. No matter how small it is, they send you a change, you send back your revised estimate. You keep track of all of these changes. When the projects complete you do a post-completion review and explain why you missed your original date, siting line by line all of their changes.

    This is how it should always happen. The only real catch is you get into arguments with them about "what is a change?" and "We really meant this, not that" So it's important to have the requirements really nailed down. You can take short 1 day classes on these sorts of things, how to word stuff. You want to avoid requirements like "Make the billing application faster" Well... what does "Faster" mean? does 1% faster count? Do they mean LOAD faster? Or that the reports return data faster? You need to be very specific because they're rarely satisfied. Also, define what the billing application is... Very specifically. You really have no idea what they are doing on the business side and sometimes you can get all done and find out they are doing 90% of their work in a spreadsheet and then dumping it into your application. You could likely meet all your requirements just by doing away with the 10yr old lotus notes sheet some dead guy wrote back in the day.

  58. You've already lost this battle by Mandatory+Default · · Score: 5, Informative

    You think you're fighting manager's lack of understanding of software development. You are wrong.

    You are fighting politically savvy people who have found a way to blame you for their problems. They don't want you to solve the problem and will actively work to prevent you from solving the problem, because then you can't be the scapegoat.

    If you don't have a VP or C-level manager who will fight this fight for you, then you've already lost. Don't bang your head against the wall. Play the same game as everyone else and find someone else that you can use as a scapegoat. Meanwhile, start looking for a new job.

    Even if you miraculously "fix" this problem, someone else is going to claim credit and you're going to get nothing.

    1. Re:You've already lost this battle by evilviper · · Score: 1

      While blaming IT for their problems may work once or twice, those who do it more often look like idiots themselves. The project manager who delievers on time gets a raise, and the one who never delievers on time gets fired, even if he constantly blames IT.

      Best thing to do is put a process in writing... One that will make it clear that last-minute requests will go in the queue behind all others. If you can point to a procedure some sociopath was not following, then they dangle on the hook for the late delivery, while you get off with a minimum of back and forth about it.

      And yes, looking for a new job is always a good idea. I stayed at one for a few years, as things were slowly improving, only to have the root cause of the trouble get promoted to the top spot. I left, days later.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    2. Re:You've already lost this battle by dfghjk · · Score: 1

      This is the lesson a "career" teaches you and it's true regardless of how good a company you work for. It's the nature of people to be self-serving and to corrupt the process to further their personal goals. The quicker you can identify this and move on the happier you will be.

  59. doesn't really go against agile by Chirs · · Score: 1

    Agile is all about adaptive development. This includes management, not just the developers. Part of adjusting to new requests is to prioritize them relative to existing commitments...by getting management to prioritize you're just bringing them into the Agile process.

  60. Get a Manager by Darinbob · · Score: 2

    Get a manager. This is the appropriate role for a manager, to stand as the gate keeper between the development team and the incoming barrage of requests. It doesn't matter what process you use if the manager is able to be an effective buffer. Ie, a new request comes in and the manager estimates how long it will take and then tells the requester either that the release will be delayed or that the feature will go into a subsequent release.

    If the manager can not manage this process, then it will not matter at all what process is used because it won't fix the problem. Of course you could always be unlucky and be stuck with a bad manager, one who always sides with the requesters and is actively working against the developers, but no process is going to fix that problem either. Processes can and WILL be ignored. In fact, processes can often hide the problem of having a bad manager because nothing covers an ass better than a process.

    1. Re:Get a Manager by Darinbob · · Score: 1

      I should add that sometimes this means bad news for the manager. I have seen companies cycle through a sequence of managers, hiring and discarding them, until the company finally gets the picture that the managers were not being obstructionist but were actually doing the right thing.

    2. Re:Get a Manager by Anonymous Coward · · Score: 0

      Yes, this is a management problem. Good management should listen to the developers, and if you have a convincing solution, they may even take it on board.

      Propose the rule: a sprint does not get changed. Discuss the pros, be aware of the cons, and it may get management backing.

      Second rule: every new item needs to have a priority relative to existing items. The next sprint will take the top priority items. This plays the question of what to leave out back to the management where it belongs.

      But for anything to happen you may need evidence that the current system is not working, and not just that you do not like it.

  61. How do you make things better? You don't. by Anonymous Coward · · Score: 0

    I worked for a number of years as part of a small team of web application developers for an educational grant. When I came on, change requests came in at random without respect to deadlines, much like your premise. A couple of years ago I finally convinced our sole client that a semi-annual development cycle would not only get them a better product, it would also improve morale.

    They reduced the funding a year later. I am currently unemployed.

  62. Then you're not doing Agile right. by Anonymous Coward · · Score: 0

    Today: new requirement, new story, a new task goes in the the backlog.

    Tomorrow's scrum: something gets put back in the backlog and the new task gets assigned.

    TANSTAAFL.

    And show a little backbone – push back. Don't be a door mat.

  63. What would a chef do? by Culture20 · · Score: 4, Insightful

    If a restaurant customer changes their mind while the chef is cooking their choice of meal, or maybe forget to request "no mushrooms" until 20 minutes after ordering, they may get the new dish, but they won't get it on time, and reasonable people understand that. Of course there are always unreasonable customers. Management reserves the right to not serve them.

    1. Re:What would a chef do? by plopez · · Score: 1

      And chefs can spit in your food too. Remember that next time you torture you waitstaff or anyone else who touches your food.

      --
      putting the 'B' in LGBTQ+
  64. The Power of No by Anonymous Coward · · Score: 0

    You have to learn The Power of No.

    You are not to be a jerk. This is important! You do not say No to everything. Instead you give your client (or management) a reasonable choice. They can:

    1). Have the new feature, with a push on the delivery date;
    2). Have the delivery date and take a pass on the feature.

    If they go the Sparkle Pony route and ask for the new feature plus the original delivery date, then your answer is No. And you have to stick to that. Don't waver, don't even attempt to deliver that. Never say or imply that both factors are possible together. You are the mature one and simultaneous delivery is like violating the software development Pauli Exclusion Principle. It cannot be done.

  65. Architects use "additional services" for creep by digitect · · Score: 1

    In our architectural practice, we use the term "additional services" to quantify scope creep, basically anything beyond the scope defined in our proposal/contract.

    This reinforces the need for making that initial statement of expectations clear AND the implications for any deviation thereafter.

    --
    There is no need to use a SlashDot sig for SEO...
  66. Typical problem by Anonymous Coward · · Score: 0

    What you have is a common issue - management doesn't want to change, so they make the developers learn Agile (or the next great buzzword), but never change their ways.

    As others here have said, if they want Agile, make them be Agile - no changes to the content of the current sprint - it either goes as-is, or is aborted and a new sprint planning session starts. Enforce the need for a full user story for any new feature, whcih means a full meeting to define it, then the meeting to estimate it.

  67. Realign by Anonymous Coward · · Score: 0

    "Unfortunately, quitting is not an option."

    Quit. Start your own company. Do your own development. Learn about the real world so you will better understand the full scope of the problem and you'll have complete control. Then if you don't perform you can fire yourself and go back begging for your old job with a new understanding (but outdated skills).

  68. Charge Over Time by altemus.stephen · · Score: 1

    I just let them add it to the schedule and tell them we will charge every hour and get paid overtime aft 48 hours. Amazing how things get prioritized better by my management when it COSTS them more for items they want right away. You can have 2 of the three COST, QUICKER, BETTER QUALITY (LESS Technical Debt)

  69. One queue to rule them all by roberthead · · Score: 1

    Pivotal Tracker and similar tools do an excellent job of addressing this kind of cognitive dissonance. "I need you to do this ASAP. Priority ZERO!!1!!" "Adding scope? No problem! We'll estimate the new task. There's the queue of user stories. Prioritize however you'd like." "Two older stories just got pushed out of this iteration." "Yes... Yes, they did. Any questions?"

  70. Re:Agile is about commitment, not flexibility by rwa2 · · Score: 5, Informative

    "Agile" is something of a misnomer... it's about committing to the work items you've estimated into your current sprint -- and no more. If someone wants to add a feature or request, it goes straight into the backlog for consideration during the next sprint planning session.

    "Agile" is more about setting up a consistent delivery schedule... the build train leaves the same time each week, carrying whatever passed QA testing... and no more. The build train is never delayed, only derailed by an Act of God. That's right, if some exec really thinks that something is so important that it needs to be done *right now*, you completely stop all work, scrap the current sprint and start a new sprint planning session with all of the overhead that entails.

    Anyone who practices differently is not practicing Agile according to the way it was intended. There are no "sprint schedule extensions" in Agile, since it's a measurement and estimation tool... the same way you don't measure with a longer "yardstick" when something is too big to fit in a 1-yard container.

  71. Working at Facebook Sucks by Anonymous Coward · · Score: 0

    The reality is working at Facebook has got to suck. No pity for you.

  72. Point to a (semi) physical task board by Anguirel · · Score: 1

    If these requests are made in person or at least by someone in the office, you should have a task board with your current work on it. When someone comes in with a request, say "I'd love to, but this is our current feature list, and my job is to work on those tasks. You're welcome to go argue with the people who gave me these features which one should be removed for your new request. Otherwise, talk to the product owner and get it added to the backlog and prioritized appropriately."

    If these are coming in from external sources, it's the same deflection, but harder without the physical board unless they can see a virtual task board / backlog somewhere. "Talk to the product owner to get those added to our backlog."

    If they are coming from your product owner / manager, beat that person with an Agile Methodology book until they understand that features aren't added mid-build-cycle without at the very least pulling an equal-difficulty feature off the current feature list.

    --
    ~Anguirel (lit. Living Star-Iron)
    QA: The art of telling someone that their baby is ugly without getting punched.
  73. QUIT... by Anonymous Coward · · Score: 0

    ...eventually. First try to have management implement changes to the process that will address the issues that you are having. If they don't, GTFO!

    Seriously. It's not worth working under constant conditions like that for your career.

  74. Welcome to the real world by Anonymous Coward · · Score: 0

    The problem is:
    a. management
    b. stakeholders
    c. scrum master
    d. customers
    e. hardware
    f. testers
    g. co-workers ....
    but never developers, i.e. you and your immediate sprint team

    Agile is not perfect. You balance what goes to the next sprint and be done with it. Crap happens, it's what happens in the real world.

  75. Quitting is not an option? by flu1d · · Score: 1

    How is quitting not an option? Incriminating photo's? Doorknob too complicated?

  76. Where is your iteration manager? by Anonymous Coward · · Score: 0

    Get an iteration manager with a backbone.

    If a story is injected into an iteration that has already been planned, then something of equal size must come out. That's the product owners responsibility.
    Its on your iteration manager to PUSH BACK.

    If they don't push back, raise it in your retrospective... no retro? then your team has no feedback loop and you're hosed.

  77. If you can't quit, or win by plopez · · Score: 1

    Move over to Management or Marketing. You can thank me later from the deck of your trophy yacht.

    --
    putting the 'B' in LGBTQ+
    1. Re:If you can't quit, or win by just+fiddling+around · · Score: 1

      +5: Full of win !

      --
      You're not old until regret takes the place of your dreams.
  78. You can't by lightknight · · Score: 4, Interesting

    The short answer is that you can't. Your boss, if he / she is a programmer, will go to bat for you, and say "this won't happen; deal with it." If they aren't, you're screwed.

    See, in the business world, much to its caricature, there are people who think they are business-savy. They watch 'The Apprentice' with a notepad in hand, and think that when it comes time to handling outside work, it's all about how fiercely you negotiate. Your non-programmer boss, who got his start in sales / marketing, is used to promising people stuff that others need to deliver on...as well as combing over any problems when a 'whoopsie' happens (missed deadline, etc.); he is also used to the idea of pandering to the client, and doesn't understand the intricacies of telling the client, in non-subtle, but non-insulting language, that something simply cannot happen.

    So, when your client comes to negotiate with your boss, he's going to give them everything for nothing; he doesn't know this, but he does it. He's going to ask for time estimates from a programmer, where things operate in a completely different kind of world (every project is a new set of problems, first rule; ergo, all time estimates are vague and unreliable...even for 'easy' projects, because of some stuff I will touch on later); he's going to take these time estimates, and shave them down...asking the programmer, "Can't we try to get this done by Tuesday? And we can fall back to Friday if it doesn't work out." The programmer, of course, will tell him the truth (the programming / mathematical truth), which is "Sure, we can try to get it done faster." But in reality, it's not a magic button that gets pressed to make things 'go faster.' So, your boss tells the client his truth, which is that the project will possibly be done by Tuesday. The client, hearing this, thinks that it might be done by Monday, but will begin annoying your boss via phone calls as of Tuesday.

    Now, let's take a moment to look closely at some of the elements around this scenario: your boss is going to charge the client for a certain amount ($2K), based off of your low wage, long hours, and another project that will be coming up a few days later for another client (it's all about volume). The actual cost of the project is $3K, but after your boss is worked down in negotiations ("We need to keep this client / build a relationship. We'll make it up to you with more work down the line / another project from them that will be worth more at some point in the future."), it'll be $2K. Bear in mind that the Tuesday deadline is actually negotiated by this client as well...so from their viewpoint, they've gotten a pretty sweet deal according to Apprentice 101: by dominating your boss, they got him to place their project at the top of the 'critical priority' pile...and they saved themselves $1K.

    Your boss, believing the lies of his industry, thinks he's building a relationship with the client...he's not, since the client will bounce as soon as he tries increasing the costs anywhere near market rate, and they know that they can tweak him at will to speed things up / shave costs because he's already done it once before. Meanwhile, you, the programmer, are doing $7K worth of work, and enjoying near constant panic attacks because -> the client submits development requirement changes piecemeal, via email, telephone, SMS, Skype, and toilet paper. Your boss, of course, will come to you, and ask you if you can just do these extra tasks...that they won't take too much extra time, right? Of course not...changing the backend from SQL to NoSQL, and the frontend from ASP.NET to PHP shouldn't take any extra time at all...you're a programmer...you're second-kin to a magic elf...you can just not sleep, and reach into your magic bag of tricks, and pull off this thing by Tuesday's lunch. And skilled salesman that your boss is, he's either giving the changes away to the client for free, or taking on an absurdly low number for the additional work ("It'll pay for itself in the long run, you'll see!").

    So, Monday

    --
    I am John Hurt.
    1. Re: You can't by Anonymous Coward · · Score: 0

      I'd mod you up to +5 if I could.

    2. Re:You can't by n7ytd · · Score: 1

      I am in awe and saddened at the same time by the level of truth in your comment.

  79. Easy Fix, but it's hard to sell by mckellar75238 · · Score: 1

    As has already been mentioned, this is an age-old problem. One of my co-workers many years ago addressed it thusly (after long and bitter discussion): "Okay, you demand that I finish it quickly? All right, I give up; it's finished. Now, when do you want to discuss fixing the bugs?" Never, ever, EVER let anyone talk you into a time commitment you don't think you can meet. If you do, you'll get fired just as surely -- and with much better cause -- as because you won't knuckle under to unreasonable demands.

  80. whooshing sound by Anonymous Coward · · Score: 0

    Don't worry so much about deadlines, they make a whooshing sound as they go by, that's all. Focus on making a great product, if its good and sells nobody will care how long it took or how much it cost, they will only ask who made it.

  81. Kanban by kzadot · · Score: 1

    You need a full service, deep Kanban implementation to evolve your process into a flow based one. You can have separate classes of service, with separate prices, for new development, and support and operations tickets with different urgencies. Once upstream stakeholders are clear on team capacity, they can negotiate amongst themselves about which items should be done next, which can be done later, and which are probably not going to be done at all. I think with a good system design, concrete measurements of throughput and lead time, paying attention to the way work flows through the system and full transparency you can at least make upstream stakeholders aware that they cannot have it all.

    1. Re:Kanban by Anonymous Coward · · Score: 0

      I came here to say basically this. Kanban is the answer you are looking for. Good luck getting the political buy in.

  82. how to fix this by Anonymous Coward · · Score: 0

    Proceses, and more processes.
    It is tue magic world that protects you from being called a non tem player, and keep things working as you want them.
    Just get a business process in place that does allow to submit change request only for the next week, no exeptions. Any change of course, bug fixes and implementation errors should still be fixed as they come in.
    And the secon point is to discurage the people to submit insignificant changes and trash to your department. How to do that? I found one metod being very efective: mandatory testing.
    The person who requested the feature or change must mandatory participate on its testing before it goes live. Usualy this happens on weekends in my company.
    So, you are nit ready to test it this weekend, then fine, this is not included in this weeks release.
    You get less requests and all will be more relevant, and you get people for testing it.

  83. 9mm parabellum versus medieval pikeaxe by Anonymous Coward · · Score: 0

    ...generally placing one of them on top of the conference table before code or deadlines review should do the trick...

  84. Re:Agile is about commitment, not flexibility by drawfour · · Score: 1

    I like that yardstick analogy, mind if I use it?

    Over the past few months, my org has moved from waterfall to scrum, and while the transition is painful for some people, I think it's really simple to grasp. We no longer have the 3-day meetings of adds/cuts to figure out what features we think we'll be able to ship in the next 2 years, we just have an idea of the bigger items we want to accomplish. Things that we need to do sooner rather than later are more detailed, such that we know whatever work we think we'll be doing over the next 2 sprints is very clear and detailed, with increasing fuzziness the further out we go.

    We only work a sprint at a time (2 week schedule), make sure everything is as tested as we can before calling it complete. If we find gaps in our coverage before the sprint is complete, we fix them then and there (no checking in things with "known issues"). If we find gaps after the sprint was completed, we add them into our backlog for handling in the future, so we don't context switch out of our current work to service code. It's actually quite a blessing.

    We're not a well-oiled machine yet (will take a while), but I think people are getting it more and more.

    I don't think agile is necessarily the right tool for everyone or everything (I know some agile purists would disagree), but for the way we were doing waterfall before and all of the problems we felt year after year, I feel agile development is exactly what our org needed.

  85. use a kanban approach by Anonymous Coward · · Score: 0

    where features are on. the left of the whiteboard and the ungoing activity to the right (in progress, done, blocked) then tell the manager he can switch out or reorder things on the left but he has no power of ongoing activities. realisticly to meet deadline old task of equal size and complexity should be replaced by new ones. kanban is ideal in a support organization with fluid deadlines

  86. Re:Agile is about commitment, not flexibility by Anonymous Coward · · Score: 0

    You're describing scrum and variations. There are other, less stiff, ways of running agile. Please don't define agile as sprints, etc.

  87. Agile overrated by SuperDre · · Score: 1

    As more developers I talk to, I see a lot telling the scrum was of doing things don't work as good as expected, a lot are already going to kanban or just revert back to the old way..
    In the end a lot of us already were developing 'Agile' but it just didn't have a name..
    You should do what works for you and your team, and not try to force a specific method onto a team just because it's hip.. Just use parts of the 'Agile' methods that work for you and your team. There is no definitive or best way to do development, just do what works best for you..

  88. The sad state of the computing industry by Anonymous Coward · · Score: 0

    Soulskill, after over 25 years in this business, I find the situation you describe so very, very common. Management is like little babies, all they know is they want and they want and have little understand of what it takes to get what they want. I am soooo sick of it all. I go into programmer because I like it but the brain-dead, souldestroying zomies have been it a an unreal nightmare.

  89. Don't accept feature changes during sprints by YoungManKlaus · · Score: 1

    If the story is agreed upon then it will be built that way, and I can hardly imagine cases where it is acutally business critical if a requirements change is implemented this week and throwing everyone out of the loop or next week where it can be correctly scheduled.

  90. Re:Agile is about commitment, not flexibility by mcvos · · Score: 1

    Thank you. Best, most concise description of Scrum ever.

    "Agile" is more about setting up a consistent delivery schedule... the build train leaves the same time each week, carrying whatever passed QA testing... and no more. The build train is never delayed, only derailed by an Act of God. That's right, if some exec really thinks that something is so important that it needs to be done *right now*, you completely stop all work, scrap the current sprint and start a new sprint planning session with all of the overhead that entails.

    I'm currently working at my first gig where they're actually doing Agile properly, but even here, it has happened that something needed to be included in a current sprint. And we have accepted it (if it was small enough) but dropped other stuff out of the sprint. And even then, it always cost problems. Putting it on the backlog is nearly always the best approach. Disrupting a current sprint is always messy.

    There are still a lot of things we're struggling with, but even so, it's the best work environment I've ever been in. I'm convinced now: I want more Scrum.

  91. Politics and Scoping by Anonymous Coward · · Score: 0

    It's like you say, mostly political. Until you have understanding at the top of the food chain (VP of Marketing, a CIO, or the CEO themselves), you're not going to have understanding on how development really works. It's coming, but right now very few upper management types can properly scope the time it takes to work on IT features. If you're unfortunate enough to be working in a purely political situation, you'll never get the timing right because you're a political 'asset' rather than a proper development center.

  92. priority & eta by Anonymous Coward · · Score: 0

    You should have a system in place that will allow you to prioritize the features, something simple like 'high, mediun & low' will suffice. The system should allow a maximum number of high requests to be put in place (otherwise, all requests will be high). the idea being that high requests are critical for the next release and low being nice-to-have-but-not-important-at-all.

    Then additional to this, somebody reviews these requests and then puts a implementation timeframe to it. You then have something on paper to show that to implement all high requirements you will need at least X amount of time. If this exceeds to deadline, either they can drop it (reducing the priority) or extend the deadline.

  93. Lower Your Expectations by handy_vandal · · Score: 1

    The upshot is that builds are usually late, not properly tested and developers get the flak when things go wrong. I suspect the answer is political, but how do we make things better?

    "Get the flak" -- in other words, someone (the business line) expresses anger.

    Anger happens when people have expectations, and these expectations go unmet.

    The answer is: Lower Your Expectations. (Management, I am looking at you.).

    I'm guessing you can't actually say this to management, without coming off as sarcastic. But I am quite serious, this is basic psychology. If my expectations are lower, then my unhappiness (when things go wrong) is also lower.

    It's entirely possible that your organization cannot improve processes. Maybe what the company is doing right now is the best it can do. Let's not get all "Rah-Rah, We Can Do It" -- maybe you can't do it, maybe the effort is a waste of time. After all, the people before you were not idiots, yet look where things are today.

    If you can't fix the problem, you can at least minimize your unhappiness, and help your colleagues do the same.

    --
    -kgj
  94. this is common... by Mirar · · Score: 1

    ...this is a common problem. You start the sprint, you know what to do, and something urgent happens and you have to prioritize that.

    Which breaks "agile", just in itself, since you no longer focus on your work packets.

    The method that I've seen that seems to work the best - still under experimentation - would go something like this:

    * make two branches, one for fixes and one for development
    * allocate enough time to do the normal work packets in the sprint to allow for extra fixes
    * do work packets in the development branch
    * do fixes in the fixes branch
    * on a successful test of the development branch, make a new fixes branch from the release build
    * make work packets the following week to move the fixes into the development branch
    * if too much time is spent on fixes, drop complete work packages - that's why they are isolated packages anyway

    That way, you can get fixes out quick, without risking bugs from the normal development. You can also keep your normal development flow.

    You will risk never being able to do a release from the development tree. This is usually solved by having a sprint focused on catching and finishing a new non-fix release.

    Depending on your needs you might want to do more than one fixes-branch. For instance if customer A needs one emergency fix, and customer B needs a completely different one - you might not want to mix those two up and accidentally causing more bugs.

    You risk just working 100% on fixes on the release branch. Then you have to rethink your priorities... again.

  95. Committing to work in current sprint by handy_vandal · · Score: 1

    [Agile]... it's about committing to the work items you've estimated into your current sprint.

    Mod parent up.

    Commit to your short-range deliverables. Restate your commitments daily, keep your team informed.

    --
    -kgj
  96. Learn their language (money) by handy_vandal · · Score: 1

    Ask them how much money is on the table, and then calculate your team's rough cost per sprint. The key is for you to learn their language, and their tools.

    Yes!

    You communicate with anyone by speaking to them in their own language. Maybe they understand your language as well, all good and fine. But the best way to reach someone is to speak his language.

    Money people speak money. If you want to get through to them, speak money.

    For that matter, if you are a developer who doesn't speak money, you might want to learn -- it's a useful skill with a variety of benefits.

    --
    -kgj
  97. Amen to "No" by handy_vandal · · Score: 1

    I learned the "say no" trick.

    Yes! I also learned the "say no" trick, and use it to good effect.

    --
    -kgj
  98. The bigger the company, the bigger the problem. by Monty+Worm · · Score: 1

    I work for a large multinational (well, for a subsidiary. Parent company is massive. Global subsidiary is quite large. We're a regional offshoot).

    We get a fair amount of our deadlines set by head office, with a "We've put out a press release saying it'll be out on this date". You can't say no, it won't work. This sort of thing isn't restricted to big companies. In smaller companies I've had bosses tell me (and this pre-dates Agile as IT design tool) that I have to have the code finished before the end of the week, as they've got an advert in Saturday's paper.

    Like in Mythbusters, failure is always an option.

    --
    ... and today's pet project has ... been discarded for lack of time.
  99. Under-commit, over-deliver by Anonymous Coward · · Score: 0

    While my shop implements Agile rather well--we generally work on 2 or 3 week sprints (we are developing a brand new application and a more rapid release cycle presently isn't particularly valuable). Under committing can help when critical features show up for the current release. An alternative to pushing a release back because of features injected at the last moment is committing to less than an entire release's work and adding additional stories when possible.

  100. Just stick to the definition of "Agile process" by zarmanto · · Score: 1

    Personally, in your situation I would probably recommend going full tilt into the formal Agile process. Strictly speaking, the formalized definition of the "Agile process" does not necessarily coincide with what most people think of as "agile". In an "agile" world, maybe you can make changes at a whim, simply because the customer says jump... but in the "Agile process", you don't really make changes to the current sprint; all changes get dropped into the product backlog, and prioritized appropriately to be included in a future sprint. If you're changing the scope of tasks included in the current sprint, then you're not really doing Agile.

    Mind you, there are infrequent times when a new requirement or a bug report might actually trumps the sprint altogether... personally, I would classify those as emergencies. And let's be frank: How many actual emergencies do you think take place in the world of computer programming?

    (Source: My employer sent me to ScrumMaster training a couple of weeks ago.)

  101. CYA through internal company methods by GLOACAI · · Score: 1

    I'm a former software and system engineering team supervisor/task lead, not a lawyer so you'll need to talk to your company's lawyer to provide more expert advice.

    Tell your chain of command to grow a pair (in a more eloquent and enlightening manner), that what they are asking can't be done, and your estimate of when it can be done so they can inform the customer. Or they need to hire additional team members and adjust the price to reflect rush jobs.

    When that doesn't work make sure to follow your appropriate reporting routes to your HR/Legal team that these requirement changes are negatively impacting not only the software team but the company's reputation. You'll need to make sure they get: a copy of the original requirements, the original schedule, the new requirements, your estimated schedule deviation due to new requirements, the dates of when you informed your chain of command, the actual schedule deviation, and the test results. Then ask them what else they may require from you to do or their advice to you. Now this won't "fix" the issue but you need to do it to cover yourself for the next step. Stop caring so much about meeting unattainable requirements and only work according to the original schedule + whatever free time remains in your scheduled work period (40 hours a week max unless your contract says otherwise).

    If you end up getting lower than normal performance reviews because you haven't met unattainable requirements, you'll need to go to your company's HR/Legal team again for conflict resolution. If it ever gets to this point you and the HR/Legal team will have documented history of these problems which also show that you had attempted to handle the issue through the appropriate chain of command for your company. At this point if the companies lawyers aren't trying to mediate the issue contact an outside lawyer, but usually a company rather's handle issues internally so you shouldn't need to.

    As an aside,
    To help educate our customers when requirements will be met:
    -We had weekly status meetings (no more than 10-15 min for any single project) where we used a diagram showing the workflow of the development process with the associated deadline/man hours for each step. Double check with your company before showing them a diagram like this though because some companies consider their development process proprietary information (they're all based off of similar schedule management techniques but companies are crazy at times, go figure).

    -We also put up estimated dates for next releases of requirements with no more accuracy than which quarter of the year we thought it might fall into. This way the customer could think about changing around requirements if needed but wasn't going to assume they would get done by a simple date.

  102. Time to learn interoffice Judo by just+fiddling+around · · Score: 1

    I assume your team is the developer pool for the company. If not, my comment is not usable.

    Learn to use the forces piling onto you to achieve. If Bob in accounting is the client for whatever you are currently working on and Jim in sales asks for something, forward the request for pushing back Bob's feature to Bob. Then watch Bob and Jim wrestle on your behest.
    Why does this work? Because people unconsciously know you are a finite resource. You are not tasked to choose what the company's priorities are, so let management choose the priority of each request.

    Oh, and ALWAYS make an estimate of the work needed for development include the testing and some meetings. Meetings are like gravity: you can't escape them all the time.

    --
    You're not old until regret takes the place of your dreams.
  103. Re:Agile is about commitment, not flexibility by under_score · · Score: 1

    This is a great way of describing Scrum, but I would be more clear about the fact that Agile != Scrum. Agile is the abstract base class (or maybe even just an interface/protocol) described by the Agile Manifesto: http://www.agilemanifesto.org/ and Scrum is a subclass that implements/extends Agile.

    That said, the yardstick analogy is great and I'm going to use that right away in a class I'm teaching about Scrum!

    Thanks!

    PS. BSP below...

  104. Seven Methods for Handling Interruptions by under_score · · Score: 1
  105. Process, Process, Process by Anonymous Coward · · Score: 0

    Forgive me. This needs to be a quick note.

    This is politics, promises, and a perpetual "Get out of Jail Free" card for your clients. (Not your customers.)

    An ad hoc process isn't a process. GET _YOUR_ C-LEVEL EXEC TO EARN THEIR MONEY! You need an actual business process. Create, acquire, or adopt a process that takes these problems into account and implement it rigidly. This isn't the same thing as a complex process. This isn't the same as having a rigid process. It means that there are parts of the process that describe how usual development needs are handled AND how unusual development needs are handled. These documented process steps and their impacts are then are shared across the organization.

    I'll bet your sales staff know exactly how their compensation is determined, including what will delay a commission to be paid and what may cause a commission to be withdrawn. This compensation development process is just a process- that works. Everyone affected by it knows how it works. This includes what role is responsible for what activity. This includes who determines the amount, who documents the amount, who verifies the amount, cut-off date for changes, who signs the paycheck, that it gets delivered, that errors can be corrected, & etc.. The systems and software development also is just a process- that needs to work. Remember that a process doesn't define "how" something is done. A process just defines what needs to be done and requires that you can prove that it actually was done. (For many positive and helpful reasons I don't have time to address here.)

    Analogy: Get your boss to remind The Boss that a game isn't a game unless it has rules. A player that doesn't play by the rules isn't considered a player but as an obstruction on the playing field. The Boss needs to clearly establish the process for the start of the Development game, time length of the game, what is included in a game, how fouls are handled, the process by which a game is won, & etc.. Otherwise they won't be considered a Player in their organization. The Players will get The Boss removed or play around them. You've got to have a Process to be a Player.
    -BW

  106. Song remains the same by Anonymous Coward · · Score: 0

    The details of the problem are not as interesting as the underlying problem. It is human nature to want something for free. Agile beats waterfall because the tools are nearly free. Waterfall beats agile because it gives management some measure of control. Most development activity lie somewhere in between. People with political pull demanding features unreasonably usually have some measure of political pull to get their way.

    The features themselves may be incoherent to everyone except the person demanding them. This of course means an analytical problem becomes a political one. Once real problems start to get solved politically the downside becomes unbounded.

    Software is an engineered deliverable whose cost is very difficult to minimize yet it takes little to no skill to drive it in the opposite direction.

    Requirements->Analysis->Specifications that can be coded to and are testable are like thermodynamics: inexorable laws of the universe. The circle of life. A century from now this will still be the central problem in systems design and software development. There is no solution. If someone says they have a guaranteed solution then they are liars, fools or both.

    1. Re:Song remains the same by tom+arnall · · Score: 1

      i don't agree. not all companies are run by idiots. work for them and let the dead bury the dead. but if you want to be 'realistic' and take a fatter paycheck in exchange for 'compromise,' be honest, admit what yr doing, and spare us the philosophy.

  107. Re:Agile is about commitment, not flexibility by rwa2 · · Score: 1

    Ha ha, yeah, thanks for the correction! I only took a Scrum class, not an Agile class :P

    But no, you and drawfour may not use the yardstick analogy unless you convert it to metric first ;-P

    OK, J/K

  108. Not a bad approach. by dave_leigh · · Score: 1

    At a company I worked for, the project request document template resembled a contract. Included on it was a statement acknowledging in advance that any change to the stated requirements would result in a mandatory delay AND cost increase. This quashed any kvetching about delays (because now they're not really late), and encouraged people to do two things: 1. Only insert changes that were actually absolutely necessary, 2. Save "nice to have" features for subsequent iterations.

  109. Agile has answers by booch · · Score: 1

    Agile actually has some answers to these problems.

    I think the first problem you need to work on is code quality. Nothing should get released that has not been thoroughly tested. There should be no compromise on this. You're already seeing the consequences -- things don't work, developers get blamed, and nobody is happy.

    Next, realize that deadlines are bullshit -- especially in larger companies. I've found that arbitrary dates are chosen, and then they're treated like they've been set in stone. The Agile solution is for everything to be put in priority order. Always work on whatever is most important. Or put another way, work on whatever will provide the most business value. Management should be the final arbiters of what's most valuable/important. Once you start working this way (or even just realize that deadlines are made up), your stress level will go down significantly.

    Being Agile means being able to adapt to reality. (I think that's Agile's main reason for success -- it realizes such things like the fact that we're terrible at estimating and works with that reality.) Your reality seems to be that people want to re-prioritize frequently and get features turned around quickly. So change your process to something that can do that. Stop doing iteration planning, since you don't know what you'll need that far ahead of time. Instead, allow stories to be re-prioritized until the developers start on them. And consider doing continuous deployments.

    Alternatively, factor in the amount of extra work that gets added to every iteration, and leave that much extra time. This should actually already be factored in to your velocity, because velocity for iterations is defined by the amount of stories (or story points) completed within the iteration -- but only for stories that were discussed during the iteration planning. So for example, if you had 20 stories defined at planning, and 8 stories were added, but you only got 12 of the original stories and 5 of the added stories done by the original end of the iteration, then your velocity (what you can expect to accomplish each iteration) would be 12 stories.

    Another reality that Agile accepts is that you can either get everything you want when it's ready, or whatever is ready whenever you want. Most shops tend to go with fixed time periods, but a lot are starting to move to continuous deployment. If you go with fixed time periods, they need to be fixed. If something misses the deadline for this iteration, it has to wait until the next. If things were correctly prioritized and your iterations are short enough, this should not be too big of an issue. If you go with something like continuous deployment, people will get what they want quicker, but will have to deal with more uncertainty about when they'll get it.

    Of course, Agile can't solve every problem. If management is unwilling to prioritize things, or people are unwilling to deal with the reality of what can be accomplished in the given time, then you'll have to deal with those in the same way as in any situation. Which probably means learning to set expectations better, playing office politics, or finding another job.

    --
    Software sucks. Open Source sucks less.
  110. agile doesn't mean wimpy by tom+arnall · · Score: 1

    once e'one is signed off on a version, it gets implemented and used before ANYTHING else happens. and the version must include how long the thing is to be used before the next one is designed. without this principle, yr dead. and if they don't like it, go find other work. sh*t flies.

  111. Re:Agile is about commitment, not flexibility by plover · · Score: 1

    Agile works best when it's both easy and cheap to build, test, and deploy changes to an existing product. If your testing processes are slow and painful, or if your finished product is a very well defined embedded unit, like a toaster, Agile becomes only one of the many approaches you might choose.

    For example, if you're building a pacemaker or an airplane flight control system, there's an awful lot of engineering and design that has to go in up front. It all has to work together and be perfect the first time, because if you get anything wrong, you've got dead bodies on your hands. Agile may not be your best choice here.

    If you're burning a CD-ROM release of software, you better be putting out a disk you can live with. What goes in the box needs to have a reasonable chance of working well at every client's site. If you have an automatic online updater, it's somewhat less important, but still, you don't want to ship a bad version.

    But if you're building an iPhone app, you can put out a crappy 1.0 version just to see if people will fall for your advertising gimmicks and download it. Next week you can push a version 1.1 out to add a few features and fix a few bugs, version 1.2 can follow a couple weeks later, and so on. Most iPhone users are conditioned to clicking the "update all" button every day or two, and many people are tolerant of feature-poor apps. Same with web sites. You can release a new web site to the world four times a day, if you want. The trick is that it costs you almost nothing to push out a new version of software.

    Even when you can't deliver to all your end users quickly or cheaply, you can almost always use an Agile or iterative methodology to evolve the product with your clients and beta testers. The ideas for a car start out as rough designs that are tested and iterated until a working prototype exists.

    If your problem is with development and testing, though, then your options are limited. If you can't start by running automated unit tests and automated system tests of your software, Agile is just one more way to throw your money away quickly.

    --
    John