TDD and BDD are now widely-used software development techniques. However, solely following TDD & BDD may still lead to missed business opportunities, or worse, a negative impact to the business. Two questions which TDD & BDD are unable to answer are: How do you measure the usage of your application? How do you get feedback from your customers? Is Experiment-Driven Development (EDD) the answer?
Real Options, a decision-making process based on Financial Option mathematics, was mentioned by Kent Beck in his 1999 "white book," Extreme Progamming Explained. More recently, Agilists have been exploring how Real Options intersects with Agile. Now Chris Matts and Olav Maassen specifically address the Lean Software community, proposing that application of Real Options improves Lean Development.
Forrester Research, in preparation for their Business Technology Forum next week, has released an analyst report for free download, entitled "Lean: The New Business Technology Imperative." Aimed at management, it discusses Lean as a whole-business imperative, and its impact on IT, cautioning: "Don’t get so caught up in eliminating waste that you forget to create value and increase flexibility."
40 years after the NATO Conference on Software Engineering, Tom DeMarco paused to reflect on the discipline's evolution, wondering whether the metrics orientation he championed has distracted from the real point of computing: "transformation, creating software that changes the world." Is his earlier advice valid, though? "No", he said, in Software Engineering: An Idea Whose Time Has Come and Gone?
In large organizations and projects, it's not unusual for an Agile team to find itself shackled to a non-Agile partner/vendor/supplier. Friction ensues, energy is wasted. While the solution might appear to be: "hire better teams", Scott Ambler goes to the root of the problem, providing a strategy for creating better RFPs: ones that attract Agile teams.
This session addresses the abstract notion of simplicity, looks at why it is critical in modern UI design and answers questions: Why does simplicity matter? Is there a meaningful definition of simplicity? Why do design processes and good intentions undermine simplicity? What processes and techniques can software developers use to achieve simplicity?
Simon Guest of Microsoft introduces SketchFlow by discussing why prototyping is an important developer skill and how a tool can enhance developer-customer interaction. The functionality and features of SketchFlow are presented in the context of an ongoing sample application (an on-line store).
A new three-part post by Neil Ford discusses both the rationale behind SOA implementations and the role large vendors play in distracting them.
Nonfunctional requirements describe qualities of a system (what it is) rather than its behaviors (what it does). Scott Ambler inspired much discussion when he recently asserted "Scrum's product backlog concept works well for simple functional requirements, but... it comes up short for nonfunctional requirements and architectural constraints." in an article on Dr. Dobb's Portal.
In this presentation filmed during Agile 2008, Mitch Lacey talks about a real life project that was on the verge of being successful, but was deemed as unsuccessful by the customer. Considering that "the true measure of project progress is working software", Mitch and his team delivered the software, but the client was not satisfied.
In this presentation at RubyFringe, Obie Fernandez shares his experience selling consulting services for both Thoughtworks and Hashrocket and gives advice on how developers/consultants can deal with clients by setting minimal requirements, saying "No" and how to choose hourly rates and much more.
In this presentation filmed during Agile 2008, Ron Jeffries and Chet Hendrickson derive Agile practices from the natural laws of software development. They don't just say "Be Agile!", but they explain why Agile practices make perfect sense in the software development world.
Having difficulty prioritizing the backlog? Luke Hohmann has described a method to make quantitative decisions about which backlog items should be considered first. In addition to the usual attributes such as implementation effort, Luke suggested adding attributes to measure stakeholders needs, strategic alignment and to ask whether the item is driving profit.
The Agile software development community discusses it successes on a regular basis, but rarely do we publicly discuss our failures. Robin Dymond has taken the first step by documenting one of his.
User stories, a common format for capturing agile requirements, could be more focused on business value. A traditional format for stating a user story is: "As a <type of user> I want <some functionality> so that <some benefit>." A value-centric replacement would be: "In order to <achieve some value>, as a <type of user>, I want <some functionality>."