One Model for Effective Software Development

Ken Pugh, ken@kenpugh.com

Based on a suggestion by Dave Snowden to find the essentials of software development, I examined practices, principles, and values from agile, pre-agile and lean. From that examination, I’ve developed a preliminary model for effective software development.   I’ve used the term effective based on Stephen R. Covey's The 7 Habits of Highly Effective People written in 1989-90.    

Effective software development is accomplished by:

·         Effective individuals working as effective teams

·         Using effective team and inter-team processes

·         In an effective organization

·         With effective leadership.  

 The result is effective value delivery.  

 

Effective individuals’ characteristics include:

·         Trust

·         Respect

·         Transparency

·         Collaborative

·         Learning mindset / experimentation

·         Active listening

Effective teams:

·         Composed of effective individuals collaborating together

Effective team processes and inter-team processes:

·         For scheduling (e.g., Iterations, flow)

·         For implementation (e.g., BDD/ATDD, DevOps pipeline)

·         Produce components that may directly deliver value or may be a part of a composite that delivers value

·         Iterative / incremental / experimental as appropriate

Effective leadership:

·         Provides the context in which teams and individuals can be effective

·         Let authority flow to others

·         Encourages experimentation and learning

Effective value delivery:

·         To the customer

·         To the business

Learning includes:

·         What will deliver value

·         How to deliver value (team and inter-team processes)

·         Improving effectiveness               

 

  

 

 

Other facets of effectiveness:

Context is important:

·         Value delivery context – external environment, market, infrastructure, etc.

·         Value creation context – internal team and inter-team processes

Congruency:

·         Individual, teams, organizations, leadership congruent in goals, values, culture