The purpose of agile is to create software successfully by adapting to changes during the development cycle. Unfortunately in practice, agile can wander from the outcome the customer needs. Wes McClure believes a commitment to value and agile development can coexist when you combine a strategic objective that does not change with flexibility in the manner necessary to achieve it.
This episode is Part 2 of a two-part series. Listen to Part 1: Why Value Is Important in Software
Focusing on Results With Agile
- Are value pricing and agile development in conflict?
- Not in concept.
- How people implement agile may not align with value.
- You only have to commit to the value, not the effort.
- When you commit to the path upfront, rather than the value, agile can conflict with value pricing.
- Focusing on results is part of the agile philosophy.
- Some agile practices can get in the way.
- A project owner can become a handoff point, rather than a facilitating role.
- With agile, there is a focus on user stories.
- Value can help when you find the middle ground between agile and waterfall.
- Agile goes awry for most people because they commit to nothing upfront.
- “Run on software development” can occur if people are not held accountable for results.
- Commit to value, but pursue it as islands of value.
- Commit to the right thing at the right time.
- Scope the project in terms of value and travel to the first island.
- You need to have some way to reconcile a project as a temporary endeavor that can be adjusted if needed.
- Most of the agile practices are congruent with value pricing principles.
- The most successful waterfall projects focused on results and outcomes and did not obsess over the details.
Learning Through Doing
- What is “exposure therapy”?
- Wes's blog post: Stop Wasting Money on Training
- Exposure therapy is putting out tentacles to get exposed to ideas.
- It is wasteful to spend money on in-person training if the student is just going to blanket a topic.
- If you have someone train on a topic, there is no guarantee it will have an impact on the business.
- Covering everything is just a hope that someone will remember down the road.
- Learning takes place when you are implementing in a specific situation.
- Learning through doing vs. learning through absorbing is the difference.
- Reading and obsessing over new things can be an addiction.
- What is “Marco Polo” development?
- “Run on” development is where the term originates.
- It is what happens in agile when there is no discipline or commitment.
- The leader tells you where to go, but by the time you get there, the situation has changed.
- If you iterate and “see what happens” you just end up running all over the place.
- Effectiveness is more important that any efficiency in iterative development.
- If a worthwhile target has been set, there will not be much deviation in comparison to an effort-based approach.
- Combining hourly billing and agile development leads to people running around and not getting things accomplished.
- You can guarantee results because the customer gives you the ability to do whatever is necessary to achieve the result.
- The customer only has to worry if things are going in the right direction, rather than whether the technology is correct.
How to Guarantee Results
- How do you hold the customer accountable when you guarantee the results?
- There is always joint responsibility.
- Guarantee that if the customer does his part, you can do yours.
- You can have a conversation about responsibilities rather than what you are building.
- You need to gauge if the customer will be responsible upfront as part of the qualification process.
- A guarantee also makes sure that you know if your customer is happy.
- What is one of your best stories about creating value for a customer?
- The impact was the customer was able to serve a larger number of patients.
- At the end of the day, we are impacting people's lives.
- Another customer came to Wes with a problem not a path.
- They were able to measure the outcome to assure success.
About Wes McClure
Wes McClure is a software developer whose purpose is to help people improve how they create software. He applies the principles of value to software development. He studied computer science at the University of Nebraska and has been a .NET developer for many years.