In this case study of a distributed agile team, the developers were in Cambridge, MA, the product owners were in San Francisco, the testers were in Bangalore, and the project manager was always flying somewhere, because the project manager was shared among several projects. The developers knew about timeboxed iterations, so they used timeboxes. Senior management had made the decision to fire all the local testers and buy cheaper tester time over the developers’ objections and move the testing to Bangalore.
In recent years within the object oriented and agile community, several approaches to software design and development have materialized and are in use by professional software developers. Test-Driven Development (TDD), Domain-Driven Design (DDD), Behavior-Driven Design (BDD) and Feature-Driven Design (FDD) are some of the more well known approaches. While these philosophies all imbibe the classic agile principles of an incremental and iterative mindset to software development, they subtly differ from each other.
In this week's column, Jeff Patton sends a reminder that software developers who neglect the practices of "iteration" and "incremental" will get caught either delivering poor quality software or delaying schedules in order to make time to iterate. We kick ourselves, or others, for not "getting [software] right up front" when we all know that the hardest part of software development is figuring out what to build. But there's hope, and it comes in the form of prototypes and frequent iterations.
Extreme Programming (XP) takes practices that are known to be good and combines and applies them in a revolutionary way. Before you turn your team on to XP, check out the steps to take, and pitfalls to avoid, to make your project an "Xtreme" success.
In what ways should software be like a house? In a recent issue of STQE magazine, Technical Editor Brian Marick’s musings about the concept of “tinkerable software” generated some interesting discussion about the very nature of software design. This week’s column runs a portion of that piece so that our Sticky-minded readers can sink their thoughts into the concept.
Pete TerMaat shares some valuable lessons learned from a summer with "hacking legend" Richard Stallman. He learned that attitude, passion for one's work, was most important. Reviews, coding standards, porting guidelines, bug hunting advice, and other measures can fall flat without a passion for clean code, for "getting things right."
Johanna Rothman recommends the book Adaptive Software Development by James Highsmith. She says, "Highsmith shows the reader how to recognize when development practices need to change and how to acquire the skills to adapt. For a fresh approach to software development, be sure to check it out."
The good news: Agile methods deliver superior results compared to traditional approaches. The bad news: For IT projects, mainstream agile methods-Scrum, Extreme Programming (XP), and Agile Modeling (AM)- provide only part of the overall solution. Agile IT projects require some time and effort for upfront planning at the start and activities for sophisticated deployment scenarios at the end. Additionally, most agile projects in large IT organizations cannot escape compliance with governance standards. Mark Lines describes and explores the realities of agile development in enterprise IT environments. Discover how IBM’s freely available Disciplined Agile Delivery (DAD) process framework combines common practices and strategies from mainstream agile methods to address the full delivery lifecycle-from project initiation to solution release into production.