Should Developers Abandon Agile? (ronjeffries.com)
An anonymous reader quotes InfoQ:
Ron Jeffries, author, speaker, one of the creators of Extreme Programming (XP), and a signatory of the Agile Manifesto back in 2001, shared a post on his blog in which he advocates that developers should abandon "Agile". The post further elaborated that developers should stay away from the "Faux Agile" or "Dark Agile" forms, and instead get closer to the values and principles of the Manifesto. The terms "Faux Agile" and "Dark Agile" are used by the author to give emphasis to the variety of the so-called "Agile" approaches that have contributed, according to him, to make the life of the developers worse rather than better, which is the antithesis of one of the initial ideas of the Agile Manifesto...
Jeffries writes that "When 'Agile' ideas are applied poorly, they often lead to more interference with developers, less time to do the work, higher pressure, and demands to 'go faster'. This is bad for the developers, and, ultimately, bad for the enterprise as well, because doing 'Agile' poorly will result, more often than not, in far more defects and much slower progress than could be attained. Often, good developers leave such organizations, resulting in a less effective enterprise than prior to installing 'Agile'...
"it breaks my heart to see the ideas we wrote about in the Agile Manifesto used to make developers' lives worse, instead of better. It also saddens me that the enterprise isn't getting what it could out of the deal, but my main concern is for the people doing the work..." He argues developers should instead just focus on Agile's good general software development practices -- like regularly producing fully-tested software and consciously avoiding "crufty" complex designs.
But what do Slashdot's readers think? Should developers abandon Agile?
Jeffries writes that "When 'Agile' ideas are applied poorly, they often lead to more interference with developers, less time to do the work, higher pressure, and demands to 'go faster'. This is bad for the developers, and, ultimately, bad for the enterprise as well, because doing 'Agile' poorly will result, more often than not, in far more defects and much slower progress than could be attained. Often, good developers leave such organizations, resulting in a less effective enterprise than prior to installing 'Agile'...
"it breaks my heart to see the ideas we wrote about in the Agile Manifesto used to make developers' lives worse, instead of better. It also saddens me that the enterprise isn't getting what it could out of the deal, but my main concern is for the people doing the work..." He argues developers should instead just focus on Agile's good general software development practices -- like regularly producing fully-tested software and consciously avoiding "crufty" complex designs.
But what do Slashdot's readers think? Should developers abandon Agile?
This makes it really difficult for an organization to determine if they're truly doing "Agile" or some bastard form. It also calls into question methods and even formal standards built on 'Agile'.
But when I've pressed Agile Evangelists on this, usually when we've had problems and I've asked, "So are we doing Agile", all I've gotten in return is, "If it's not working, you're not doing it right."
No. What make agile work is accountability. The agile shops I've seen have what's basically a case system that tracks User Stories which describe small amounts of work. That's used to manage the teams and make sure they're move forward to some definite goal. That's the reason agile works. You can keep tabs on what your devs are doing and if they go off the rails fix it in 1 sprint.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
I disagree. I think it has a lot of good theory behind it. The problem is, the 'do more by doing less' concept *really* has to be embraced by the entire organization; especially those at the top. Too often it isn't. If you work in a place like this, removing Agile probably won't help much.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
Thanks to using tried and tested wartsandall I got a frosty pist!
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
It's got a manifesto.
Those who have to live with it want to escape it.
It slowly destroys organizations that use it.
Despite always failing "real Agile has never been tried right".
We should go chasing Waterfall?
I would say that agile is for very self-disciplined developers & customers. If I'm developing something for myself, it's agile all the way. And has been for 30 years, I might add.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Yes, we should switch to whatever Ron Jeffries is selling!
Let's build a complex system from the ground up using Agile!
Requirements? Bah, we'll iteratively improve our product!
Design? Not needed! That's not needed
Two years later:
"You need what? Ummm, we can't make those features work given this mass of interacting black boxes. Seems like nobody documented how they work together..."
I've worked in both a small shop (under 20 developers) and a decently large organization (more than 400 employees) although outside the dev shop. I had positive agile experiences in both places.
What I've found is that agile works given a few conditions:
1) The organization actually adopts agile, and embraces it.
2) The owners of the development both understand agile and have the political power to enforce it.
3) The devs understand agile and can thrive within it.
When all that happens, and I know that's not often, Agile can shine. I've seen it, and I've really appreciated it. I get how it can go terribly wrong, but it can and does work, if the environment allows it.
Velociraptor = Distiraptor / Timeraptor
we're talking about minimizing that risk. If you're having that much trouble it's because nobody's managing the queue. But at least there _is_ a queue. There's something written down that can be post mortemed. The alternatives I've seen is to write a massive design document and have at it.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
Stop believing that if you could only find that one perfect methodology, your mediocre team of developers will create greatness. It has never worked in the past, and "agile" (however you define it) is no different. Project managers and business types are addicted to this fantasy, because accepting the reality would lead to extreme cognitive dissonance.
As always, there are no silver bullets. Hire smart people, give them autonomy (they will adopt their own methodologies as needed), keep teams small, and design solutions that are as simple as possible (but no simpler). Domain knowledge and close communication with the end users helps. But all that is no guarantee of success either.
Part of the problem is the idea that with sufficiently detailed procedures, the village idiot can do theoretical physics as well as Einstein. In fact, no amount of procedure will make that happen. Quite the contrary, all that procedure means that if you ever do hire Einstein, his output will closely resemble that of the village idiot.
Consider one of the popular union tactics, the "rulebook strike". That's where they destroy productivity and punish the employer by having their members actually follow all the workplace rules and procedures rather than doing the right thing (TM,. pat. pend.). It works.
Because most don't actually do agile.
GP is criticizing scrum, not agile.
That confusion is at least half the problem. They _not_ synonyms, you _can't_ be both. Agile: People over process. Scrum: process, process, process, you are just replaceable cogs.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
Agile doesn't help developers. It doesn't make them better programmers. It doesn't produce better code. Agile is not for the benefit of developers. Agile improves information flow to project managers. It allows for better business decisions.
Theoretically if a project is going south you can even abandon the whole project and move all the resources onto something that has a chance of success. But I've never seen Agile used in this way in the real world, perhaps the sunk cost fallacy is too strong in business culture.
If you want a hint on how little value Agile offers to developers. Look at the top open source projects, look at a 100 of them, I don't care. You won't find them using Agile, you may even hard pressed to find them using bits and pieces of Agile. And I think it's because coders don't enjoy it. Coders won't use Agile unless someone is paying them, but they'll write code for free.
I've supposedly been doing agile for years, but I've never once worked on a self-organizing team who could build software without working with several external groups. And all of those external groups are set up to work waterfall. You've got the UI designer who wants to design the whole experience up front. You've got the data modeler and DBA who both want to know exactly what data you will be using up front. You've got the architect who wants the full design documented so they can spend 10 minutes looking at it and give you an approval. You've got the project manager who wants to know exactly how long all the development is going to take. So you end up having to do big-design-up-front in order to work with all these external groups.
A lot of companies say they want developers to do agile, but they need to realize that agile requires changes throughout the organization. It's not something that developers can just do by themselves.
"... we're going screw around everyday acting all busy."
When you don't know how to swim, splashing water all around seems like a great idea.
But but but my deep learning?
I was on a team that "used agile" for while. The thing is, our development workflow "before agile" already addressed the main ideas in the agile manifesto, so in practice what happened is that our development workflow was unnecessarily modified (disrupted?) to include more "agile practices" like pair programming and other buzz words (user stories, rigid application of TDD, et cetera). We didn't see much (any?) real benefit. It eventually got abandoned. Can't say I miss it.
I've got no problems with the ideas in the agile manifesto. I'm just not convinced that the practices and culture that often gets included are always worthwhile.
At every place I've worked, including the company I now own, the developers haven't been the ones that decided on the development process. The fact that they haven't decided has either been because no one actively decided, and management provided a default choice, or because management actively made a decision regarding the development process (either due to business needs, or basically arbitrarily.)
So, I believe the question of whether or not developers should abandon Agile is based on the false pretense that developers typically are able to make a decision. I don't believe that they are able to decide which development methodology they subscribe to, in general.
Agile doesn't deliver what the business wants which is to turn coding into non-creative work where you know almost exactly how long it takes to get from A to B and exceptions have explanations like traffic accidents or construction work. Nothing ever will but it won't stop them from trying so the best Agile can do is shield the developers from impossible tasks and meaningless meetings so they can spend time on actually doing development.
The first shield is the product owner, a ton of people want things and they'll go through all sorts of channels with competing priorities and sneaking in pet features. Shut them down, make that one channel in and one non-developer resource they can talk to if they're not happy with what they're getting. And no, there's no point in re-prioritizing things daily once every two weeks is fine for everything but hair-on-fire emergencies. The second shield is the scrum master, I'm currently one and my main job the way I see it is to maximize the number of hours my team members actually get work done on the things they're supposed to be working on. Particularly all fuzzy meetings called to discuss things where I say "You figure out what you want first from a business perspective, then let's talk solutions" or that are more or less status/re-planning meetings where I say "The quickest way to get it done is to let the ones working on it work on it."
It's not particularly Agile-specific, reality it's about two simple things, what should I be working on and let me be so I can do my f*cking job. Whether it actually works better for planning than iterative waterfall, meh... I've always said you should try to think and explain as far ahead as reasonable, like is this part of the functionality/structure you'd like to have in the end. You don't build a skyscraper by building a one-story building and then building one more story on top, if you know it's going to need to support 50 stories then tell us now.
Live today, because you never know what tomorrow brings
If it's embraced by the entire organization, that just makes it worse. The more parts you split something into, the greater the overhead becomes, at all levels.
"Agile, the idea, is total bullshit. Its execu-speak at its worst. Just fucking grade-a unproductive hot air"
It is not. In fact, it's quite the opposite. It's some developers thinking the problems they saw around you came from managers that didn't see the problems they were facing so, if only someone from the trenches could show to them...
Reality is, of course, that those managers are fully aware where the problems came from (if even unconsciously) and damn and hell if they want them solved, since those very problems are what give them job security to start with. Can you imagine an organization that *really* worked on the principles of agilism? Proper communication, no silos, recognition and rewarding where it's due, openly affront problems, letting those who know to take decisions... 90% of mid management (and probably executive-level too) would find themselves out of work overnight and without any valuable aptitudes for employability. Naaaah... better I fight for my fiefdom, corporate misalignment be damned, better I isolate those that know from those that decide, better I fill my agenda with meetings with others like me talking a lot about things we don't have the ability to make happen, nor the slightest hope to gain such ability in the future, so everybody thinks we are needed and that we are doing something important...
Poettering! Don't try to sneak away.
Have gnu, will travel.
Beyond the headline, here's what he says:
1) The team itself should choose the process because imposing process company-wide by business execs is bullshit. If you have a consultant come in and impose a method, that's reverse of what should happen.
2) The agile manifesto is good. (tbh it's actually kind of funny how many people are "doing agile" without ever having heard of the manifesto itself. Kind of hard to keep the core principles of the process if you don't even know they exist.)
3) All you need are three principles and those are, "release code often" "keep your code clean," and "push back against managers imaginations" by focusing on reality: what state the code is in now.
Again he reiterates, if process is imposed from above instead of chosen by the team, things will go wrong. He's kind of echoing Fred Brooks here, who said, "The teams need a process, but they choose it on their own."
"First they came for the slanderers and i said nothing."
A two week sprint is a fine idea if you're in stable / maintenance mode. You're just knocking off tiny fixes / features that can be done in said window.
A two week sprint on a total rewrite is a bad idea, even if you have a PM who buckets things appropriately for time. Things run over, one moving part depends on another, etc. The best thing about Agile is that you can deflect incoming bullshit by saying "I'll add that in for a future sprint". They never want to say they don't understand what you mean, so it's just a thanks and a handshake before they fuck off.
Most people donâ(TM)t really understand most of what they say or think. Ask a manager what Agile is. Ask a developer what REST is or browse your codebase for the ten different implementations of something called a strategy pattern or a factory pattern. Ask yourself, honestly, how much do you really understand about things you talk about or follow? How much do you really understand that diet youâ(TM)re on or how to run the country that you think is making so many mistakes? Our brains fill in all these blanks for us, all the time. We go through life imagining that we have a coherent, complete view of whatâ(TM)s going on around us but we see little and understand less. No matter which methodology we try to push, very few people will really grasp it. Most people will read about it i their lunchbreak or hear about it at some pizza and beer fuelled âdev meetupâ(TM) or maybe even do a course in it and then steamroll it into their organisation and write âimplemented [some methodology]â(TM) on their six month review, get a gold star.
But I've been on 3 projects in the last 40 years (I'm retired now) that had daily meetings. All 3 failed for different reasons (hardware issue, company died before project was done, what I just said except for a chip, not a printer).
What did these 3 have in common? The daily meeting absolutely killed morale. For the first, us software types had a daily meeting where the hardware guys would mumble, the second was at 7 AM daily, even on a Saturday morning (I was in my 20's and still half drunk from the night before, and got sucked into the project when it was failing because "you understand this Unix stuff"), the third was flat out an incompetent manager who could not remember anything day to day.
For the first, no reason for us software types to be there as there was no hardware.
For the second, 7 AM on Saturday morning? You'd have been better off letting me roll in at 9.
For the third? There was no fixing that. The manager was 100% incompetent and could not be fixed.
Developers should abandon their tendency to be cargo cultists. Don't do things just because that's the way it's always been done. Don't do things just because someone labelled them Best Practice. Don't do things just because other people have done it and it worked out for them.
The only method that works is to try it out and see where it leads, be super observant about where the pitfalls start appearing, and give yourself enough leeway to try something else if it isn't working out.
Those who do not learn from commit history are doomed to regress it.
Agile is not a proper noun, it is an adjective.
putting the 'B' in LGBTQ+
I disagree. I think it has a lot of good theory behind it.
Agile is no better and no worse that any other way of doing business. In then end, good devs produce good work as long as management isn't totally inept. Bad devs produce bad work no matter how good the management is. The simple reality is that 50% of the software developers out there really should not be developing software because they just plain aren't good at it. Trying to somehow magically get good work out of them by "empowering" them is just putting lipstick on the pig.
I wish I had a good sig, but all the good ones are copyrighted
https://www.youtube.com/watch?...
putting the 'B' in LGBTQ+
Cue the chorus ... "you're not doing it right!"
Yes, they should.
This answer is somewhat foreshortened over my previous attempt - for some reason slashdot lost my previous draft when I logged in.
50%? Optimist.
I wasn't counting the unemployed / permanently unemployed ones where the percentage is obviously much much higher.
I wish I had a good sig, but all the good ones are copyrighted
Agile, the idea, is total bullshit. Its execu-speak at its worst. Just fucking grade-a unproductive hot air
Downmodded by a PHB with modpoints?
When all you have is a hammer, every problem starts to look like a thumb.
Nobody I have met has ever seen agile actually work. I have personal experience of a depressingly large number of projects where it did nothing other than annoy the engineers and waste their time.
When all you have is a hammer, every problem starts to look like a thumb.
so by definition it can't fail.
But seriously despite the asinine definition that is illogical that the Agile Manifesto gives to this garbage, it's ridiculous to ruin the lives of programmers to push them to complete work before one or two daily meetings. Where I work now, we have four daily meetings, and if you don't have something done then our CEO requires you to wear a pink skirt and sing Total Eclipse of the Heart. Also,. Agile requires that you intentionally ruin any long term planning since you don't think long-term but instead think of sprints. Making software is a marathon, but according to Agile you work people to death for two weeks, abuse them, insult them, insult them, and then repeat that process every two weeks. It's all about abusing people as much as you can legally without being charged with a crime.
Agile is no better and no worse that any other way of doing business.
BDUF / Waterfall is way worse than Agile.
English's not your native language?
I always thought the Agile Manifesto was satire. You mean people actually took it seriously?
Let's move on to the next fad.
"When 'Agile' ideas are applied poorly, ...
When are they not?
It must have been something you assimilated. . . .
Buzzy wrong. You obviously don't work in an environment that has implemented agile development methods. It is flawed from the ground up. The solution is easy, cherry pick the east low hanging fruit and hand that to the less experienced devs.
Take the more advanced development requests and put those through a proper planning department and skip the business analysts the second the request is approved to develop using experienced devs and implement thru a more formal process. The low hanging fruit like fix how some form on some page behaves shouldn't wait for 10 years to be fixed as you'll see in most agile environments because that easy fix is assigned a low, non critical, unimportant number in the back of the line. Most of the time it would take a high schooler 30 minutes to fix the easy low hanging fruit and make 1000s of users happy. But some business analyst who can't code themselves out of a wet paper bag won't allocate the resources for the easy shit.
IE it sounds great in theory but when it comes time to implement it they NEVER implement it correctly.(Which is pretty much what gets said of communism.) Of course I find it telling that one of the big proponents has a communist sounding moniker of "Uncle Bob".
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
The original blog post, https://ronjeffries.com/articl..., doesn't actually suggest abandoning agile. Yes, those words are in the post. But hen Ron Jeffries goes on the explain that developers should instead...follow agile principles. I'm confused.
Ron Jeffries thinks corporate versions of Agile miss the mark because they "impose" a process. He says that each team should be able to use whatever process they want.
That sounds nice, kind of like free love in the 60's. The problem is that both produce unwanted results. For example, Extreme Programming was, and still is, a stupid idea. Sorry, two people can't use a single keyboard efficiently. Given total process freedom, some teams might choose this approach anyway. Boundaries must be imposed.
The fact is, a good team will be successful regardless of the process. A bad team will be unsuccessful regardless of the process. IT'S NOT THE PROCESS! It's the PEOPLE!
Hire the right people, and they'll usually have no trouble convincing management to go along with their proposed process changes.
I've lived through the waterfall era. Now I work in a large corporation that uses what Ron Jeffries might call faux-agile. It's Scrum, "imposed" by management. It actually works, the team is happy, and gets a lot done. I'll take this faux-agile any day, rather than go back to waterfall!
The result in the organization where I'm located has been "it's not my fucking problem" approach that has surfaced.
Agile is a method that works on the lower level in an organization with a locally homogeneous environment but on higher levels where it transits to a heterogeneous solution then it's applied in a way that would cause a welder to be able to code assembly and do electrical wiring as well. That turns a box of sharp tools into stone age rock bashing everywhere.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
When you have a world of mixed maintenance and development the sprint idea is totally bullshit since it collects all work regardless of size into a "one size fits all" mentality and if it's a large job that has to be done that takes time then it's often postponed until there's time to do it and then it may be too late because that job is part of the OS platform that everyone uses in the platform and nobody knows why nothing works.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
I see that on the high level in a very complex environment waterfall is probably giving the most structured way of working. I deliver a car to be tested on the road and get back the problems found.
On the low level where I work with software or hardware components then a flexible approach is better. But it requires that the whole team works in a coordinated way and that everyone knows what the reason is for what their part is developed for and what it shall interact with. A drawing of a door hinge drops down to the person making that hinge - if he can see where it's used and knows by hand the history of previous hinges made and what limits he have he can look at the drawing to see if previous problems have been addressed and then make a prototype - or even more than one prototype with suggested variations to address certain historical problems that can be tried out in test fittings. It can be subtle changes like increasing the length 10 mm to make it more stable. It will of course have to go back to the person making the drawing that the longer hinge is more stable so it won't cause other pieces to be moved that will come later.
An organization should firsthand try to avoid the situation "Jack of all trades, master of none" - everyone knows a little about everything but lacks complete specialists on any subject. Especially in large organizations. A newbie may not have much knowledge of how their part fits in, they may be fresh out of the university and have a very general and generic knowledge, so starting somewhere would give a good start, then build up competence over time and move around if they find that another part of the organization is better for them.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
The only agile that ever worked is NASA's space program launches, there each launch is was its own sprint, sometimes lasting years
And they didn't have any "agile" methodology to get in the way.
When all you have is a hammer, every problem starts to look like a thumb.
Agile is no better and no worse that any other way of doing business.
No, bzzzt, wrong, it's worse than nothing, it's a net negative for any project.
When all you have is a hammer, every problem starts to look like a thumb.
Reality is, of course, that those managers are fully aware where the problems came from
In their own minds.
When all you have is a hammer, every problem starts to look like a thumb.
Agile mind set for working is the same regardless of if you design software or hardware.
But Agile is useless when shoveling manure - there's only one way to do it and that's start shoveling.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
Careful reading of your post... good one. Tech management is a self propagating delusion, they want it that way, they keep getting paycheques for basically just wanking. If projects got finished all kinds of bad things would happen, like successful engineering leads getting promoted above them. It's bad enough that the engineers get paid more. God forbid they get recognized for competence as well.
When all you have is a hammer, every problem starts to look like a thumb.
So when the request came in to add a historic visualisation to the project, was this a new, out of the blue requirement, or was this always lurking as a nice to have feature that was hard, so had kept being pushed down the stack?
If it's a new out of the blue requirement, then there are millions of things that could have come along that would have been next to impossible to implement in the current system, but also, millions that would have fitted nicely (assuming there was some degree of thought and planning). The team should be able to push back on totally impossible to add features, and if that's not the case, then the company is not following any agile practice. You can't bolt it on at a team level and expect to see all the benefits. Turning it around, what sort of approach would allow any new requirement to be implementable?
Alternatively, it's been on the list of features and has kept been pushed back. This is then a team problem, and it's your responsibility to keep raising this. This is probably the most valuable part, getting visibility of the overall direction of a project, and being able to access and vocalise your concerns. If you didn't feel empowered to bring this stuff up, again, that's not agile.
So, badly implemented agile is a problem, as is badly implemented just about any process. Whether agile was the best fit for your project or for your company, that's a very different question, and agile is clearly not the right solution for everything, I've worked in plenty of secretive companies where agile is a problem as information is intentionally withheld from the developers, and this causes a massive mismatch which makes agile painful. If you company sees and understands these limitations, it can still work once you accept the inefficiencies.
Why? I develop services at my dayjob so we're doing both maintenance and development at once. Sprints work perfectly fine - you reserve some time for predictable maintenance tasks and then allocate the rest based on needs. The idea of epics/stories/tasks also maps quite well onto this model.
Agile is a good concept - I've included the Agile Manifesto in my courses for years. The problem is: Agile is no better than the people implementing it.
I've just witnessed this (again) in a recent project. The PM had just gotten a promotion, but he had to finish this project. He used Agile as an excuse to basically abdicate (or maybe he was always a lousy PM), and he let the developers and the customer talk together directly. The customer thought this meant that all of their ideas were flowing into the project every two weeks. The developers thought the customer was changing requirements every two weeks. The result was inevitable: a project that is 3/4 finished everywhere, totally finished nowhere, and is now likely to land both companies in court.
Crappy management is not saved by Agile. Given good management and a good development team, any methodology can work - pick the one best suited to the project and the people.
Enjoy life! This is not a dress rehearsal.
Actually how the dev cycle reacts to the workload is a very good signal for the team "agility": basically, truly agile teams will shorten their dev cycle under demanding workloads, "faux agile" teams will lenghten it.
I worked in a "true agile" company with a 1-week release cycle. Under demanding workloads like rewrites or new big products, dev cycle went from weekly to ad-hoc, which basically meant "every day".
I worked in a "faux agile" company with 2-week release cycles. Under demanding workloads the dev cycle went monthly, or worse.
"True agile" developers have to master how to implement changes in small steps: increasing throughput means implementing more small steps in the same time. "Faux agile" developers don't master that and increasing througput ends up meaning increasing the steps lenght, defeating the whole idea of agile.
Said that, very easy to say, very difficult to master, especially if you depend on choices which are counter-productive to agile, which is very often the case in large enterprises.
TL;DR: if the dev cycle under demanding workload shortens you are doing agile right, if it gets longer you are doing it wrong.
Agile is like communism: in theory a good idea, but the system quickly goes off the rails if the group or individuals do not behave in a 'good' way. First problem I often see is that analysis and design is skipped and/or not documented. The customer comes up with an idea in a meeting, this is put in a story ticket in a very simple sentence "as a [rolename] I want to do [interaction] to obtain [new feature]". But the details are never written down. Developers will write some unittests, but just enough to test some new functions here and there in different components. Testers and end users will go through a couple of scenarios by hand to test a new feature or bug. Imagine you arrive as a newcomer on such a project. What happens is that you need to be brought "up to speed" by a poweruser who explains what the application does, and for every ticket you take up you have to get extra information from your team members to get some more detailed idea of what a part of the system does and how it was implemented. Second problem I often see in "agile " projects is codebases that are very messy, with questionable design patterns, several half-finished attempts to do a high level restructuring, ownership of code ("I do not now how this part works, ask X"). Last problem I see often: self-organization gone wrong: Teams that have ran into trouble can get very defensive and have bureaucratic "definition of done" procedures ("a pull request needs to be approved by three co-developers", "unit test code coverage of all new code must be at least x% " ) or block any attempt to innovation using office politics. OTOH some teams have cowboy programmers that check in exotic libraries or "refactor" code (= have their own opinion about everything, throw away other peoples code and even think they now better how the business should work )
Agile is not for developers, but for project management/execution. If a company lets the developer decide if they want to be agile or not, something is wrong.
You have to know what you're doing and why. There is no free lunch. Management expects it to come out of development because they can do "computer magic", but it wont happen. Agile Software Development methods try to mitigate the sideeffects, but if nobody plays along agility becomes a trainwreck.
You have to know what you are doing and agility has to be a part of company culture. If it isn't, if will fail, plain and simple.
Positive example:
Sipgate is a company that does it right.
We suffer more in our imagination than in reality. - Seneca
Agile is an approach, with rules. Once you water those rules down, you no longer have Agile! That's the danger of democratically deciding an approach.
What rules are you talking about? The agile manifesto specifically says, "we value Individuals and interactions over processes and tools." It sounds like you are too focused on rules, and have lost sight of what Agile truly is.
"First they came for the slanderers and i said nothing."
Smells like some rotten middle manager with mod points scuttling around here.
When all you have is a hammer, every problem starts to look like a thumb.
Don't do shit that wastes engineering time, duh.
When all you have is a hammer, every problem starts to look like a thumb.
The fact that there are agile weenies slithering around slashdot doing downmods on every crtiticism pretty much shows you what the whole charade is about. Snake oil salesmen of yore.
When all you have is a hammer, every problem starts to look like a thumb.
BDUF / Waterfall is way worse than Agile.
Have you ever done BDUF or Waterfall?
"First they came for the slanderers and i said nothing."
No way.
I've worked with a ton of "agile" companies. All of whom produced shitty, bug-ridden, hopelessly insecure crapware with deskilled, devalued, demoralized developers.
And two vaguely waterfall - actually closer to Spiral Method - companies. Where the software was solid and the developers comparatively happy.
Theory and pontification aside, my limited set of empirical data strongly suggests that Agile(tm) is a supremely craptastic method for producing software.
They are dominating this post. Slashdot is for managers now, not us.
I agree.
I think what he might be referring to is the old problem of "urgent but unimportant" stuff getting done before "not urgent, but important" stuff.
I had an executive who was particularly "imaginative" in his development requests. He was enamored of whatever he saw elsewhere an wanted one for himself. His requests were so fast and varied that he became frustrated that he couldn't have everything... so I made him give me his "top 3" list. Give me 3 things, and we'll work on those first.
So his team gets together and after more than a month of planning, they come up with a 7 item "top 3" list. And we start work on the top 3. Every week we were going to have a progress report. So they come to the first progress report meeting all excited. They have a new project... the most important one. It needed to go to the top of the list. So I named it "project zero", since it came before project number one.
A year later the executive was under some pressure and was angry that none of his "top three" requests of a year earlier had been finished. So I showed up at a meeting with the CEO and COO with a stack of change requests... 50 of them, one from each weekly meeting, where he signed off on "don't work on those things, work on this new request". Somehow he still didn't understand that he was the one makeing the decision not to work on his "top three" items.
He was the embodiment of the "ooh, shiny" approach to decision making.
Working with that guy in an agile environment really didn't make any difference. The only thing that would have worked for him was to have unlimited resources. That way he could have a whole new CRM every month, new websites on a weekly basis, new accounting packages every other month, etc. Surely that would have worked out for his team, right?
This is spot on.
Breaking things into the smallest increments and getting the most productive ones out into the hands of the users quickly is really important.
When I was working for a small startup, we released changes "as soon as they were ready". Sometimes we'd have multiple releases in one day. Managers ran into issues where they needed a new feature and we built it, right away.
Later, as the company became a big, publicly traded company, this became more difficult. We implemented SDLC controls, signoffs, treining, etc. Releases became monthly.
Nobody on the development team liked it. All kinds of crap kept getting stuffed into monthly releases. Things that they knew were not going to be used - manager's pet projects.
Agile came along and rescued them. The small teams were able to push back against managers with ideas that didn't match how people work - getting features that lower level employees needed to do their jobs implemented quickly.
Those small changes add up quickly to be major changes. And they can be rolled out without much disruption, unlike big, three month long projects with lots of changes.
It requires people who can think like that ... taking a long term strategy and breaking it up into tiny, incremental steps. And especially making each step a productive change. There are a lot of people who don't think like that.
The problem was that the manifesto was common sense and stating plainly how good teams already behaved.
The problem is they and a whole lot of people *thought* that with a plainly spoken set of words, it would be possible to go out and fix the whole industry, which was and still is beset by a whole lot of nonsense in processes and tools.
They were half right, the short document that was easy to understand did resonate with a lot of people and the idea that the way things are being broken resonated with a lot of people, thoughout these organizations.
Two major problems happened. One is that the same traits that drove those teams to create terrible processes and abuse tools are still there, and to some extent doom those teams to always landing in the same place, perhaps changing terminology to comply with the fad (big-A Agile). Call their "status meetings" "Scrum", call their "requirements" "stories", "milestones" becomes "sprints". Change the words and 'poof' they are "Agile".
The other complicating factor is the tools and consultancy business. "Individuals and interactions over processes and tools" is not something that is a profitable stance. So that goes by the wayside and consultants revel in making money reinforcing the above behavior. Consultants know these companies ultimately are spending the money to feel better about the way *they* want to work, and they are happy to oblige. Enough change to be annoying and feel like *something* has changed, but leaving that organization structurally the same, the way management clearly had made it in the first place. On tools, well that is a mess. When asked if my team was "Agile" I replied "yes" (mainly in hopes to deflect the 'transformation initiative") and they asked "Oh, so your team has been paying for Atlassian software then?". Because we didn't happen to be using Atlassian, it was deemed we *must* not be 'Agile' and we had to undergo the bs training and migrate all our stuff to Atlassian tools and in general waste a whole bunch of time. Worse than that, they assigned folks to "help" us be Agile in an ongoing capacity, and demanded we declare 6 months worth of plans for Sprint content and get mad at us when we prioritize responding to a customer request over made-up dates for 'nice to have' backlog items,. When I point out "Responding to change over following a plan" was part of the manifesto, the ostensibly Agile-focused helpers say that's not part of Agile, it wasn't in any of their training, and that they got Agile certification so they should know.
XML is like violence. If it doesn't solve the problem, use more.
Developers will write some unittests, but just enough to test some new functions here and there in different components.
Also will say that teams have a very bad habit of saying "100% coverage" and then saying "we don't need a QA team, auto testing takes care of all of it". To the extent that my team does unit tests, I don't claim that to management for fear that management will can the QA team, which is comprised not of programmers but people from the target industry, that give functional as well as "this was a dumb idea" feedback.
As to the rest, it doesn't really matter if it's called "Agile" or not, it's the same sort of things you would see in software development before Agile came along. It's the hellish behavior that the folks originally wanted to "fix". The reality is that a bad team will be a bad team, and no matter what they are told, they will find a way to create that same horrendous dynamic using the terminology to fit the "project management fad of the day". When someone sees this and tries to fix it with another promising sounding fad, it too will degrade to what you see today.
The original Agile was simply:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Which has always been pretty obvious to anyone.
The problem with the first point is *not* was company leadership wants to be true, they want processes and tools and to be able to toss aside one person for another at will. Also, as a consultant there's more money to be had selling them "Agile tools" than just telling people to work together. So branded-Agile tosses that.
The problem with the second point is that it requires developers intimately understand the user situation and to not be so lazy as to avoid doing the work. In practice "it can be fixed in documentation" remains the "easy way" to cheaply meet schedule.
The third point is simply unrealistic, sadly. Yes from getting a quality product, this is important, but that collaboration taken to the extreme will cause the scope of needed work to grow endlessly. This is of course ok for engagements that are also effectively "limitless", but for project-driven engagements this sadly doesn't work.
Responding to change is the one point everyone would *love* to claim to be a champion of, but managers are accustomed to forecasts, and deviations from plan break forecasts, and as such management really hates this. Of course so do many developers. It's distracting to react to changes in plans and some people just aren't wired that way.
XML is like violence. If it doesn't solve the problem, use more.
Agile methods like Extreme Programming and Scrum have two sides: One side is that you get to be extremely flexible about where you're going. You get to work without a comprehensive up-front specification. Which feature you're implementing next can change at the drop of a hat. The other side is that in order to get away with that, you have to be extremely disciplined about the quality of code you produce. Unit testing, refactoring etc.
It's one thing to be flexible in how you do one side or the other. That's fine. But too often people claiming to do a flexible variation of "Agile" are just ditching major parts of the coding discipline side. But then you're not doing XP or Scrum, you're just cowboy coding.
As far as I'm concerned, scrum can fall into a river. Standups suck.
"First they came for the slanderers and i said nothing."
Overall a great slashdot discussion, with interesting comments. As a programmer, who since many years work mainly as product owner in a reasonably large project (~100 devs, and some 100 more in related SAFE trains), I think you mention many of the problems I perceive we have. We've adopted SAFE on top of mainly scrum based ideas in an attempt to get teams to cooperate better. Of course there have been/are deadlines that are hard to meet while trying to balance new features versus addressing various "debts" we have since going live with the first customer. I wouldn't say we've derailed, it's still bearable.... and the issues are not mainly due to people being lazy or caring about keeping their jobs. In the end most people try to do their best given what they are told to do and what's measurable. It's more a combination of prioritizing (end user) features with a culture of not documenting requirements or design/architecture, and the impact from how of "agile" has been interpreted. At team level there are unit tests and DoDs, but cross team refinement/design, testing, integration, delivery is a challenge. Of course it would be a challenge with waterfall, RUP, etc too... but by pushing too much onto each "self-organized agile team" the whole setup/development has become inflexible and slow.
Anyone here have experience with Agile in IT? Not software development I was in a Lean/Agile large corporation and while Agile was implemeted very well in software development, a few years after they've tried apply this in IT. While some element worked well, some other couldn't. I've left this org a few years ago and now I'm living kinda the same thing somewhere else and again, I'm not sure Agile apply that well in IT. For example, deliver something quick instead of the final product. While this make sense to fail fast or deliver in smaller blocks, it often result in supporting 2 services doing very similar thing (file server, print server, proxy, etc.) instead of one, both being incomplete and finishing the new one is often pushed back while starting another quick delivery on another service.
For example, it could mean having to say no to a CEO that wants to change things, to creatively handle certifications and audits without imposing a detailed process...
And this right here is why a lot of "Agile" efforts are misguided.
Yes, for sure, hire smart people and let them be the experts at how to do their thing. Let them automate, test, develop in small steps and integrate often, if those things work for your organisation. Don't micromanage or dictate policy unnecessarily.
But remember that developers are usually not operating in isolation. They are part of a wider organisation, and the software they build serves a purpose as part of the organisation's wider strategy. That strategy is senior management's responsibility, and the idea that the developers should be fully aware of that strategy or have final authority over anything affecting the organisation is no more credible as the idea that the CEO should understand every line of code.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
"True agile" developers have to master how to implement changes in small steps: increasing throughput means implementing more small steps in the same time.
A problem is that some work is monolithic in nature and cannot be partially released. This is particularly true the closer you get to the hardware side of things.
Agile fails when it tries to jump a chasm in three small steps.
Attempting to divide it into even smaller pieces isn't going to solve the inherent denial that some things cannot be split.
Nor that when something can be split, it doesn't mean it should, even under pressure.
Getting certifications for N components one at a time, for example, takes longer, costs more, and at the end, should you reach it, you need to get a certification for the whole anyhow.
Or you should not split security into a separate task that risks not getting done until there's been a release without security. That's bad. And I've seen it happen more than once.
--
.nosig
I've been Agile exposed in so many different ways I can barely remember what the hell Agile really is supposed to be anymore. The worst thing that can happen to developers is "We're running or own take on Agile", because "our own take" means "negatively effective".
I've got colleagues who have been required to go to 10-14 hours of ceremonies each week because they don't need a scrum master and PMs murder them with meetings where they demand to be heard for hours for no reason other than the PMs have nothing better to do with their time. Hell, I have colleagues in that situation right now where I work.
I know of other teams that (and this continues to be a complete disaster) that have an open door policy on requirements. Work gets tabled all the time because the manager wants the internal customers to feel super special and any new requirement that comes along can out-prioritize something that is 99% complete. Makes the manager appear great (somehow) but the devs look like idiots because they never finish anything. Thankfully everyone I knew in this company has vacated...
My boss had been running a relatively successful Kanban but was forced to move to Agile Scrum recently due to some guy's decision up the ladder. As a team we've made the transition relatively effortlessly in the mind space. I mean, before I'd assign work to my team based on requirements that may not fit into sprints, and it worked very well, since I knew their skills very well. I could time manage the whole thing without a lot of thought and everyone was busting out good work left and right. The only difference now is I have to fit all that into sprints, which makes things harder. I'm not supposed to give out anything that would split an iteration, and therefore I either have to spent a lot of time cleverly breaking up projects so that work can continue, or give out 1-2 day assignments just to take up my developers' time.
As I'm the senior/lead/architect of the project this is definitely the wrong way to do things. All the above reduces MY time to develop from about 36 hours a week to 25-28 because I have to play scrumbag, as well as all the other rolls, and we've been saddled by a tools that doesn't' work so well. But I do a damned good job insulating my team from PMs and other managers (ours is really good at wasting time, too, but at least understands Agile).
This sig isn't original enough, it's time to come up with something witty...
Isn't its methodologies - it's the fundamental premise that it's a solution for everyone and every thing.
If you're building custom solutions for anyone (consumer, SMB, Enterprise) - Agile is likely your friend. Go with Agile.
If you're building a consumer facing web application - Agile is possibly your friend, it depends on how clear a vision you have. If you're not sure - go with Agile.
If you're building a PRODUCT (something you expect to use unchanged - excepting, of course, new additions and features) for the Enterprise - Agile is NOT your friend - but it is most certainly the friend of the integration team who will be deploying your PRODUCT into that enterprise.
Agile is hugely beneficial in the right scenarios - usually a scenario where the people who want something don't know what it is they actually want - they just know they need something fixed.
Agile is hugely detrimental in the wrong scenarios - for example when you have a company that hires 'Agile Product Managers' who are NOT domain experts; ergo, they have no idea what is or is not good for the target market verticals.
The other problem with Agile is that they created (somewhat accidentally) a strawman argument to establish themselves - that if it's not agile it's some kind of horrifying version of 'waterfall.' In other words, a black and white situation that's simply bullshit.
I've run teams where Agile was the only reasonable approach - and it worked well for us. I've run teams where Agile would have been a disaster for us and a waterfall/spiral type of approach worked well for us.
Tools in a toolbox people - just like operating systems, languages, patterns, testing methodologies - et cetera. Right tool, in the right place, at the right time.
Know them all (or as many as you can) - know their strengths and (sometimes more importantly) their weaknesses.
The really interesting time is when you build a startup and as the company matures, so does everything inside of it (technology, operations, organizations, processes, et cetera.) You may spend 90 days head down and very NOT agile, and then at seed round embrace Agile because it's right for you. You may be agile for a year or two until you close an enterprise deal - and then perhaps you re-evaluate using Agile - or modify it.
The point is (that I am very poorly making) - You need to know when Agile, and/or some particular aspect of Agile, is or is not appropriate for you and either embrace it or distance it. Don't fall for marketing hype, or the legions of people who cover their incompetencies (primarily in the world of Product Management) by hiding behind it.
Loading...
Only scrummy people consider scrum agile. Agile people do not.
Point to any reference to Scrum in the Agile manifesto. TFA is one of the manifesto's authors suggesting that the word be abandoned, as it is now covered in Scrum and other shit.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
First, this is the first headline I've seen where the answer is an unmitigated "YES!!!!"
2) The agile manifesto is good. (tbh it's actually kind of funny how many people are "doing agile" without ever having heard of the manifesto itself. Kind of hard to keep the core principles of the process if you don't even know they exist.)
What's funny is how Agile took notes of people that were successful in releasing software projects and got the message so entirely absolutely wrong. It never was "Waterfall" or "Agile". Strict waterfall works, but it is expensive. You may have heard some of the success stories, anything done for NASA for one. Working on such a contract can be excruciating and boring, and truly leads to the misconception that all programmers are merely cogs, because in such a project merely being a medium level syntax proficient programmer is all that's required.
But back to the point - truly successful projects in the internet time-based world required faster turn-arounds than waterfall allows. It requires active management leadership, and quicker feedback loops to make up for the removal of the heavy front-end design and specifications phase. The guys that wrote Agile seem to have glommed onto a few of the traits from successful projects without paying attention to the context within they were used. Just IMNSHO. (while I respect Dave Thomas, he was so so so wrong on Agile and from what I gather he seems to concur more with the underlying basis of what I stated above) So now we're going back to a more sane project leadership based system, or at least those that are successful have done so.
The cesspool just got a check and balance.
Agile is no better and no worse that any other way of doing business.
BDUF / Waterfall is way worse than Agile.
BDUF is guaranteed to be cheaper and faster if the designer is good enough and has the right environment, and its a bottomless moneypit on the other side because you can build something that doesn't work and the suits won't know they were had until the very end when it doesn't work.
Is your organization trying to do its best, or just trying to keep from landing on its face?
And what have they proposed as an alternative?
Work.
See also: http://programming-motherfucke...
Agile is perfect for those who cannot decide and won't commit. They can push decisions to the next iteration, call it agile and iterative, and never have to decide anything...and never get anything done. Other bad aspect of Agile is that many misread the manifesto and determined that it means "no documentation". I work in a supposedly agile dev team and I haven't seen a written requirement or any acceptance criteria in years. Devs just start building a ton of disjointed stuff that they have to rework later with great effort. It is baffling that we are still successful with this utter chaos.
Quit whining about mods, you posted some lame shit there are lots of reasons people downvote you.
For his current thinking: https://www.youtube.com/watch?...
After outlining the history of the creation of the Agile Manifesto, Dave Thomas outlines some basic problems with the Agile industry (including selling fear and also pushing complex IT systems to organize work that they can charge lots of money for). He says "the values have been totally lost behind the implementation". He says we need to distinguish between the implementation (Agile/Scrum/Lean/Kanban/etc) and the specification (Agility). He says "No rules are universal (except for this one)" and that "all rules are contextual". He espouses holding close to the value of "Agility" involving figuring out where you are, taking a small step towards your goal, re-evaluating and adjusting your understanding based on what you learned, and then iterating. He suggests choosing between alternatives delivering similar short-term value based on which keeps more options open to make future change easier -- outlining Dave's Rule of Design: "A good design is easier to change than a bad design." He calls for courage at the individual, team, and company levels to know you are going to make mistakes in order to find out what needs to be done -- and to work hard to make sure those mistakes small and correctable.
A shorter summary text version:
"Agile Is Dead (Long Live Agility)"
https://web.archive.org/web/20...
"The word "agile" has been subverted to the point where it is effectively meaningless, and what passes for an agile community seems to be largely an arena for consultants and vendors to hawk services and products. So I think it is time to retire the word "Agile."
I've collected more related ideas on this High Performance Organizations Reading List:
https://github.com/pdfernhout/...
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
Agile is no better and no worse that any other way of doing business.
Waterfall: I analyze 3 month, I design 3 month, I implement 3 month, I test 3 month. After 12 month I deliver a product that is no longer adequate for a market that has changed over the course of said 12 months.
Agile: I deliver after ~6 weeks a working, tested, approved, subset of the project. Every ~6 weeks I can change course, change the scope of the project, change priorities of features. Heck, I can cancel the project after 3 sprints because I realize: the team is to slow, it will take them 18month, which takes to long, or is to expensive.
First approach has the risk of sinking a HUGHE amount of money. the second approach has the risk to sink a considerably smaller amount of money. That is the reason why most modern SD is done agile (or abuses agile by 'doing it wrong').
The simple reality is that 50% of the software developers out there really should not be developing software because they just plain aren't good at it.
That is unfortunately true for every job.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
If your "faux-agile" team managed to release working software successfully every two weeks, and had reasons to increase sprint time under pressure: then it was superbly agile and no faux at all.
And then again: if you release weekly it does not indicate at all that you are agile. It only indicates: you are releasing weekly.
"True agile" developers have to master how to implement changes in small steps: increasing throughput means implementing more small steps in the same time. "Faux agile" developers don't master that and increasing througput ends up meaning increasing the steps lenght, defeating the whole idea of agile.
You are an idiot. You do not value people at all. You treat them like machines. Worse is: you apply your own metric when a person is successful and when he is a true versus faux agile developer, actually you are an asshole.
You are exactly that where every guy here in the thread is talking about: you treat developers like slaves, press them to work harder instead of letting them work smarter. You failed to grasp what agile is about.
TL;DR: if the dev cycle under demanding workload shortens you are doing agile right, if it gets longer you are doing it wrong.
If your workload gets more demanding, your organization/company is doing something wrong: e.g. they forgot to hire more developers.
Shortening the cycles increases the "residual load", like wasted time in sprint planing, sprint reviews and sprint retros, integration testing, acceptance testing etc. The shorter the sprint the more relative time you spent in meetings and the less relative time you actually do work. You got all this completely backward. If your team struggles to deliver features every sprint, then you have to lengthen the sprint period, not shorten it. You are simply an complete idiot.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Scrum: process, process, process, you are just replaceable cogs.
Scrum dos not define any software development process.
It defines a meta process and rituals/ceremonies to keep the meta process on track.
No, it does not make developers cog wheels ... if that is happening for you: you are doing it wrong ;D
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Only scrummy people consider scrum agile. Agile people do not.
Everyone considers Scrum agile. Except you obviously.
Point to any reference to Scrum in the Agile manifesto.
Why would there be any? Point to any reference of Kanban or XP in the Agile Manifesto!
The agile manifesto is a destination of many agile methods, to nail down the core principles. Why would they need to point to the "methods" they consider agile?
And I really wonder abut your hate to "agile", "Scrum", "XP" (and other people like arth1 etc.) ... what is so fucking hard in finding an employer "Who does Agile right?" Why are you complaining all the time but seem to be _frozen in place_ instead of being _agile_ and for funk sake change your job?
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
And you yourself fall for the faux agile: that you value one thing over the other doesn't mean the other thing isn't important anymore. But if you have to choose you choose interaction over processes and tools. In practice this means you stick with a process, unless it means it stands in the way of progress and / or interaction between people. Then you dump it. A process isn't inherently evil, see also: the scrum process
There are an awful lot of lower tier ex-programmers and ex-program managers who shifted to selling Agile panacea and Scrum Master certificates. It's a guaranteed they'll fight like hell when the charade is exposed and their jobs / billings are under threat. It's all a scam as soon as someone who's not a core developer gets brought into the mix. It's an even bigger scam if points get corrupted into something billable. Estimation is an art, not a science, Agile gives it an air of science with nice round numbers that can be multiplied by dollar amounts and plugged into Excel. We may be able to fix a lot of what is wrong with Agile by replacing the numbers with emoji, otherwise it's just a repackaging of the same old project management accounting that has existed forever.
Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
Theoretical principals over observed data! Yeehaw! If Agile(tm) doesn't work for you, You Aren't Doing Agile Right(tm)!
Customers are tired of being beta testers for your broken code
Pure gold.
Pure comedy gold, that is.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
As opposed to practical headteachers?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
My comment was anti-agile, which according to you makes it "shit". Just fuck off.
When all you have is a hammer, every problem starts to look like a thumb.
What you said.
When all you have is a hammer, every problem starts to look like a thumb.
Managers obviously have more time on their hands than engineers for lurking and reading Slashdot, just building up mod point probability and waiting to pounce on agile articles, or anything that might expose them.
When all you have is a hammer, every problem starts to look like a thumb.
of committing lots of resources to it and wasting a bunch of time.
At least that is what seems to be popular nowadays.
They nouned it?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
You are an idiot. You do not value people at all. You treat them like machines. Worse is: you apply your own metric when a person is successful and when he is a true versus faux agile developer, actually you are an asshole.
First of all, learn to disagree without insulting others.
Second, learn to read and disagree on what the other person actually claims. I never claimed anything about personal success or whether a developer is good or bad, be it agile or not. I actually never claimed agile itself is a good thing.
What I claimed is that if you want to be agile and what to figure out if you are doing it right, checking how the dev cycle reacts to changes to the workload is a good metric.
If your workload gets more demanding, your organization/company is doing something wrong: e.g. they forgot to hire more developers.
Organisations cannot predict the future, even assuming they are good at planning. Furthermore, everyone makes mistakes, including those who plan. This can and will happen to most developers. It's definitely not their fault, but I never claimed it's a good thing or something I want, I claim it's reality.
Shortening the cycles increases the "residual load", like wasted time in sprint planing, sprint reviews and sprint retros, integration testing, acceptance testing etc. The shorter the sprint the more relative time you spent in meetings and the less relative time you actually do work. You got all this completely backward. If your team struggles to deliver features every sprint, then you have to lengthen the sprint period, not shorten it. You are simply an complete idiot.
Stop thinking that agile means only Scrum, especially Scrum as implemented in the typical large organisation. Of course if you implement a methodology with high overhead per dev cycle and with a high integration/deployment/release cost, increasing the cycle is going to hurt. Maybe it means you are not as agile as you think, which is exactly my point.
TL;DR: stop insulting others, stop assuming I place blame or judgement where I do not, stop thinking Scrum is the only agile methodology and that Scrum as usually implemented in large organisations is actually a good example of agile (it can be, but usually it's not).
> The more parts you split something into, the greater the overhead becomes, at all levels.
Organizations are already split at all levels. Formalizing the overhead is a net good.
I don't understand how this is misconstrued. There's still chaos, but it's in smaller groupings.
Often wrong but never in doubt.
I am Jack9.
Everyone knows me.
And you yourself fall for the faux agile
No True Scottsman, eh? Let me explain to you how you got it exactly backwards:
In practice this means you stick with a process, unless it means it stands in the way of progress and / or interaction between people.
First you have to focus on individuals and people. Then if needed, you build processes to support them. The entire focus is on the people, not on the process. If a process doesn't do that, you dump it.
A process isn't inherently evil, see also: the scrum process
Don't think of it in terms of evil. A process inherently has a cost, and so does Scrum. If for some reason you insist on using Scrum, there is one way to do it right: and that is to use it as a tool to increase the skill and independence of the developers. If you're not doing that, you're doing it wrong.
"First they came for the slanderers and i said nothing."
All processes will morph into something less than acceptable and assured over time.
That's an interesting point.
"First they came for the slanderers and i said nothing."
Pointing out that one is an asshole, is not an insult.
It is an important realization. The sooner you realize the other one is an asshole the more easy you can treat him or avoid him.
The way he talked about "true agile" and "faux agile" teams, clearly shows he does not value other human beings, hence he is an asshole.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
There are a lot of instances where a team can actually split a “monolithic” task into smaller pieces successfully. In my opinion being able to do so is a key requisite for being agile. Note that there is no shame in “not being agile” IMHO.
In the cases you actually cannot (or should not for whatever reason), maybe an agile methodology is not the best tool for the job in the first place. Again, no shame in not using an agile methodology if it’s deemed unsuitable for the task.
Let’s not be ridiculous. Insulting others is still insulting others even if the insult would happen to be the truth.
Abouth the merit of your arguments: nope. A team being “true agile” or “faux agile” bears no prejudice on the quality or value of the team. A very good team can very well fail to implement an agile methodology well for a lot of perfectly valid reasons and there is no shame in that.
“Faux agile” doesn’t mean the team is bad or not valuable: that’s entirely your own misrepresentation of what I’ve written.
I don't quite see the no true Scottsman fallacy I made but it doesn't really matter. Just replying to say i agree with your reply, and have in fact made the point more eloquent than I was able to make. So thank you
I see you have no experiences with scrum on you resume. Why is that? Well my previous employers had no use for eleborate systems like that and it didn't exist before I got there. Writes down: *Knows no modern development techniques. Thanks for your time. Don't call us, we'll call you.
Nietzsche says that if they do, agile should abandon them.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Great! If you have any other disputes with what I've written, let me know. Next time I won't accuse you of a no true Scottsman fallacy.
"First they came for the slanderers and i said nothing."
I've always referred to the poor implementation of agile as "lightweight agile." Typically, I see teams start the agile process with good intentions, yet just implement a hackie scrum implementation. This inevitable leads to the "get shit done" method of software development. Managers, chickens, chiming in with ad-hoc requests or screaming faster. Plus, lightweight agile, lead to people getting away w/ not doing work - typically poor performers. If you're not metric driving with your agile implementation your not doing real agile.
There's a good chance your organization is doing them wrong then.
Heh, the standard answer of Agile advocates everywhere.
"First they came for the slanderers and i said nothing."
There are a lot of instances where a team can actually split a "monolithic" task into smaller pieces successfully.
If by monolithic with quotes around it you mean not actually monolithic, sure.
To be more precise with "monolithic" I mean a task which a team considers monolithic, but actually it's not and another team might break down. That's kinda the point I was making: the more "agile" teams usually employ a lot of strategies to break down these kind of tasks. Less agile teams tend to do the break down only in the simpler cases.
Agile in the hands of managers is a disaster, and its managers who obsess over it the most. Agile is belng used by managers to focus on the box. Everything has become about the box. Meeting Sprints with mediocre code > slipping to produce quality code. Don't track down the bug if it will mean you miss a sprint, try to work around it instead. Success is measured by hitting these points. Even if the task hasn't been done before.Estimate how long it willl take and be accurate wi4th your estimates! Yeah, Agile has been co-opted by managers and TPMs. At this point, everything regresses to this paradigm. It's the corporate way, and the beancounters ultimatey control everything. No matter what the supposed intent is.
And so we serve the process first and foremost.
sorry for the typos, i had to complete that post before standup this morning
Asking people to estimate how long a task will take, when that task has never been done before (at least in the org), is concentrating on the box rather than the task, and it leads to sub-optimal outcomes. IMHO.
A very good team can very well fail to implement an agile methodology well for a lot of perfectly valid reasons and there is no shame in that.
And what would that mean for a "faux-agile" team?
Sorry, if a team can not implement an agile method over the course of half a year: it is not a good team, and/or its members are not good software developers.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Very true!
Partly true. That's the fourth agile pillar of responsiveness is more important than strict adherence.
I try an analogy of travel plans for a large group event. Building a big travel plan for everybody to get to the party won't work: people are coming from all places, some from home, some from work, some from distant cities. Instead, clearly communicate the destination and let each traveler be responsible for getting there.
Agile software DOES need planning. Everybody needs to understand what the destination is going to be. However, the plan needs to be flexible, responding to changes versus following the plan.
When you're driving and you encounter construction you don't follow your GPS's directions to drive through the construction barrier or off the cliff. You reroute because you value responding to change over following the plan and you understand that sometimes you need to deviate from the plan. But that doesn't mean you ignore your final destination. You may not follow your planned route but your destination remains the same.
Going through the manifesto... (1) We want everyone to be at the destination, and we care more about the fact that the people are treated as people than that they be there; if someone needs accommodations we make the accommodations because people are more important than process. (2) We want to make sure we have the destination. If the event were a big party it would suck if everyone got there and we discovered a a bunch of todo items like "rent the venue" and "hire the caterers". The plans are nice, but we need to actually make progress toward the destination rather than just making progress towards plans. (3) Helping people get to the destination is more important than details of how they get there. If individuals have different needs in order to get to the event, try to accommodate those needs. (4) We should help people reach the destination following whatever route works for them. If they need to change their route to reach the destination we should help them.
All of this is predicated on having a clear destination that everyone understands. When I've seen Agile fail that's been the biggest failing, there was no shared understanding of what was expected. When I've seen Agile succeed it was when everyone (or at least the key people) had a clear shared vision of the destination.
//TODO: Think of witty sig statement
Every "agile" house I've ever worked in has been complete chaos. The process is never implemented fully, the pieces of agile that are the most important are never there, and all it ever ends up doing it leading to more open panel free form meetings that run for hours, which means less development time on any given project. It's a joke. Needs to go.
This signature has Super Cow Powers
After 12 month I deliver a product that is no longer adequate for a market that has changed over the course of said 12 months.
If the "market" you were chasing is gone in 12 months, it wasn't really a market to begin with. It was a stupid me-too fad you should never have wasted a second of time on after you got off the toilet.
I think the problem with Agile, is that there's a language barrier with it.
People just don't speak it. So, I've taken the liberty of translating the Agile core principles into plain english so that common developer folk can understand what's being said when people talk about this stuff. I think using these principles, we'll all find ourselves being more productive, and building cogent end to end solutions and rich synergies in the enterprise.
1. Tell the customer what they want to hear.
2. Be disorganized and chaotic.
3. Pretend you’re working.
4. All tasks will either be written by or for idiots.
5. Let the loudest most incompetent people run the show.
6. Determine how many meetings your developers are capable of sitting through without losing their sanity. Require them to sit through twice that number of meetings.
7. Make sure the software works well enough for superficial demos at the end of the sprint is the primary objective.
8. Tell everyone about how hard you’re working.
9. Feign a commitment to excellence.
10. Maximize the amount of things that never get done — super important.
11. Have you ever seen Lord of the Flies? Yeah, like that, only in business casual.
12. Have meetings where you discuss your feelings.
This signature has Super Cow Powers
Oh the nitpickers again ....
Might be true might be not true.
At least that is what you learn in university, the cycle of "idea" to "put on market" is in Waterfall based processes so long that you have a high risk not to meet market demands.
And the way how long running development projects go is: they have usually no interim releases at milestones, but a big bang at the end.
If you had read any books about it, then you knew roughly 50% of all traditional projects fail with "out of budget", "out of time" or "not delivered at all", because of long feed back cycles from "idea" to "delivery".
Agile methods propose to have short feed back cycles and releases every iteration/sprint and have iterations/sprints much shorter than traditional milestones.
Can't be so hard to grasp.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
You don't build fighter jet systems or railway control systems in Agile.
Software quality is not a crime.
Kriston
Nope, that just shows you're an idiot who substitutes attempting to identify teams for thinking.
Your comment was fucking stupid, I don't give a rat's ass which "side" you're on. I said it was shit because it was uninteresting and uninsightful, not because you were wearing the wrong color shirt.
Whinging about mods guarantees you were in the wrong, so you have nowhere to argue from. Welcome to slashdot. As a new kid, please fucking learn that you don't whine about mods.