Lean Software Development 135
Jim Holmes writes "Mary and Tom Poppendieck's Lean Software Development: An Agile Toolkit is a great read for anyone interested in agile software development. That includes developers, leads, and managers interested in speeding up development cycles, improving quality, and getting their customers the best value. This book's been out since May, 2003, but it's well worth picking up. The concepts within are absolutely applicable now, and will continue to be for quite a few years." Read on for the rest of Holmes' review.
Lean Software Development: An Agile Toolkit | |
author | Mary and Tom Poppendieck |
pages | 240 |
publisher | Addison Wesley |
rating | 9 |
reviewer | Jim Holmes |
ISBN | 0321150783 |
summary | Toolkit for getting agile development in your organization. |
Lean Software Development is full of pertinent comparisons between the current state of software development and the massive changes in manufacturing over the last three decades, specifically demonstrated by the Toyota Production System, and 3M's innovative atmosphere for bringing products to life. The Poppendiecks make a great case as to how similar changes in software development can reap great benefits in the software production industry.
Who It's For
The book's very useful for anyone involved in or around the software development process: developers, leads, managers, and corner-office types. Corner-office types won't get as much out of the book as those in the trenches, but the Poppendiecks' arguments against overly-constraining process management systems may help high-level managers come to understand that such systems can actually hurt production.Who It's Not For
This book isn't for closed-minded folks who think the waterfall method and a preponderance of documentation and process control are the bee's knees. The book talks specifically about how Six Sigma, Capability Maturity Model (CMM), Capability Maturity Model Integration (CMMI), and Project Management Institute (PMI) certification can drag down development productivity and quality. Also, it's not for folks who are unwilling to consider that shorter delivery cycles improve feedback, quality, and lower cost.(Note that the authors specifically point out that agile development does not mean tossing out all documentation and process.)
What It Covers
The book is labeled a "toolkit" for lean development, and it describes 22 "tools" -- that is, approaches which will help an organization move to a leaner development system. The authors start off with a great explanation of what lean practices are and how they can benefit software development. They then move on to more detailed coverage of important principles.The book's broken into chapters covering the seven principles the Poppendiecks lay out as fundamental to agile practices: eliminating waste, amplifying learning, deciding as late as possible, delivering as fast as possible, empowering the team, building in integrity, and seeing the whole. Those seven principles may sound like marketing blabberspeak, but the Poppendiecks nail each section down with terrific discussions of applicability.
They've also got great examples tying the principles into how manufacturing has so drastically improved its processes. Each chapter concludes with a "Try This" section aimed at getting your group moving in a lean direction.
The second biggest benefit after the book's content is the extensive reference list. There's an impressive bibliography, and each chapter is loaded with footnotes referencing various books, articles, etc. This gives interested folks a great guide for further reading.
The book's summary chapter is especially good. It concisely wraps up the book in the somewhat tongue-in-cheek format of an instruction sheet for the tools the Poppendiecks have laid out. The "Caution - Use Only As Directed" section is particularly useful because it shows how one should not use the principles: "Eliminate waste does not mean throw away all documentation," and "Deliver as fast as possible does not mean rush and do sloppy work." The summary also breaks out high-level details for implementing in large and small companies. The authors are particularly helpful in pointing out strategies for dealing with difficult process improvement programs such as Six Sigma, CMM, and/or CMMI. They point out the political aspect of how to approach implementing agile methodologies in organizations constrained by such "helpful" policy systems.
There's also a note for folks working in safety-related fields where regulations and immense processes dictate how to do work: Shortening cycles in such environments can better ensure people aren't killed by software failure.
What It Doesn't Cover
Despite the great coverage of the principles and tools, this book isn't a detailed guide for implementing agile processes at your organization. The authors are very adamant that no two organizations function alike. Implementing agile processes requires some careful forethought before jumping in. The authors don't advocate any one methodology over another, so don't look to this book for help in deciding whether you want XP, FDD, SCRUM, or any one of the other alphabet-soup-of-the-day agile buzzwords.Additionally, I thought a few items were given pretty cursory coverage. One example is in the chapter on late decisions where the authors breeze right over implementing a quick persistence layer to put off deciding on exact database implementation. I particularly would have liked more detail in that item. On the flip side of that; however, is the great detail given to value stream mapping, feature implementation burn rates, and several other very, very useful items - so my complaint is really that one particular item I'm working on right now wasn't covered as well as I'd have liked.
Bottom Line
This really is an important addition to your reading list if you're at all interested in learning how an agile environment can increase your speed, quality, and cost effectiveness. It's a great book if you're in need of guidance on how to look at and improve your current environment. It's also a great book if you need backup for convincing either your co-workers or management that a move to agile is necessary.You can purchase Lean Software Development: An Agile Toolkit from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
hmmm (Score:2, Funny)
Re:hmmm (Score:2)
Book [amazon.com]
ToC [amazon.com]
Re:hmmm (Score:2)
eXtreme Programming? (Score:3, Funny)
I'll have to write a book myself: "Anorexic Programming" by Smart Ass. "The Ultimate in Lean and eXtreme Programming"!
Re:eXtreme Programming? (Score:2)
Re:eXtreme Programming? (Score:1)
There are a lot of similarities to XP. God forbid we have two similar development methodologies. What's next? One operating system;')
Re:eXtreme Programming? (Score:3, Informative)
And there's no competition there. The Poppendiecks led several sessions at Agile 2005 [agile2005.org], the big XP conference in the US. XP is much more about what goes on at the team level, while the Poppeniecks are more interested in broader business and corporate culture issues.
Re:eXtreme Programming? (Score:2)
I'll wait for the follow-up, "Bulemic Programming: Avoiding Binge and Purge Coding." That's a title that would grab my attention. We've been doing that here long enough that the code base needs a major purge (refactor). I just hope I don't end up with it on my shoes....
Requirements? (Score:2, Insightful)
I haven't read the theoreticals of a lot of these methodologies but have worked in several places that say they practice them. What I've found is a bunch of developers (not saying anything about their programming skills) that don't understand databases or design of data structures. I find it difficult to extend many of these systems that are frankly poorly desig
Re:Requirements? (Score:1)
The book talk quite a bit about the importance to have competent people at the right place (seems like an obvious advice, but
Re:Requirements? (Score:2)
You should check out things like Agile Modelling [agilemodeling.com] and Agile Data [agiledata.org] for more information. I don't think it's core to agile methods, as not every application uses a database. But if you're big into databases, these sites can help you see how agile approaches could work in your environment.
Do these methodologies include some prep work on gathering business requirement
Re:eXtreme Programming? (Score:1)
If you can somehow emphasize the naturally low-carb properties of this programming technique I think you'll have a winner...
Sheer ignorance. Agile came from Lean. (Score:2)
More importantly, Mary has delivered real product from more projects than most of us have ever attempted. She brings real credentials earned in product development to the table. What do yo
Close-minded persons (Score:3, Funny)
I think the waterfall method and a preponderance of documentation and process control are the bee's knees.
Seriously, who uses the phrase "bee's knees" anyway and what is so great about bee's knees?
Re:Close-minded persons (Score:5, Informative)
Re:Close-minded persons (Score:2, Funny)
Re:Close-minded persons (Score:2)
Re:Close-minded persons (Score:1)
You missed the Anglicised version: The dog's bollocks.
(The mutt's nuts for those that prefer rhyme)
Re:Close-minded persons (Score:2)
I guess it's more PC than saying something is "the cat's ass". Much like saying "poop" or "#2" instead of "shit".
Re:Close-minded persons (Score:2)
I flex them regularly, and rub them with baby oil every evening.
Ive just ordered the book, so I will wear shorts, place the book between my perfect patellas, walk down the street, and passing people will exclaim "Cor Blimey!" and "What a fantastic threesome!".
Yeah right. (Score:4, Insightful)
Cobblers!
I remember distinctly reading on some Agile XP whatever site that CRC cards (the documentation is the code and unit tests!) are used long enough to get the devs on board with what to do AND THEN THEY ARE DISCARDED.
Stuff's real good if you're doing your comp sci 101 homework but in the real world you need a process.
Re:Yeah right. (Score:2)
CRC cards are not documentation. They are an artifact of the development process. You can hang onto them for historical records if you find them useful, but they are inherently out of synch with the final product (except by coincidence).
Re:Yeah right. (Score:4, Interesting)
Remove the mention of CRC cards and you've perfectly described documentation.
Re:Yeah right. (Score:4, Informative)
Yeah, people often freak out about that. I tell them, "Ok, then you can keep the cards." They will happily put them in a box and then never look at them again. Myself, I don't use CRC cards much, I just sketch UML on the whiteboard. I do tend to leave the last few months of story cards up on the wall, though.
Note that the most important documentation on an XP project is the acceptance tests, which you can think of as either machine-verifiable specs or automated versions of what QA people often do manually. Those say what the product is supposed to do. One framework for this is FIT [c2.com], which uses specially structured tables in HTML documents.
Unit tests, on the other hand, are where developers say what individual chunks of the code are supposed to do.
Anorexic Programming (Score:1)
Re:Anorexic Programming (Score:1)
I think it has more to do with making the program feel like it's worthless because it's too "fluffy" and should really try to slim itself down to the point of massive internal failures and breakdown until it dies.
Re:Anorexic Programming (Score:1)
That would be Perl.
Re:Anorexic Programming (Score:1)
Well, they make me sick anyway....
it's a troll... laugh
Seems to me like it's an oxymoron... (Score:4, Insightful)
Most upper management are only about those things! Besides, having coded for companies before, I know that if you don't properly document your code and make sure you have a preponderance for process control in place typically the whole thing goes to shit. And what is this about the bee's knees!?
Re:Seems to me like it's an oxymoron... (Score:1)
The Agile movement is about the notion that there's another way to keep things from going to shit.
And what is this about the bee's knees!?
A quick Google search [google.com] gets you three explanations in the first 10 results.
Re:Seems to me like it's an oxymoron... (Score:1)
Re:Seems to me like it's an oxymoron... (Score:4, Insightful)
-Taken from this essay on agile documentation [agilemodeling.com]
I agree with the above, but it is my experience that the reinforcement on developers generally needs to be in creating more documentation. The environment will naturally make all the difference. In the nasty corporate arena (my habitat), many people feel that being the only one who knows something, is their ticket to job security. As a result, they will not comment code or divulge information to anyone, etc. Unfortunately, management encourages these insecure people through among other things, a lack of employee loyalty and an eagerness to cut costs by giving valuable and veteran employees the axe, among other nasty things. Thats my take anyway.
Bed goes up. Bed goes down. - Homer Simpson
Re:Seems to me like it's an oxymoron... (Score:2, Interesting)
Ask yourself what goals you're trying to achieve with documentation. It sounds like you care most abo
Really... You Just Laid Off Half of the Staff! (Score:2)
Process employs these losers. We need PROCESS!! And LOTS of IT.
Lean Six Sigma? (Score:4, Informative)
There's big money in that, my graduate software engineering course last semester had a speaker in from a NASA contractor that pushed LSS as a way to manage all kinds of different engineering and production variances e.g. misfiring rocket engines.
Re:Lean Six Sigma? (Score:4, Informative)
The idea behind agile software development is that you can not apply production line type ideas to software development because two software development projects are never the same. This is why estimating and planning for them is so difficult. Agile software development says that you should just admit that developing a software product is more like research and less like running a production line and plan it accordingly. This means doing short explorative iterations that slowly build up to a larger deliverable and constantly inspecting the process and the schedule and making course corrections on the schedule.
Re:Lean Six Sigma? (Score:1)
I would say that LSS is somewhere in the middle, recognizing that a large enough project needs some structure while allowing a certain amount of mobility within said structure.
Re:Lean Six Sigma? (Score:2)
Do you agree with that? In my experience, the size of the project is independent of the "structure". I use a CM system whether I'm working by myself or part of a 50 person team. I require having a way to repeatably build and test the product. I make sure that assembling all the artifacts for a release is as simple as pushing a button.
Re:Lean Six Sigma? (Score:1)
lean product development (Score:2)
Re:Lean Six Sigma? (Score:2)
They both come from the same background, which is nicely summed up in The Machine That Changed The World [amazon.com], by James Womack. Lean, Total Quality Management, Six Sigma, and Agile all owe substantial debts to Toyota, and this book describes it nicely.
Re:Lean Six Sigma? (Score:1)
No, it's based on the ideas behind lean manufacturing like the Toyota Production System. It kind of parallels the book Lean Thinking which was a followup to The Machine That Changed The World. Both books cover the Toyota Production System.
It's also not a repackaging of XP. Lean Software Development is based on a set of principles that can be applied whether you are doing XP, Waterfall, Scrum, RUP or whatever.
Bees Knees? (Score:3, Funny)
Link for those who the book (Score:1, Redundant)
Just went thru this (Score:4, Insightful)
Doesn't work for everything, but when it does, use it.
Re:Just went thru this (Score:4, Interesting)
I have been dragged through numerous develop now, design later! projects, and each one of them has gone over schedule. I'm still trying to clean up this current project that I got hired into. The users were still bringing us new requirements for the invoicing system 2 months after it went live. Not to mention the actual framework that the app was built off of was a hodge podge of misc code. Finally we are getting things standardized and working on a solidified portal and framework system. Poor planing, a complete lack of requirements gathering, a complete absence of a clear unified design, and many other poor initial lead and management decisions have us still working on corrective maintenance for an app that was released six months ago. All for the sake of developing and releasing the first version in 4 months. No thanks, I'd take 4 months of design and huge emails up front in exchange of 8 months corrective maintenance any day.
-Rick
Re:Just went thru this (Score:1)
One of the issue is to know when to document and when to keep it an informal discussion. An out of sync documentation is probably worse than no docs.
And as all things, the best aproach depends of the project. I
Re:Just went thru this (Score:1)
This project, we have some useful information in a well formated layout. It's wonderful when I can open a folder and goto the specific module I'm working on, see the original requirements, notes, and update requirements, sample output, etc. Unfortunatly, not all of the folders are full or accurate. But if we had that documentation in place when we st
Re:Just went thru this (Score:2)
If that's how your agile attempts are going, you're doing it wrong. In particular, I suspect you're not writing unit tests and acceptance tests, you're not devoting sufficient time to refactoring, and I'd bet that the person making feature choices is not in the roo
Re:Just went thru this (Score:2)
Re:Just went thru this (Score:5, Insightful)
The key to agile programming is being able to actually handle massive requirement changes. I'm talking about the kind of requirement changes where all of those precious unit tests and acceptance tests you wrote get invalidated overnight. If your requirement changes are more minimal, then they're not going to be a problem with either method. They key to being able to handle massive requirements changes is good software design. Excessive coupling between components means that when one component becomes worthless (because of said changes) its hard to salvage other components that are still valuable because they are too tied to the deprecated component. Without good software design, agile programming won't help in the worst case scenario. This is especially important for agile programming, because its approach increases the likelihood of the worst case scenario.
Now I will say that a waterfall approach leads to several bad practices. First, it leads to a mythical man-month type of fallacy. Management tends to think that because of all the documentation present that they can manipulate "resources" like pawns in a game of chess. Second, it encourages bad design because you think you know everything. Third, and this is the worst to me, it gives false value to low value assets, i.e. people who don't actually produce anything. When a company values its process more than its employees, then it winds up hiring lots of people whose only function is to manage the process. Of course this is not unique to waterfall companies, but their emphasis on process does encourage this.
Agile programming also encourages several bad things. It encourages the over-valuing of development and under-valuing of design. I've often seen programmers with the attitude that's ok to build something that sucks because they will make it better in the future. Second, it tends to encourage overly-conservative programming. Its faster cycles discourages tasks that don't easily fit into these shorter cycles.
Of course the biggest limitation of agile programming comes from its roots. It clearly shows its consulting roots with its need for customer involvement. The kind of customer involvement it wants is very expensive for the customer (if we're talking enterprise software, maybe it's cheaper for consumer software.) If the customer is already paying you to build the software, then they might be willing to make this investment. If instead the customer is only a potential customer who might buy the software when it's done, then they are much less likely to make such a large investment.
Re:Just went thru this (Score:1)
I understand , but not true in this case. (Score:2)
We're re-engineering a process, throwing stuff out and discovering what's do-able and what's not. The concerns and issues involved are real, but many are simply what I'd call "dragging the walrus
Re:Just went thru this (Score:1)
The example you give is a POORLY managed project, and would have failed no matter what methodology was used. Someone might have been using "agile" or "lean" as an excuse t
Re:Just went thru this (Score:1)
And the problems I have run into have almost entirely been due to poor management. Not due to one style of development or another, just poor management in general, or in specific situation that have consistantly caused delays. There are the occasional technical issues, but where a bad technical decisio
Re:Just went thru this (Score:1)
I very much agree that shunting off user requirements can be costly. It might make initial project development cheaper, but it makes the product worth less. One of the things I like about iterative development, is that it provides a clear approach to handling late breaking user requirements. One of the things that I like about good old waterfall, is that you invest enough time in planning to be able to crea
The Winds of Change (Score:2, Insightful)
This book's been out since May, 2003, but it's well worth picking up. The concepts within are absolutely applicable now, and will continue to be for quite a few years.
Is it just me, or are things changing too fast when a development process has a shelf life of less than two years?
If you want to feel your head really spinning, pick up a copy of The Mythical-Man Month. Things don't actually change that much.
Re:The Winds of Change (Score:5, Insightful)
I've been seeing this agile stuff for almost 8 years, and that doesn't mean it wasn't around before that.
So, gather around boys and girls, here is how you write software (does not apply to stuff like mission critical embedded software)
1. Ask customer what they want
2. Build something
3. Show it to customer, and ask what they want changed
If you make that cycle short, have good engineers, reasonable customers, and competent management, you will rule the universe.
What happens is that projects often have stupid and/or lazy people involved, so there are tons of failed projects. So, awhile back, the academics get together and come up with this deal where you do this extravagent design/requirements process upfront. TEH SAVIOR!!!
Yep. Anyone who hasn't read F.P. Brooks... (Score:2)
Re:Yep. Anyone who hasn't read F.P. Brooks... (Score:2, Informative)
I don't think that's entirely true. Test-driven development, for example, seems pretty new. Hardware cost had to be pretty low before each developer could compile and run all the project tests every few minutes of development. I also don't remember Brooks talking about weekly iterations.
That's not to knock "The Mythical Man Month", by the way. I com
Re:Yep. Anyone who hasn't read F.P. Brooks... (Score:2)
Good points. In terms of practices you're quite right, and there's a lot about the how things get done today that couldn't be done 30 years ago. The values and the emphasis on people as a fundamental point of building software still remains. I'm of the opinion that Brook's "surgical team" can be realized in pa
Re:Yep. Anyone who hasn't read F.P. Brooks... (Score:2)
I think you mean near 1/3 of century.
Hypocritical reviewer? (Score:1, Redundant)
It's About Time (Score:3, Informative)
Yet I have never had a large client try to push a project development methedology for software on us. There has never been discussion of any of these, and it seemed that for the most part, we as a group were on our own when it came to evaluating various options.
I've been waiting for someone to start talking about the various paradigms and structuring philosophies for a while. For projects as complicated as large software systems, it is frequently a lot of trial and error, followed by more of the same. Finding any comprehensive discussion has been impossible. Hopefully this will foster more books on the topic. Software is becomming such a critical part of corporations, government, and daily life, that not only are the tools that we use important, but so is the way that we use them.
I would also be interested in seeing some sort of discussion as to how various team-structuring philosopies fit with various classes of development tools. For example, database development lends itself to a different approach than web design, simply because of the design process, hurdles that have to be dealt with, degree of expertise, and expense of the individuals that participate in the project.
Re:It's About Time (Score:2, Interesting)
customers for our product.
Even though they haven't pushed their software design process onto us, they have all made it clear that there must be processes to trace the requirements through developement, testing and releasing of our software.
CMMI and its use(ful/less)ness (Score:5, Informative)
Now comes the question... why would anyone want such a level of bureaucracy? Well, in our case, we were responsible to the government, and from what i can tell, the government equates "paper trail" with "accountability and transparency." In other cases (commercial software), this would allow a company to switch contractors if the current contractor started acting nutsy or broke a contract in some way.
Think of the group paying for the contract as "the boss" and two contract groups called "Bob" and "Tim." The boss wants to pay someone to develop the MegaApp for him. Bob and Tim both make promises about how fast they can develop the MegaApp and how much it will cost and how much quality the MegaApp will contain after they work their respective voodoos. Bob makes some egregious claims, and the boss (because he's a manager) believes Bob and passes over Tim's more realistic promises. Bob, of course, fails to deliver on his promises, but the boss saw that some of what Bob did met some of the requirements. Since the boss made sure that Bob and Tim implemented CMMI level 3 before they could even be considered for contract, he has the option (or believes he has the option) to take the deliverables (including CMMI documents) to Tim. Tim, who is accustomed to using CMMI level 3, should theoretically be able to pick up the project in a short period of time and run with it due to the high level of documentation.
Just like communism, it can sound good in theory and look good on paper but will probably only work well in a perfect world.
Note: Carnegie Mellon developed CMMI [cmu.edu].
Disclaimers:
Re:CMMI and its use(ful/less)ness (Score:2, Informative)
"Working at level 3 is right in the middle of the spectrum, with just a bit too much bureaucracy for my tastes (when you need to generate a paper trail just to write a simple function, it's a tad too much)."
Even though you may understand your function as it is written now, when you look back at your code or someone else does in the future, having the documentation of what the function does along with when and why it was crea
Re:CMMI and its use(ful/less)ness (Score:1)
E
Re:CMMI and its use(ful/less)ness (Score:2)
There are better ways to achieve that than documentation
Re:CMMI and its use(ful/less)ness (Score:2)
Nice trolling! Ignoring the dialog and acting snotty is so much easier than actual discussion, isn't it?
The standard Software Engineering approach isn't wrong. If you're using traditional methods, documenting done right is better than no documentation. It fills a lot of gaps in the traditional approach. Honestly, though, many shops produce such crappy documentation that I'm not sure
space shuttle software is CMM Level 5 (Score:5, Informative)
The software in the space shuttle cannot fail. billions of dollars and people's lives are on the line, so it cannot fail.
At CMM level 5, you don't fix the bug when you find it. You fix the process that let the bug happen in the first place.
CMM Level 1 is no process. anything goes, really.
CMM Level 2 is fixing the bug and documenting that you found it. That more or less boils down to using a bug tracking system, keeping good version control, and everyone following this process.
CMM Level 3 is the software engineering level. that basically means that everyone in your organization builds their software similarly (software design and documented use of design patterns is good here).
Levels 4 and 5 is all about keeping a database of your processes and fixing your processes. Process flaws cause bugs, not code errors. You don't fix your code, you fix your process.
It's important to note the budget for the team writing the space shuttle code. Lots and lots of money and lots and lots of time go into that software. Ordinary application writers like us don't get that luxury.
Re:space shuttle software is CMM Level 5 (Score:2)
Re:CMMI and its use(ful/less)ness (Score:2)
I know these Indian CCM Level 5 organisations. They are affiliated with Philips. From a point of practicality, they are not level 5, but they do know how to cook the books.
Re:CMMI and its use(ful/less)ness (Score:2)
Or more.
The thing about CMMI is that the certifications are based on sample projects (or at level 3 and higher) samples from a whole company. It also depends on the integrity of the company and the auditing group (usually an external contract firm, though not always).
If your sample is crap, and you have documented it, you can get whatever level CMMI certification you want...while the rest of the bus
Somebody doesn't understand (Score:2)
Agile development methodologies are iterative. This generally means that a partial solution gets implemented now with a more complete and more correct implementation in the next iteration(s). That a defect in something like the air traffic control system or a nuclear power plant's c
Re:Somebody doesn't understand (Score:1)
No, agile doesn't mean implement a partial solution with potential errors. The book certainly doesn't state or even imply anything remotely like what you've tossed out. (Nor did my review.)
The book says "Generally, a process that encourages safety evaluations periodically throughout development will be superior to
That's just not true. (Score:2)
Saw a presentation of this is Redmond (Score:3, Interesting)
Agile is not for commercial software development! (Score:2, Interesting)
If you believe Agile works, you probably also believe Google can be implemented with JEEE and Oracle.
These Agile guys really don't know what it takes to release large commercial products with million lines code, with many dependencies, many languages, requiring marketing campaigns, press tours, support training, etc.
More versions cost more money.
Sure Agile might work for small internal IT projects where you have
Re:Agile is not for commercial software developmen (Score:5, Insightful)
That's boldly, if unintentionally, ironic. Not only is Google hiring all the Agile developers they can find, but many agilistas have a lot of contempt for the ultra-heavyweight EJB-style approach to things.
These Agile guys really don't know what it takes to release large commercial products with million lines code, with many dependencies, many languages, requiring marketing campaigns, press tours, support training, etc.
There's no question that complicated projects have to be done differently than simple projects. But even there, you can place approaches along an agile/non-agile spectrum. You also shouldn't mistake "I don't know how" for "it's impossible".
Becoming agile also requires a fair bit of supporting infrastructure. For example, my Extreme-Programming-built code bases typically have a 1:1 production-to-test-code ratio. Bug rates for many XP projects are well under one per developer-month. Quality at that level enables fantastic agility in ways that seem impossible at typical quality levels. If you regularly have production relases with zero bugs found, weekly releases don't seem nearly as scary.
Agile is well worth the work (Score:2)
The strange part, is that when you've worked like this
Re:Agile is not for commercial software developmen (Score:1)
Lean works for Toyota (Score:2)
Small companies like Dell, Teh Borg... (Score:2)
More versions isn't what Agile/Lean means. It means more iterations. You make versions (or releases) when you're ready to go to market. That's a business decision. You will certainly have many iterations before your business feels you've built enough to go to market. The technical job is to make sure that, to the extent you've gotten to high-priority scope, the quality of the code is such
Time (Score:1)
But will it (Score:2)
Agile methods and CMM work together (Score:1)
Re:Agile methods and CMM work together (Score:1)
A good agile podcast incl. interview with Mary... (Score:2)
Lean is a big deal. (Score:2)
I just hope more rigour and discipline can be instilled to get past the bullshit surface-level debates (how much documentation, XP = hacking?, pair programming is/isn
The PERT smokescreen (Score:2)
I shudder to think of the job I worked 5 years ago. They bought huge HP plotters to print out the MS Projec
Re:Lean is a big deal. (Score:2)
This is also what I think about software development. There should not be software project leaders, it should be up to the architects and the engineers to coordinate efforts toward a common goal.
I call BS (Score:2)
The moment a book claiming to be about software engineering trashes management processes like this, you know to call BS. It never ceases to amaze me how pretentious code-monkeys believe their immature approach to development is somehow hamstrung by proven management techniques
Re:I call BS (Score:2)
It also doesn't say "can drag up", which is more to the point.
I don't know whether to laugh or cry. Why is it that technically inclined people believe that "real skills" must be technical?
"Real skills" depend on the environment. In a commercial environment the only "real skills" that count are the ones that can
Re:I call BS (Score:2)
On the contrary, there is an extensive knowledge base in Software Engineering on how to make reliable estimates of software development time and cost. Most programmers simply don't have this knowledge, which is giving the entire profession a bad reputation.
The only "creative" part of SE that is difficult to estimate is design -- "solving the problem" if you will. Coding is methodical application of rules; it still requires the skills of the craft, but it is easily and reliably estimated in a mature envi
lean software development in a nutshell (Score:1)
Great article!! (Score:1)