Becoming Agile
IraLaefsky writes "The appropriately titled Becoming Agile: In An Imperfect World by Greg Smith and Ahmed Sidky offers a realistic path to the family of Agile practices which have become prevalent in software development in the last few years. This family of approaches to software development has been widely adopted in the past decade to replace the traditional Waterfall Model of software development, described in a 1970 article by Winston W. Royce 'Managing the Development of Large Software Systems.' The Waterfall Model stressed rigid functional and design specification of the program(s) to be constructed in advance of any code development. While the this methodology and other early formal tools for Software Engineering were infinitely preferable to the chaos and ad-hoc programming-without-design practices of early systems, these first tools ignored the fallibility of initial interviews used to construct initial design and often resulted in massive time and cost overruns." Read below for the rest of IraLaefsky's review.
Becoming Agile: In An Imperfect World
author
Greg Smith and Ahmed Sidky
pages
408 pages
publisher
Manning
rating
9/10
reviewer
IraLaefsky
ISBN
1933988258
summary
provides the tools to introduce and adapt agile practices in a variety of corporate cultures
The Agile methodologies which are described in this text stress an iterative approach to software development, with the continuous involvement of users (or user surrogates). These iterations consist of several week periods (to at most two month intervals) where a concise partial design requirement, story, is translated to a complete executable version of the program which can be demonstrated to users, for their immediate and anticipated criticism and controlled feature addition. These practices have undergone various codifications since the Agile Manifesto of 2001. Among the more popular Agile Menthodologies are Extreme Programming (XP), Crystal Clear and Scrum.
In describing these development methodologies this practical handbook takes an approach sorely needed in descriptions of Information Technology (IT), it assumes that the purchaser is considering employing the technologies described within the context of a real corporate environment with existing strengths and limitations, an existing approach to the problems addressed, and cultural biases concerning the adoption of new technologies. This approach enables the book to be used as a virtual consultant, taking the experiences described in a case study based upon the authors' advisory experience, and the test of organizational readiness for adoption and needs for customization of the technology as true guideline for introducing these practices in culturally and technology appropriate fashion. During the mid 1980s I served as an internal consultant at a large insurance firm, at the time we were considering the introduction of Expert Systems methodologies into the IT organization. I purchased several handbooks which were intended to introduce this new from academia technology to companies in the financial industries. Most of these books did an adequate job of describing the nature and basis of this technology to IT and Business Analysts trained in existing technology. But, all of the available books failed to chart a path for an IT organization with traditional development practices to successfully migrate to the new technology and appropriately translate this technology for business management. Becoming Agile, introduces a new effective method for describing the risks, benefits and appropriate adaptation of a radically new technology to organizations with existing successful and unsuccessful software development practices and a particular business culture.
Important features of this guide include the Sidky Agile Measurement Index (SAMI) which provides guidelines in moving your particular organization to Agile practices, the non-religious presentation of multiple Agile methodologies and approaches (specifically XP and SCRUM), appendices on organizational readiness assessment, phased development within the Agile context, an overview of the Agile process (suitable for business presentation), and the author forum. The importance of recognizing that new technology methodologies such as Agile Practices must be introduced and carried out in the context of a specific organization, with its own strengths and foibles, cannot be overemphasized. Step-by-step directions and illustrations are given for choosing an appropriate target application for the initial introduction of these methodologies, and each stage of implementation and their possible stumbling blocks are carefully outlined.
That it provides the tools to introduce and adapt these practices in a variety of corporate cultures, with varying degrees of technical sophistication is an invaluable advantage over other Agile texts and will save the organization many thousands of dollars in consulting fees. My only minor nit with this exceptionally fine introduction to Agile Methodologies is that some of the illustration appear to have been formatted in PC-based tools such as VISIO and PowerPoint and require a bit of squinting to study in the smaller book format. With this trivial exception I would award this excellent guide and virtual consultant, an almost perfect nine out of ten review, and recommend it to any organization seeking to intelligently adopt Agile Practices.
The print edition is available at all retailers, while the ebook can be purchased exclusively through the Manning E-Book Storefront.
You can purchase Becoming Agile: ...in an imperfect world from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
In describing these development methodologies this practical handbook takes an approach sorely needed in descriptions of Information Technology (IT), it assumes that the purchaser is considering employing the technologies described within the context of a real corporate environment with existing strengths and limitations, an existing approach to the problems addressed, and cultural biases concerning the adoption of new technologies. This approach enables the book to be used as a virtual consultant, taking the experiences described in a case study based upon the authors' advisory experience, and the test of organizational readiness for adoption and needs for customization of the technology as true guideline for introducing these practices in culturally and technology appropriate fashion. During the mid 1980s I served as an internal consultant at a large insurance firm, at the time we were considering the introduction of Expert Systems methodologies into the IT organization. I purchased several handbooks which were intended to introduce this new from academia technology to companies in the financial industries. Most of these books did an adequate job of describing the nature and basis of this technology to IT and Business Analysts trained in existing technology. But, all of the available books failed to chart a path for an IT organization with traditional development practices to successfully migrate to the new technology and appropriately translate this technology for business management. Becoming Agile, introduces a new effective method for describing the risks, benefits and appropriate adaptation of a radically new technology to organizations with existing successful and unsuccessful software development practices and a particular business culture.
Important features of this guide include the Sidky Agile Measurement Index (SAMI) which provides guidelines in moving your particular organization to Agile practices, the non-religious presentation of multiple Agile methodologies and approaches (specifically XP and SCRUM), appendices on organizational readiness assessment, phased development within the Agile context, an overview of the Agile process (suitable for business presentation), and the author forum. The importance of recognizing that new technology methodologies such as Agile Practices must be introduced and carried out in the context of a specific organization, with its own strengths and foibles, cannot be overemphasized. Step-by-step directions and illustrations are given for choosing an appropriate target application for the initial introduction of these methodologies, and each stage of implementation and their possible stumbling blocks are carefully outlined.
That it provides the tools to introduce and adapt these practices in a variety of corporate cultures, with varying degrees of technical sophistication is an invaluable advantage over other Agile texts and will save the organization many thousands of dollars in consulting fees. My only minor nit with this exceptionally fine introduction to Agile Methodologies is that some of the illustration appear to have been formatted in PC-based tools such as VISIO and PowerPoint and require a bit of squinting to study in the smaller book format. With this trivial exception I would award this excellent guide and virtual consultant, an almost perfect nine out of ten review, and recommend it to any organization seeking to intelligently adopt Agile Practices.
The print edition is available at all retailers, while the ebook can be purchased exclusively through the Manning E-Book Storefront.
You can purchase Becoming Agile: ...in an imperfect world from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Here's a little snippet. My secretary had it pulled up on his screen.
I read through several pages and glossed through the rest. Good ideas consider how far this goes back. Definitely worth the read IMO.
Every decade or generation management and process fads change. All of them have their faults and all of them have their benefits, and none are ideal for all situations.
I wonder what the fad of the 2020s will be?
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Waterfall crushes a piece of my soul every day.
Oh, right, yet another valiant effort at demolishing a strawman of the Waterfal Model... which never really meant the carricature opposed by the "agile" crowd, and wasn't applied that way. Ever heard of iterations? Right. Apparently the agile crowd still never heard that anyone else uses those.
A polar bear is a cartesian bear after a coordinate transform.
Put down the Cheetos, lard-ass.
of agile software development.
http://www.softwarereality.com/lifecycle/xp/case_against_xp.jsp
http://steve-yegge.blogspot.com/2006/09/good-agile-bad-agile_27.html
A new entry for you Buzzword Bingo cards. The big question is whether "Agile Computing" and "Agile Development" should be separate squares or lumped under "Agile"?
I vote for a single "Agile" square.
That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
The best programmers utilize domain specific knowledge gained through years of experience to perform the project design and development tasks that make sense. Trying to generalize one model to fit all domains is doomed to failure. Mainframe COBOL screens work differently than web screens which work differently than low level screen drivers and so on.
If you're starting work in a new domain, no methodology is magically going to make things work. New domains of development require plenty of experimentation and failure. How to best build the project is going to depend on what comes out of that experimentation.
And above all, the most important factor is people. You need smart people. No amount of clever methodology is going to make mediocre programmers create a great project. And for smart people, SDLC usually stands in the way of what they already know works best.
So we've gone from over-designing systems to under-designing systems.
How about right-designing a system based on the complexity of the scope and the key personnel involved?
Is that crazy?
Agile Development is a monthly waterfall. You have short cycles, but if anything, there is even MORE up front planning than you would get for each sprint than a waterfall model and precious little time to change if things need to be retasked.
The only real advance in methodologies as of late has been to include automated testing.
This is my sig.
I eat whatever I want, whenever I want. But I also have swim practice two hours a day six days a week :)
"The difference between genius and stupidity is that genius has it's limits" - Albert Einstein
But our company software has a large installed base and we need to fix bugs in existing code and somehow graft new functionalities into existing architecture with full backward compatibility for old saved data. And the skill set of coders varies widely. There are just a couple who can even touch isoparametric element stiffness matrix code, to name just one example. I still dont know how agile is going to change the way those two guys work.
I see the advantages of early feedback, and early testing, testing partial implementations etc. But at some point for some kind of code development, Agile may not be the best way to do the code. And I am hoping the training will shed light on where I can use Agile and where I should stay clear of it. I don't want to jump on a band wagon because it is the latest and then have a minor revolt among my padavans.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
Not about actually getting stuff done. Its a new age GANTT chart remake that serves to generate a smokescreen for upper mangement about progress on technical projects. As a developer I can't fully estimate how long Schtuff is going to take to build but I can give you a firm idea of how long the next 3-6 steps will take. That unfortuneately sends traditional MBA weenies (like me) into apoceleptic fits.
The Spiral aka Boehm method still kicks the most ass as far I am concerned.
Sadly Agile and other silver bullet methods provide the means of producing better looking charts and really at some level of idiot manager its all about the slick charts, gradients in the powerpoints and how much ass you kiss. Results matter but if they don't like you they will resent you for doing good and making them look bad. As a result project managers become chart bitches and become List Management Engineers.
I'm also a huge fan of hiring fewer smarter people than huge crews of people because of channels of communication issues..
My preferred approach these days is what I think is technically called Evolutionary Prototyping. Basically you start with some rough requirements, make something to show people, get more refined requirements, and repeat. At some point when the product is useful, you go live, but in reality you're never done and just the time between deployments gets longer.
This approach is horrible for things that have to work perfectly the first time (e.g. rockets to Mars), but for web development seems to be a decent approach. It's also hard to estimate how long something will take, as the requirements aren't known up front. Still, it's what I've been using for years. I don't think I knew what it was called until our organization brought in a consultant to talk about this stuff.
I swear, between O'Reilly's animals and Manning's depictions of people from different eras and cultures, I'd say a picture of a guy with a dead bird tucked in his belt is the most random choice for the cover of a programming book that I've ever seen.
/* No Comment */
When you use the Waterfall Model there's bound to be some splashback...
and everybody is theoretically supposed to be able to do system analysis, coding, and QA. That way nobody is unique and it's much easier for them to lay you off and swap some new cog into the machine. (Ok, so I just got laid off and I was on one of the agile teams. Actually we had a bunch of agile teams and they pretty much dumped most of the people on them and kept people who weren't on them because they had unique skills. I know, I should have seen that one coming.)
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 attempt to write a Python implementation in Python, PyPy, turned into a death march. The project has been underway since at least 2003 (when they had their first "sprint"), never produced a usable system, and the European Union pulled the plug on funding. But the project limps on. There's a released version. It's slower than CPython. There's supposed to be a "just in time" compiler Real Soon Now. (This is try #2 at a JIT, not counting the schemes for outputting Java bytecode and Javascript.) Six years in on a compiler project, and no product.
The PyPy project is very "agile". They have "sprints". They have "flexibility". They have nightly builds. They have mailing lists and trackers. They support multiple output back-ends. They have about 50 contributors. What they don't have is a usable product.
Meanwhile, one programmer produced Shed Skin, which compiles Python to C++, with a speed gain of 5x to 50x over CPython.
When the problem is dominated by design and architecture, "agile" doesn't help.
That one about working software vs comprehensive documentation. I mean what company was it where they actually had a problem with too much documentation. All my experience has been in IT people don't want to document anything and that dogma would probably make them think not only is it ok to not document but it's actually a good idea.
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
Reminds me of a gig I held a few years ago. We had 2 software dev sites for a particular product line, one in the southeast USA where I still reside (5 developers) and one in Silicon Valley (about 20). A software manager out west, who fashioned himself to be a "player" (but who was really just a jackoff), decided that we needed a software methodology. He talked to a consultant. The consultant said that Agile was crap, and that as a publicly-traded firm we really really should get CMMI certification.
Of course, I did some research into this at the request of my manager as well, and found out that our group was really using Agile methodologies. We just didn't bother to label it. We had lots of testing, short tight cycles, stand-up meetings, and so on. And guess which group was the only one that met its target delivery dates?
Unfortunately, the company HQ was in Silly Valley, so guess who's opinion was echoed throughout the halls of the organization?
(Sadly, there's no ending to this story, since both teams, including myself, my manager, and the player, were let go before the plans could ever be hatched. Stupidity ran really deep in that company back then.)
What did I learn? Simple:
--- The American Way of Life is not a birthright. Hell, it's not even sustainable.
Actually, I hope you realize that -- since it's referenced even in the review here -- the 1970 article by Royce which described it (albeit not actually using the term "waterfall") was a description of a dysfunctional process which doesn't work right for software. That article wasn't a formalization of the waterfall model, but a critique of it. (And a modification to something that works better, at that.)
It's not even the only one. Several authors and books exist about making software development work, _long_ before there even was such a thing as the XP manifesto or the word agile.
So at the very least we have the first strawman: that we needed the Agile crowd to come along and wake us up to the fact that the waterfall doesn't work. It was widely known that it doesn't work, at _least_ since 1970. You know, the fun times before microprocessors and personal computers and when even Unix was still just a cutesy personal experiment.
The model actually doesn't come from computing but from RL construction and partially manufacturing. That's the place where the costs get prohibitively higher if you discover a mistake after you built the whole building. And while _some_ misguided MBAs have always tried to treat programming like a generic assembly-line operation -- including using methodologies like this one, which are utterly inapropriate -- it's hardly been the standard, de facto and de jure methodology in computing. The pretense that somehow if you're not doing a crap^H^H^H^H agile job, you're one of those using the waterfall model (never mind that it was discredited for 3 decades already) is the strawman that irks me the most. Yes, some islands of insanity exist. You have my sympathy if you work for one. No, it's not the standard in programming. No, we don't need a wakeup call or extreme methodologies to know it doesn't work. We knew that already. At least since 1970.
And in reality even the places which go somewhat waterfall-y... well, let's just say that any place that's ever had a change request or made a version 2.0 of a product, essentially has iterations. Not the best form of them, to be sure, but it is iterations. Requirements change after code has been written too.
A polar bear is a cartesian bear after a coordinate transform.
Who here has actually used Agile for embedded systems work? What were your experiences?
--- The American Way of Life is not a birthright. Hell, it's not even sustainable.
Stupid methodology for control freaks. Micromanagement at its worst!
No but if you were a fucking ballerina it would.
- For the complete works of Shakespeare: cat
I think the appeal with agile development is that it removes any barriers that programmers might have, such as rigid milestones, etc, and basically allows management to do what they want in terms of setting goals. It also is appealing to management because the knowledge sharing implies that they can get rid of their most expensive employees after a period of time (once the knowledge has dispersed). Specialized knowledge is an anathema to management, as it means that you have to pay that person more, and it's critical to the business, it's harder to fire them.
We have to evaluate agile based on it's real world results, not what the books describe. In the real-world, agile creates a very high-pressure work environment, where personal space is non-existent, everyone is watching you, and your work is constantly on display. This pressure can produce productivity gains but I would say that in the long run these gains aren't sustainable. I think agile is a very poor fit for your average introvert, which, imagine that, describes most programmers very well. What I believe will happen is that over time the better developers will move to a work place where things aren't quite so agile.
In the mean time, throwing out such ideas as design first, is going to cost us, big time. I think that software quality will drop, but it won't be obvious, as "quality" and "productivity" aren't things that are easily measurable. Often times, managers walk through a room, and if they see a bunch of people typing away or debating some design issue, then they see that busyness as productivity. No, I think the drop in productivity will become apparent when non-agile competitors clean their clocks, but then it will be too late.
This sounds and kind of looks like another description of Rapid Prototyping or how a artist does a work of art. Do a bit.. Backup... Look at it from all angles. and continue on. When will these "Thinkers" realize one size doe not fit all. You need to think of "how to do the problem" along with "How to solving the problem"... This can work for "Project XYZ" thats so open would be a nightmare if you used structured programming. But structure would work very well creating a accounting package.. Been writing & building items since the early 70's for places and clients I have worked. Used about every system in the book so to speak. No one system can do all. That's why we dont have a few tools but unbeleviable amount. The right tool for the right job. Or as a Dr said to me. "The right juce for the right bug." Else not solving the problem.
My biggest problem with quick prototypes are the users that expect too much.
Me: Here's the prototype. It's black and white, but the finished product will be in full color.
Them: This menu item is supposed to be green.
Me: That's because the prototype is in black and white. We're just trying to get the text and spacing correct
Them: That item is supposed to be red...
Managing user's expectations during the prototype phase can be a full-time job. (:-(
All ideas^H^H^H^H^Hprocesses in this post are Patent Pending. (as well as the process of patenting all postings)
"Among the more popular Agile Menthodologies are "
What's a Menthodology? Is that a minty way of making software?
Royce was actually arguing against waterfall, but a poorly worded caption led to much misunderstanding. Waterfall is almost certainly the most expensive meme in history.
There's plenty of different methodologies to writing software. IBM's Rational system combines project management, a feature request system and a code management system into an iterative development structure that I found to be very robust and fun to work with.
The idea is to start writing code now. Write the code, make sure your concepts work - and before it's been written into a budget and had time allocated to it. With each iteration of the development process, you can bring together more code and more features until you reach a release state.
Some things are better done the Old Way (limited scope project, etc) but for more major development cycles there are better ways.
- It's not the Macs I hate. It's Digg users. -
When companies move to agile style of programming (I call it Git'er done) they immediately see benefit with the speedy deployment of apps and processes. Roll the camera forward three to five years the failure to include data cleanup, loopback and redesign methods for "shortcuts and workarounds" becomes crippling. Apps that are implemented result of "git'r done agility" result in a cross platform spider-web of dependencies that is unstable and needlessly tied to one another. The entire business becomes trapped up in a giant ball of code that is unraveling in multiple places.
In the real world there is no discipline in undisciplined programming methods and deployment.
That's what happens when "finishing" is given higher priority than maintenance. If a business wants to trade finishing sooner for future maintenance headaches, that's their prerogative. However, they should be made aware, in writing, that such a trade-off is actually being made.
Table-ized A.I.
Is that, everyone gets so caught up in "hours burned" for each scrum, that what is actually getting burned takes a back seat to the deliverable. I was on a sprint where I had no hours burned for three days, which really, really sucked. But at the end, I was the only one that actually had a product that you could do sprint demo with.
This is my sig.
We are a CMMI level 3 certified shop and use agile development.
love is just extroverted narcissism
The word method may be defined as "a systematic way of accomplishing a task"; near-synonyms include "procedure" or "technique". The word methodology means "a study of methods", or perhaps "a comparison of methods", or "a science of methods".
This substitution of the word "methodology" for "method" happens so frequently that one could argue this is just one of those shifts in English usage that happen now and then, and it's time to stop obsessing about it. I don't think this is such a case—I think if a writer uses long, pretentious words in place of simpler, more direct ones, then this should serve as a warning to the reader: stilted diction may serve to obscure a lack of substance.
Now, about the word "agile"...as a buzzword it's become quite raddled by excessive use. I'm surprised someone is brave enough to use it in the title of a book.
Great men are almost always bad men--Lord Acton's Corollary
Management buys into "Agile" because they think it means "fast" ... "We'll get our software developed faster!!! Run, Team, Run!"
The reality is that "Agile" means agile, not fast. To understand this, consider the difference between a bicycle (a very agile vehicle), and a 53' long 18-wheel truck (not even close to agile).
Which vehicle you want to use depends on what you need to do:
If you launch one space shuttle every five years, but it absolutely positively must work as planned the first time; then you use a predictive model (CMMI); because the process will force you to dot every i, cross every t, and sacrifice the proper amount of goats to the correct evil deities at the most auspicious times for doing so, and your shuttle will launch without blowing up.
If you've got a small online game, and you need to add new user-ready features constantly, and the end users are happy with "a little rough around the edges", then use an agile model (XP, SCRUM, etc.); it'll help you respond to user feedback in time for it to be useful.
You wouldn't use a bicycle to haul 50,000 lbs from Florida to Washington, and you wouldn't use a big rig truck to deliver hundreds of small packages to hundreds of different addresses in downtown NYC.
Why would anybody expect a software process to fit every kind of software to be developed?
Scrum has one good point - show your code to your customer often and apply his comments. But that works only for GUI or web. I cannot imagine that in, say, medical software. For instance, one of my colleagues had to optimize crucial piece of code (some heavy math for CAT scanner). It took him several months. Only thing he could say to the customer was like "it is now two times faster" or "it is now 3.45 times faster". Not something you can really get some useful feedback on.
In another company, we were supposed to do a project for GE, and there was some serious GUI there, but their office was some several thousands miles from us and I really didn't know how we would make regular meetings with them as Scrum required. Also, they had some very elaborate specs and they did not see too much point of Scrum methodology. In some other situation, that project would be a perfect one for Scrum.
PS One thing I don't like with Agile evangelists is that Agile (Scrum in this case) is always right. It's either "what are you doing is not Scrum" or "you did not adapt Scrum to your needs", but its never the problem in Scrum.
No sig today.
The easiest way is to make sure you give yourself high dexterity. I recommend 16 or higher.
Methodology books are like recipe book. Good chefs own many of them, and draw on the knowledge and ideas inside.
But buying and following a cookbook does not make you an expert chef.
just look at microsoft. just look at how their products become outdated even before getting into the market.
there are still a lot of people who work in deep vestiges of corporate structure where this kind of old development shit is still taken as a reality of life apparently. you build code like you build a bridge, taking years and years of time and rigid structures built on other rigid components. and you are still getting paid.
the reality is, the place you are currently at is little different from an island stuck in time. it will change. reality will catch up.
Read radical news here
First, I'll start out in stating that I am both PMP and CSM certified with plenty of experience as a PM and a BA. I always find it interesting that developers have no qualms sitting back and criticizing PM methodologies or PMs who may try to do something a little different. If it's so common sense or easy, why don't you do it?
There is no best methodology when it comes to PM, and anyone who says there is, is full of it. A good PM should be able to draw upon their knowledge and experience to find the best fit for the company and culture. Scrum has serious flaws. The project isn't thought through enough, the time line isn't established early and it's extremely easy to loose features/functionality because it wasn't in the story, which was never thought out. Waterfall has flaws too. I can't stand sending out a request for approval to submit a change request updating requirement 4.3.2.5.6.4.3.3 to change the word pare to pair.
It's all about finding balance and taking the positive aspects of each and incorporating them into each project. What worked for one isn't necessarily going to work for the next, and as soon as people get over the idea of I'm this methodology or this methodology and focus on producing results consistent with expectations in a timely manner, we'll all be better for it.
Does anyone else think the mere act of labeling these things causes more than its fair share of problems?
Regardless of the methodology you use, I can't imagine there's a single person that hasn't deviated from that methodology when circumstances dictated. As far as I can tell, the sole purpose for giving these things names is so that we can sell the idea to the non-technical decision makers who are still trying to turn developers into interchangeable parts.
Nevertheless, I fail to see why XP and generally the "Agile" crowd has to compare itself only to the Waterfall Model, every single time. It's getting like listening to the Creationist crowd: they can't even make their point without devolving into just bad-mouthing Darwinism. WTF of a claim is it, anyway? "Yay, we're better than a methodology known to be the absolute worst at least since 1970"? There's a difference between it being alive in some places, and acting as if that was the only alternative to the "Agile" stuff.
I mean, BDSM is still alive and kicking, but you don't see stuff advertised as, basically, "come to our massage parlour, it's better than being whipped and crucified." Anal rape is, supposedly, still alive and kicking in prisons, but you don't see stuff hyped as, say, "our laxatives are better than being ass-raped." Copro-fetishes are very much alive and kicking, but you don't see stuff hyped to the effect of, "eat at Moraelin's Diner, our food tastes better than shit."
Yet somehow for picking a methodology, it's apparently enough to know that it's better than the worst. Oookaaay.
Here's my request to whoever out there feels a need to proselytise for XP or whatever offpring of it: Pick up, say, Steve McConnell's book, take your pick about which of his variants sounds the best and most workable, and convince me that your agile method is better than that. You know, make a claim to the effect of "we're better than some of the best other methodologies", not "we're better than the absolute worst."
A polar bear is a cartesian bear after a coordinate transform.
What do you do if the spec sheet is clear and right today, but thanks to outside events becomes wrong tomorrow?
If you methodology or other "way of doing things" prevents a nimble response to changing circumstances, it can drag you down.
Specifications are far better than no specification, but rigid adherence to something that no longer meets current needs can be worse than scrapping the project and starting over.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
A peacock's tail feathers are an evolution. Doesn't mean they are useful, or don't turn the bird into a far easier (if hard to pluck) meal.
Evolution does NOT always lead to perfection. The cheetah is so agile, so fast that it has lost all strength and stamina to defend its kills and the animal is dying out.
A lot of people get evolution wrong, they still see it as having some kind of goal, a finish line. An end result that is perfection.
There have been a lot of changes in IT and a lot of meaningless marketing drivel has been used to make them seem fancy and frankly, nothing changes really.
Go SCRUM and AGILE if you like, the rest of us are far to busy doing our job well to need to implement yet another fancy method to make us do our job well.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Waterfall? Agile? All are passing fads. There is only one correct methodology, and you are probably using it already - Avalanche Software Development Process:
http://www.youtube.com/watch?v=yR_XIPOkSmQ
Or perhaps you would like to actually implement Appropriate Design:
http://www.youtube.com/watch?v=lNUQIjGe-ec
I hate fads but this new agile nonsense isn't your regular fad. It's much much worse. I've seen "agile" used as an excuse to deliver a substantially changed final spec well into the final stages of development, then wonder why the product, which started off as one thing has been so completely MANGLED to become that other thing, performs poorly and is buggy. It's like starting off with a spec for a bridge then in the months where the bridge is almost complete despite incomplete documentation asking for that bridge to now become an ocean liner.
Furthermore all of the tools that do work - unit testing, continuous integration, thorough peer review, can all be used with other methodologies without being mangled by the mentality that is agile.
These posts express my own personal views, not those of my employer
Kill the customer. Goes amazingly well, they never complain and as long as you are in undertaking, the money will just roll in.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Has no books at all, except possibly the ones he wrote. God did not read a manual.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
PH is better than no hair.
I'm the boss and the stress made all my hair fall out.
Sincerely,
NHB
Steve Yegge's post is (line for line) more of a masturbation session on how cool Google is.
Although he also makes the point quite well that if you're all rock star coders in a company
driven by engineering instead of marketing, you don't need no "steenkin'" methodology. But
then again, that's more of my first complaint now isn't it;)
*** Sigs are a stupid waste of bandwidth.
I don't think anyone has claimed that Agile is magic or that it can make mediocre programmers create a great project.
It's just a collection of sane and rational practices to get important work done as well as possible.
I'm not too young to remember when a software change meant an overnight build before testing could be done the next day.
And then testing involved aspects of system performance which simply don't apply in many environments today - memory leaks, null pointer exceptions, DLL hell, and so on. There was a much stronger case for a more rigorous and pedestrian process, because the costs of change were higher. Being able to change and test code on the fly is something to to be taken advantage of.
That doesn't mean methodology should be thrown out of the window. A solid, lean, clean, transparent, demarcated set of classes to describe the general system and initial problem will give you flexibility to change. Keep your business, data and presentation layers separate. Always maintain stable interfaces. It doesn't have to be dogmatic.
Acronyms and paradigms aside from SCRUM, there is no other project framework that has processes to identify and highlight the interests of all parties involved in development, other than BUG TRACKING.
Business interests are described, enumerated and ranked then broken down.
Technical difficulties are described, broken down, enumerated and ranked.
Work is broken down, allocated and individual tasks assigned to and by tiers matching your company's hierarchy.
Metrics can be performed and any interest can track what happened and why (if you have decent SCRUM management software).
Talented developers don't mind (as per all the posts here), weak developers can be pointed out and weak managers are unhappy they need to spell out what they want. More things get done faster. Simply said. SCRUM doesn't address bug tracking, which is the only weakness I have found. Take care of designing how you will deal with bugs during a Sprint. Any other system, is probably usable, but certainly less efficient.
The identification and organization of addressing the various interests is much better than having (non-?)technical designs drawn up prior to implementation. This is what I have seen come out of Agile (which is just "Lean" repackaged) that can be used at any company, so I call it an advance. Not perfect, just a GOOD THING(tm).
Often wrong but never in doubt.
I am Jack9.
Everyone knows me.
"Becoming Agile: In An Imperfect World,"
Sort of like saying: Agile (i.e. Scrum) is perfect [methodology], and the world is not. Typical attitude of most Scrum evangelists: if your scrum project fails, it's because you didn't "implement" scrum correctly, you screwed up. i.e. Don't blame the game, blame the players.
I smell an air of elitism in this book. Top of the hype curve? Yep.
Who doesn't want an agile girlfriend!
If Google really cared they would fix Android Chrome to reflow text, instead of discriminating
The author of this /. post erroneously completed that last sentence. Appended above should be "it was replaced by a return to those same engineering failures of chaos and ad-hoc programming-without-design practices wrought under the name of Agile".
Pig, meet lipstick. In practice, Agile = cowboy coding; I've never seen it done any other way, even though yes, in theory it *shouldn't* be that way...
Is Capitalism Good for the Poor?
You have an orange, and are telling me it's a fruit and therefore it's an apple.
It's not.
Waterfall is ONE WAY. Iterative waterfalls are actually named different things because they're different.
You'd be better served saying "Waterfall is a strawman, and iterative models similar to waterfall DO work". Which is closer to the truth.
You better watch out, there may be dogs about . .
(well, it's a change from 'Horses for Courses')
The thing is, it's the problem of large, complex projects that Agile claims to be solving - it's those ones where BDUF is hard and problematic.
Projects that are small enough to be done by a team of 10-15 people over 6 months (initiation to go-live, plus a bit of warranty support afterwards) can usually be understood and have their requirements appropriately defined in one shot by their business customers, and then make their way through a classic analysis, system design, application design, code, test & deploy waterfall. With strong change control operating throughout, and running to hard deadlines & cross-team dependencies.
Now if part of that functionality can deliver business benefit on its own, sure you could approach it iteratively and release it incrementally to get some earlier benefit (plus accelerating the timescales anyway by parallelling the work). But I don't see how that requires any Agile magic dust, as most of the practises you could apply anyway (see GP) without taking the high and mighty "Agile is l33t/Waterfall suxx0rs" attitude.