Playing Politics With Agile Projects (cio.com)
A harsh perspective on agile software development, shared by Slashdot reader itwbennett: Politicians would be utter failures as agile project managers, writes David Taber, and for all the reasons you might imagine, but mainly because they wantonly make promises they have no hope or thought of keeping. But then he gets into the political attributes successful project managers need. And that's where things get interesting because, while he points out that agile was 'conceived of as a way of bypassing bureaucracy and internal politics,' the attributes he says are required for success are pretty much the worst of the political behavior we've all witnessed in our organizations.
For example, "A key success factor for agile projects is the ability for every team member to talk expectations down at every possible juncture. Agile should inherently involve frequent 1:1 contact with users: use that time to lower expectations! Without this habit, the inevitable scope creep and the impulse to believe "of course the system will do X for me" will get you."
His submission ends with this question. "Is it any wonder why users hate agile?"
For example, "A key success factor for agile projects is the ability for every team member to talk expectations down at every possible juncture. Agile should inherently involve frequent 1:1 contact with users: use that time to lower expectations! Without this habit, the inevitable scope creep and the impulse to believe "of course the system will do X for me" will get you."
His submission ends with this question. "Is it any wonder why users hate agile?"
I am a software dev of many years and now a software dev manager on top of that (still do dev work). Agile has got to go. Developers think that because they're programmers, they're special and deadlines don't apply to them.
The prototypical case against waterfall is BS, by the way. Short, incremental waterfall, with requirements defined by product owners and sales, with set timeframes based on developer consensus and prior work, works extremely well.
Also, and this is THE KEY reason that I'll never accept agile: if your requirements change that often, while there are some businesses where they do, YOU HAVE NO PRODUCT VISION OR PLAN. YOU DON'T JUST RUN A BUSINESS SUCCESSFULLY BY THROWING SHIT AT THE WALL AND SEEING WHAT STICKS. Sometimes that works, but it's less often than not.
No we need smaller butts so that we enjoy sitting on GREASED UP YODA DOLL even more.
how about managers stop playing games and start treating their teams as people rather than "assets".
Anons need not reply. Questions end with a question mark.
Observation from an orginization that "moved to the cloud"
Developers and managers flock to solve the easy problems
There are far too many projects attempting to deliver the same outcome
Despite having processes to document and discover projects mangers and developers do not use them
Leaders of groups duplicating work claim "are effort is just different" (actually it isn't)
Politicians would actually make great scrum stake holders, (and terrible scrum developers of course, which is what I think the op was directed at) they know what they want and the deadlines are really from the scrum master.
Also politicians would be good at scrum because they all talk the same domain speak. Most agile projects that DON'T involve a Web product fail cause the teams don't have the same domain knowledge. Hence why while fails, it focuses on the software view and that it. It throws system engineering out the door... Makes sense as syseng is more expensive than sw dev.
If you're doing "Agile Projects" or have "Agile Project Managers" you're not doing agile. Agile is a set of PRODUCT methodologies. If you assemble a project, identify scope, get seed funding, kick off, and then decide to delivery you're project "Agile", you've missed the key point of agile: adjust priorities in response to change.
I get why people hate "agile", it's because most people haven't done the real thing. https://www.youtube.com/watch?...
I don't think it's bad, exactly. I've worked in a shop that has been using agile for about 5 years now. Before agile, we had good releases and bad releases. After agile, we have had good releases and bad releases. I certainly *like* aspects of it, like daily meetings, limited goals, being two weeks from something shippable, etc. But my *liking* it is different from being able to prove, quantitatively, that it's much better or worse than any other software development method.
Please do not read this sig. Thank you.
Can someone tell me how "agile" went from being an adjective to a noun? I accept that I am behind the curve, but why didn't I get the memo?
Is "agile" a management approach, an IDE or simply a word that's made the evolutionary leap from adjective to noun all on its own, like "chubby"? I feel so lost when a term is used without any explanation in the summary. Remember, not all nerds are corporate software developers, thank god.
You are welcome on my lawn.
how did you learn about the shooting? It wasn't here. So go back to wherever you learned about shooting and talk about it there.
Not everything needs to be everywhere.
...For example, "A key success factor for agile projects is the ability for every team member to talk expectations down at every possible juncture. Agile should inherently involve frequent 1:1 contact with users: use that time to lower expectations! Without this habit, the inevitable scope creep and the impulse to believe "of course the system will do X for me" will get you."...
I am not a fan of Agile, but the excerpt I quote is blaming Agile for what should be a routine conversation among users and developers. Of course, users have high hopes and expectations, they don't have to write the software, they only have to come up with ideas for new features.
.
It is then the responsibility of the developers, in conjunction with the users, to prioritize those expectations within the constraints of the current business. This process is not limited to Agile, it is a part of every development process.
My problem with Agile is the stand up meetings. I have been at places where they go for 2-3 hours a day, with people doing little each day, and using "Wah, I'm blocked" as a way to blamestorm and shift responsibilities to other parties. I could be doing a -lot- more with my time than hearing some other person talk about their stuff, what they did today in detail, down to how many times the HANA developer shook her weewee in the restroom, what their aspirations are tomorrow, and "what have you done tomorrow" questioning.
With 0 productivity getting done during a stand up meeting, at least 25-35% of the the day is shot to hell in the finger pointing session.
Managers THINK research, design and development is PRODUCTION like MANUFACTURING, it is certainly not. It is "research, design and development". Applying LEAN from Toyota to a "production line" is NOT "research, design and development".
Best thing to do is simply, get a better manager who realises what we do is NOT PRODUCTION. Production is when you repeatedly PRODUCE an ITEM. We RESEARCH, DESIGN and DEVELOP.
Being AGILE is fine, being LEAN is fine, being treated like a CHICKEN BEHEADING PRODUCTION LINE is NOT ok.
Of any project is delivery of the goods.
Civil contruction has that handled neatly.
Sure the schedule can overun, the project my end up costing more, but in no point there is the sense that nobody knows what is going on.
And normally ("grain of salt here"), the building doens't collapse midway of the construction.
Now on software projects...
If the process works better than others, should the users hurt feelings be a reason to abandon it? Unless you just handing users some beautifully finished product and don't ever have to "bother" them, their going to "hate" anything that involves any additional work. End-users originally hated the Start/Taskbar. Users hate changing passwords. Users hate IT in general. Mac users "Hate" windows. But if a process actually works better, is more efficient and delivers better than others, screw 'em. At least that's what my inner BOFH says lol.
We use Agile in our office and for the dev team it works pretty well. Our problem comes from the management not actually having a clue about software development, despite our best efforts to educate them. We still deal with insane feature creep from above and delivery promises before we've even been informed of the new feature.
10 GOSUB TellThemWhatTheyWantToHear
20 GOSUB BlameThoseBeneathYouForFailure
30 GOTO 10
As a lead video game tester for three years, I had to talk down the expectations on the delivery schedule. The original schedule is based on what it would take for the developers to get every milestone bonus on time without any inevitable delays taking place. I usually add a month to the original schedule and a +/- two week window for code release, and my schedule have proven accurate nine out of ten projects. (The sole developer who submitted a 256-page design doc — most design docs are promises on napkins — got their video game done on time.) The developers always get pissed off when I remind them that I don't get bonuses and I'm not obligated to care about their bonuses. Most of the inevitable delays come from them trying to get their bonuses instead of fixing the problems in their code.
I absolutely agree that the Agile theory that you don't find out the requirements before you begin work is stupid. Over the medium to long term, without a plan you end up either doing work and then throwing it out three months later, or constantly working around earlier decisions, ending up with a system full of duct tape hacks. That creates unreliable systems that are difficult and expensive to maintain.
Artificial deadlines are just as problematic, however. Properly designing and building a system with certain requirements requires a certain amount of time. That can't be changed by management fiat. Regularly attempting to complete projects in less than the required time can only result in one of these three results:
A) Projects are frequently not completed on time.
B) Shortcuts are used regularly, duct tape that makes the next project take longer, while compromising reliability and security.
C) Workers are frequently asked to work long hours, resulting in turnover as well as the same problematic shortcuts as b).
Once in a while, there is an externally imposed deadline - taxes have to be filed by April 15. In such cases, you can either limit the scope and only do as much as you have time
to do, or choose from the three failure modes above.
Pretending otherwise may appear to work for a while - the product is delivered. However, by shorting time, the work was necesarily shorted - testing wasn't done, code was copy-pasted from Stackoverflow without understanding what it actually did, or perhaps to make deadline the programmers used code you have no license to use. These things will come back to bite you.
The way to quality software, reliable software that can be maintained with reasonable manpower, is to recognize that it takes as long as it takes. You can rush it no more than you can rush the growing of crops. Is this inconvenient for management? Absolutely! And the job of management is to figure out how to get the best possible results from real world, non-optimal conditions.
In fact, software development management requires talent because not only can you not dictate how long it will take to achieve a predetermined set of requirements, you can't even reliably predict it! Development is a process in which most of the work moves along at a steady pace, but the trouble spots can take unpredictable amounts of time. Yeah, that makes it hard for management. That's why management is paid five times as much as production - because they have the skills to deal with uncertainty on a significant scale.
This is just about the only thing that can help - big butt.
They don't want insight into ... ummm ... whatever it was you just said. They don't understand whatever it is you said, and they couldn't if they tried, because they can't be bothered.
They want a pony. You're just a goddam secretary (why don't you just type faster) and they'll go crying to your boss if they don't get it by this afternoon.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Talking - Yes, both sides (the person that wants the work and the one doing the work) really need to talk to each other regularly so we don't have somebody going off for 6 months and coming up with something nobody wants. (That also means the one that wants can't be silent either
Trust - Both sides have to believe that the other knows what they're doing because if they don't everyone is screwed. (That means no micromanagement. I'm always surprised how often people doing agile fuck this one up.)
Respect - Don't waste either sides time or resources. This is in opposition to talking but the point is if you want your developers to do their work don't waste their time with tech support. Builders also shouldn't waste the owners time with stupid question about minutia.
Reflect - every so often go over what did and didn't work and what could be done to improve and you really need to act on those things. (For example I've worked at places that didn't automate releases and didn't really want to check if this was a problem even when we brought it up.
Anyway in most cases what's called Agile is really cargo cult agile. (It looks like agile but things are done for the wrong reasons.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
Is to sell books and consulting about how to implement agile.
Nobody has found a silver bullet for software development yet. The endless hype cycles around different methodologies like agile spring from the desire of non-technical management to systemize programming so that low-skill, low-paid labor can be organized in a repeatable way to produce consistent results.
That's why agile in particular is so focused on short-term planning and incremental results. When you constantly roll over your programming workforce to the next group of fresh-faced college grads, nobody is capable of long-term planning or real design.
It might not be how I would express it, but what exactly is wrong with the sentiment? A development team is only able to do so much, and generally will never have done everything that the business would like from them. When you have more to do than you can possibly do, making the business prioritise and maintaining reasonable levels of expectation is important. Would users really hate a development team that manages expectations and scope creep MORE than they hate dev teams that commit to unimportant shit and give completely unrealistic deadlines and then deliver late and without the critical features?
I worked in an Agile house for 4 years.... and went to local Agile meetups regularly. Overall, my opinion about Agile is bit.. hmmm.. Fragile!
Firstly, Agile is good at getting half-baked products out of the door. Two (2) week cadences, where features to be build, demo and shipped is quite narrow... and you get time to barely test it. Yes, you can demo it is working, but it is the tip of the ice berg. How the feature interact with other features or infrastructure is the iceberg what's below the water surface.
Secondly, Agile is good at sweeping hard work under the carpet. For an example, because there is no centralised architectural thinking or planning, every developer goes wild and build their own architectures... half of them are duplicates doing similar functions (and not to forget, poorly tested). Things like database or API designs generally takes lot of planning and thought process. By design, Agile doesn't allow such lengthy ventures.
Thirdly, Agile not scalable. Agile works best for smaller website projects.. say 5-6 page dynamic websites. If you are to do a huge mission critical project involving 100+ templates, 20+ devs so on... Agile will fail half way point, and you will have to downgrade to Waterfall, and pretend you are doing Agile to your client... which method I christened as "ScrumFall" (after James Bond movie).
Overall, I promote "prototype, maturity and ship" model (I don't know there is an actual name for this). Basically, try out prototypes first.. if it works, then promote to regular development, and finally production. I see JavaScript & C++ language committees adopting a similar work cycle. Overall, they are doing pretty well IMO, with regular releases and good quality.
People kill projects. https://www.youtube.com/watch?v=BKorP55Aqvg
> it is impossible to find out the full requirements before you have tried putting out some code.
>... emphasis on the word "full"
You may never fully understand all of the users' needs and desires. There are three approaches to handling that:
A) Ask the user's manager what the requirements are.
B) Walk over to the user's desk and watch them work for 30 minutes, asking questions.
C) Guess, then build the minimum thing that might address some of the requirements.
It's well known that option (a) doesn't work. It's frequently tried, and rarelt effective.
With option (b), I might get 90% of the requirements up front, and have those in mind from the very first moments that I start thinking about a design. I'll also get a rough idea of what categories of additional functions or requirements may come up in the future. Often, I see how the requirements could be simplified by removing a redundant or unnecessary part of the existing process. The point is, I get 90% of the requirements up front.
With option (c), you design and build something that meets 10% of the requirements. When you try to deploy it, you learn about another 10%. So you scrap it and build something that meets 20%. You try to deploy that and learn about another 20%, so you shove twice as much functionallity in wherever it will fit, creating a bit of a mess. You deploy that and find out about another missing 20%, so you pile that 20% on top. Then you learn that the 40% that's still missing is the important part, so you rip out the guts, keeping the gui, and shoehorn the new guts into the old gui. Now you meet 80% of the need - still less than the 90% you could get the first time by sitting down and watching users work before you design anything. And your 80% code is an unholy mess from shoehorning new stuff in at each stage.
Agile was conceived as a method for managers to get more work out of developers for less money.
However, as most manglement techniques are, Agile has been turned on it's head, and is now a method for lazy developers to do LESS work, while completing more BS "tasks", then blame the "Team" when shit doesn't get done.
The purpose of business software is to support the business. Not vice versa. Businesses requirements have scope and deadlines. Software developers are responsible for telling the business how long it will take to achieve the scope, and work with the business to set the expectations and deliver on time and budget. Business needs almost always involve far more than just the development shop: advertising (which means customer expectations... which can kill a company when it doesn't deliver) and regulatory complianc are two big ones that come to mind. The original AT&T failed miserably to deliver software the FCC said was required to provide cell phone number portability which caused huge fines to be levied against them, backlash from customers, and their stock to drop so that Southwest Bell could buy them out and become the "New AT&T". Development supports the business and agile doesn't support hard set/business due dates.
-- I ignore anonymous replies to my comments and postings.
I've figured out that the design /production team has these mandates ;
Executive management wants reduced costs.
Product owners want product that is on par with the competition.
Dev team managers (yay, plural) want achievable goals.
I work on a servicing team. I want either functional product or what to tell customers when it isn't.
Agile has changed the time frame of failure from months/years to weeks. Can I define that as success?
deleting the extra space after periods so i can stay relevant, yeah.
The right answer to expectations and timelines: fuck off, it will be done when it's done, but we'll do our best. At Google this is handled by setting quarterly goals, and then watching them whoosh by when the quarter ends. Or not, in this regime things often do go faster than expected. The key mechanism that makes it work is the reward structure: Google rewards launches and basically nothing else. Want a bigger bonus? Launch something. Want a promo? Launch something. And so on. And I can personally confirm: you get the behavior you reward, for better or worse. All this daily meeting bullshit would just get in the way of adults doing their work.
Netslaves never have a nice day?
You should be trying to advance to higher caste in the New Media World Order or whatever they call it now
"agile" is just the current meaningless buzzword that the current crop of consultants are using to fool morons with MBA degrees into pouring money into consultants that should have been spent on their actual teams.
There's nothing new here. These buzzwords come along every few years. There's some new hype launched around some old idea masquerading as a new idea and wrapped in some TED-worthy or Steve-Jobs-worthy tech talks with PowerPoints etc.
There have been lots of these, and there will be more as long as pointy-haired bosses (hat tip to Scott Adams) are around. I remember the tidal wave of hype about "fuzzy logic" where everybody was rolling-out products that used fuzzy logic and consultants were making money talking about it, lots of people were pretending it was some big new idea.... then people realized that at its core it was basically replacing if(x==5) {...} else {...} with something like if(x5) {...} else {...} and then noticed that they'd always been doing that where appropriate already..... and you just don't hear much about "fuzzy logic" anymore. KAPOOF! Fad destroyed. Consultants off to think-up new buzzword.
very carefully wrote second stupid example as "if(x lessthan 5) {...} else if(x greaterthan 5) {...} else {...}" saw that it looked good in preview, and than watched it post in a broken manner. (the escaping of the lessthan and greaterthan worked in preview but not in post) [head scratch]