
- Image via Wikipedia
Most of my professional life, I’ve worked in organizations with formal, long, software development processes, although in some there have been attempts at adopting agile practices, but not necessarily iterative, frequent software releases. It was pretty clear to me back then that the marketing/tech requirements driven development cycle with projects that lasted years at time didn’t cut it. My experiences, mostly indirectly, of the modern web development process has only confirmed that opinion
Greg Linden has an article in Communications of the ACM where he talks about how frequent releases change software engineering. He points out
Frequent releases are desirable because of the changes it forces in software engineering. It discourages risky, expensive, large projects. It encourages experimentation, innovation, and rapid iteration. It reduces the cost of failure while also minimizing the risk of failure. It is a better way to build software.
Why is that? Well, when you are pushing out software frequently, you have to be maniacal about version control, and build rapid deployment and prototyping tools (continuous integration). Your learn to manage bugs and risk differently; you just have to. In the large software development projects I’ve been part of, a good chunk of the release cycle was spent fixing known big, then a whole chunk of time fixing new bugs, and then finally in a QA process where you found new bugs and then had to figure out which bugs were showstoppers. In an iterative development process you’re forced to test as you integrate, and in a release early (even if it is a limited release), you get the software in hands on users (internal or external) who can provide you the feedback required to fix features and unexpected bug.
Which is why I like some of the more nimble software teams out there in the life science world. It keeps your costs down and just makes you more efficient. It’s not the only way to develop software, but it sure as heck is a good one.
Related articles by Zemanta
- Small Steps Are Good; Be Careful What You Call Those Steps (nofluffjuststuff.com)
![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_e.png?x-id=810e6a30-a9f3-498d-9298-8c6e6bd81088)



2 Comments
Well said. As I mention in my current blog post, my team is currently involved in assessing iterative and agile methods as part of the way we engineer software for the life sciences industry. Personally, I'd like to see more focus on this at the industry level to help drive best practices with regulated systems.
Best,
Jason
http://blogs.sas.com/hls
Well said. As I mention in my current blog post, my team is currently involved in assessing iterative and agile methods as part of the way we engineer software for the life sciences industry. Personally, I'd like to see more focus on this at the industry level to help drive best practices with regulated systems.
Best,
Jason
http://blogs.sas.com/hls
2 Trackbacks
[...] Iterative software development (mndoci.com) [...]
[...] Iterative software development (mndoci.com) [...]