45 min

How UNCERTAINTY Impacts Software Development Processes‪!‬ Healthy Software Developer

    • Technology

Does it ever seem strange how when talking to other software developers they insist that the processes they use are “the best” but they don’t seem to make any sense as to how they could work in your company? Today I’d like to share how uncertainty impacts software development.
Whether they realize it or not, many people in companies select processes based on their tolerance for uncertainty. The experience they’ve had developing software in the past, and existing beliefs they have about how the rest of the business and the customer will use the product influence decisions.
Changing Market, Customer Needs, and Technologies Require More Adaptability Today Technology changes faster today than it did 20 years ago, so being able to respond to change is more important. We need to be careful of fortune telling, and that we aren’t over-confident in our ability to see what’s coming. When we use agile processes for software development, one of the big benefits is that they help us adapt to changes in the market and optimize for handling disruption.
How Responsive Is Your Company Willing To Be? The big question is – how responsive is your company or team willing to be? The more uncertainty people at the company can tolerate, the more adaptable and responsive you’ll be in serving your customer.
There are a wide number of decisions that can be made about how you develop software that stem from the tolerance for uncertainty, but in this video I’ll talk about some major attributes of the two extremes.
Uncertainty Of Scope and Budget A company or team with a lower tolerance for uncertainty may use % complete budgeting to track progress on the project. A team with a higher tolerance for uncertainty may set a monthly budget to allow the customer to influence what’s delivered more.
Uncertainty Of Cost and Measuring Progress A company or team with a lower tolerance for uncertainty may focus on cost and estimation. A team with a higher tolerance for uncertainty may track learning milestones to measure progress.
Uncertainty Of State Of The Code A company or team with a lower tolerance for uncertainty may create source control branches for developer changes. A team with a higher tolerance for uncertainty may use feature hiding instead, with everyone collaborating on one branch to follow continuous integration.
Uncertainty Of Customer Needs and User Experience A company or team with a lower tolerance for uncertainty may make more investments in the UX up front. A team with a higher tolerance for uncertainty may use lean UX practices that provide a minimum viable experience, and adapt as they go.
Uncertainty Of Software Architecture A company or team with a lower tolerance for uncertainty may make more up-front architecture decisions. A team with a higher tolerance for uncertainty may simplify the architecture to increase the speed of refactoring, and let the architecture evolve with product growth.
You can also watch this episode on YouTube. 
Related resources:
5 Ways To Cope With The Anxiety Of Software Development! How To A/B Software Development To Find What Customers Value Minimum Viable Product - Letting Software Customers Help You Profit Lean Software Development - It's About Uncertainty! Principles Of Lean Product Management By Jez Humble  
Visit me at JaymeEdwards.com
Find me on Facebook at JaymeEdwardsMedia
Find me on Twitter as @jaymeedwards

Does it ever seem strange how when talking to other software developers they insist that the processes they use are “the best” but they don’t seem to make any sense as to how they could work in your company? Today I’d like to share how uncertainty impacts software development.
Whether they realize it or not, many people in companies select processes based on their tolerance for uncertainty. The experience they’ve had developing software in the past, and existing beliefs they have about how the rest of the business and the customer will use the product influence decisions.
Changing Market, Customer Needs, and Technologies Require More Adaptability Today Technology changes faster today than it did 20 years ago, so being able to respond to change is more important. We need to be careful of fortune telling, and that we aren’t over-confident in our ability to see what’s coming. When we use agile processes for software development, one of the big benefits is that they help us adapt to changes in the market and optimize for handling disruption.
How Responsive Is Your Company Willing To Be? The big question is – how responsive is your company or team willing to be? The more uncertainty people at the company can tolerate, the more adaptable and responsive you’ll be in serving your customer.
There are a wide number of decisions that can be made about how you develop software that stem from the tolerance for uncertainty, but in this video I’ll talk about some major attributes of the two extremes.
Uncertainty Of Scope and Budget A company or team with a lower tolerance for uncertainty may use % complete budgeting to track progress on the project. A team with a higher tolerance for uncertainty may set a monthly budget to allow the customer to influence what’s delivered more.
Uncertainty Of Cost and Measuring Progress A company or team with a lower tolerance for uncertainty may focus on cost and estimation. A team with a higher tolerance for uncertainty may track learning milestones to measure progress.
Uncertainty Of State Of The Code A company or team with a lower tolerance for uncertainty may create source control branches for developer changes. A team with a higher tolerance for uncertainty may use feature hiding instead, with everyone collaborating on one branch to follow continuous integration.
Uncertainty Of Customer Needs and User Experience A company or team with a lower tolerance for uncertainty may make more investments in the UX up front. A team with a higher tolerance for uncertainty may use lean UX practices that provide a minimum viable experience, and adapt as they go.
Uncertainty Of Software Architecture A company or team with a lower tolerance for uncertainty may make more up-front architecture decisions. A team with a higher tolerance for uncertainty may simplify the architecture to increase the speed of refactoring, and let the architecture evolve with product growth.
You can also watch this episode on YouTube. 
Related resources:
5 Ways To Cope With The Anxiety Of Software Development! How To A/B Software Development To Find What Customers Value Minimum Viable Product - Letting Software Customers Help You Profit Lean Software Development - It's About Uncertainty! Principles Of Lean Product Management By Jez Humble  
Visit me at JaymeEdwards.com
Find me on Facebook at JaymeEdwardsMedia
Find me on Twitter as @jaymeedwards

45 min

Top Podcasts In Technology

The Neuron: AI Explained
The Neuron
Lex Fridman Podcast
Lex Fridman
All-In with Chamath, Jason, Sacks & Friedberg
All-In Podcast, LLC
Acquired
Ben Gilbert and David Rosenthal
No Priors: Artificial Intelligence | Technology | Startups
Conviction | Pod People
BG2Pod with Brad Gerstner and Bill Gurley
BG2Pod