SlideShare a Scribd company logo
Holistic Programmer
     Agile India 2012
        17-2-2012
       Bangalore
           India
Holistic - A Definition

       The parts of a solution are
           interconnected
     and can only be understood in
       reference to the whole
The Holistic Programmer
● Attempts to see the whole picture even when
  working on the parts of a solution
● Communicates with and supports
  the whole team
About Me
Jonas Auken
● Dane living in New Delhi
● Computer Science and Science of Religion
● Developer
● Architect
● Product Owner by Proxy
● Coach
● Agile Evangelist
Agenda
The Challenge
● Seeing the Whole Picture
● Minding the details
The Solution
● Generalizing Specialists
● Communication
Quality is holistic
● is not the number of defects
● is not a liquid that can be poured on when
  the product is done - like icing on the cake
● is implementing solutions, not software
  components
Whole Picture 1
Whole Picture 2
Problem 1: Whole Picture

              The team
      must have responsibility
       for the whole solution
Solution 1: Whole Team
● Traditionally, optimization of work splits
   solutions into smaller tasks given to
   individual people
● Whole work goes the other way - individual
   people are solving complete solutions
● But that's not really viable - or is it?
Waterfall Model
Whole Team
Whole Team Responsibility
●   Quality
●   Clean code
●   Well formed product backlog
●   Look and feel
●   Performance
●   Success AND failure

"The whole team should feel responsible for all
aspects of the product."
Mike Cohn - Succeding with Agile
Discussion
Are you a slice programmer -
                       or a part of a whole team?
Think about the last feature you developed -
  did you work on it end to end?
Think about your team -
  what do you do to be a whole team?
Problem 2: Details

        Each team member
       must have responsibility
          for every detail
Solution 2: Generalizing Specialists
● Take responsibility for other tasks than your
  own
● Learn new skills that enable you to take on
  more different tasks
● Communicate!
Agile Process - Scrum
Analysis             => Business Expert
Database             => SQL Programmer
User Interface       => Front End Developer
Unit Tests         => Tester
User Acceptance Test => Usability Expert


Even in Scrum, we have silos...
Generalizing Specialist - A Definition

1. Has one or more technical specialties
2. General knowledge of software development
3. General knowledge of the business domain
4. Actively seeks to gain new skills




Scott W. Ambler - Generalizing Specialists: Improving Your IT Career Skills
Skills evolving over time
Why Generalizing Specialists?

1. Improved communication and collaboration
2. Less documentation
3. Improved flexibility
4. Less handover, less risk
5. Fewer bottlenecks
Discussion
● Are you a specialist or a generalist?
● Or are you a generalizing specialist?


● What do you do to learn new skills?
Problem 3: Communication

        Technical people
        must understand
        business people

        (and vice versa)
Solution 3: Processes


     Ready - Ready

       Done - Done
Ready - Ready
● Estimated < 1 iteration
● User Story complete
    ○ Business rules clarified
    ○ Error handling described
    ○ Test cases written
●   Text and mockup ready
●   User Story reviewed
●   Automated test described
●   Technical dependencies clarified
    ○ Backends
    ○ Services
    ○ Data
Done - Done
●   Functionality done
●   Design reviewed
●   Deployed to test environment
●   Unit and integration tests successful
●   Automatic tests successful
●   User Acceptance Test successful
●   Code coverage > 90 %
●   Documented
●   Code reviewed
Whole Team Revisited
Teamwork
●   Nurture whole team commitment
●   Rely on specialist but sparingly
●   Do a little bit of everything all the time
●   Foster team learning
    ○   Design teams for learning
    ○   Find concrete ways to share knowledge
    ○   Exhibit behaviour that reinforces learning
    ○   Teams must have a motivating challenge
    ○   Create a supportive learning environment

Mike Cohn: Succeding with Agile
The Holistic Programmer
● Be part of the team
● Share responsibility with others
● Inspect and adapt
● Get better!
● Communicate
Questions & Comments




   What's on your mind?
References
Scott Ambler: Generalizing Specialists:
Improving Your IT Career Skills
http://www.agilemodeling.com/essays/generalizingSpecialists.htm



Kent Beck: Extreme Programming Explained:
Embrace Change

Mike Cohn: Succeeding with Agile: Software
Development Using Scrum

More Related Content

PDF
02.1 software development processes
PDF
Software Development Craftsmanship
PDF
Scrum - An introduction
PDF
Episode One - Business
PPTX
Agile Testing Methodology- Principles of Agile Testing Methodolgy
PPTX
Ana milutinovic quality awareness when practicing agile testing
PPTX
Treinamento TDD
PDF
How to hire top software engineers
02.1 software development processes
Software Development Craftsmanship
Scrum - An introduction
Episode One - Business
Agile Testing Methodology- Principles of Agile Testing Methodolgy
Ana milutinovic quality awareness when practicing agile testing
Treinamento TDD
How to hire top software engineers

What's hot (20)

PDF
Agile or: how I learned to stop worrying and love changing requirements
ODP
TDD Mini Workshop @ Bucharest JUG 2014 04 24
PPTX
Modern Testing in Today's World
PDF
Software development. xp, agile, etc.
PDF
Context driven agile tester - from outsourcing to startup world – EclipseCon ...
PPT
Agile model in software testing
PPTX
Lecture Windesheim: An Easy Approach To Testing
PDF
Assessment Stations
PDF
Assessment Stations
PDF
self funding agile2
PPTX
Lean Usability Testing at Insignia Health
PDF
Scrum Exam Q&A
PPTX
PDF
A Software Development Approach to Help You End Up with the Product You Reall...
PDF
Towards a more efficient engineering team
PPTX
Group process by example
PDF
What is Agile Development?
PPTX
Agile (s.e)
PDF
Extreme programming
PPTX
What is Agile Scrum
Agile or: how I learned to stop worrying and love changing requirements
TDD Mini Workshop @ Bucharest JUG 2014 04 24
Modern Testing in Today's World
Software development. xp, agile, etc.
Context driven agile tester - from outsourcing to startup world – EclipseCon ...
Agile model in software testing
Lecture Windesheim: An Easy Approach To Testing
Assessment Stations
Assessment Stations
self funding agile2
Lean Usability Testing at Insignia Health
Scrum Exam Q&A
A Software Development Approach to Help You End Up with the Product You Reall...
Towards a more efficient engineering team
Group process by example
What is Agile Development?
Agile (s.e)
Extreme programming
What is Agile Scrum
Ad

Similar to The Holistic Programmer (20)

PPTX
Module 1 - SE.pptx
PPTX
Post agile confessions
PDF
Managing software projects & teams effectively
PDF
Agile and test driven development
PDF
Agile Course
PDF
Agile course Part 1
PDF
Software Development Methodologies
PPTX
Post-Agile Methodologies and all that Jazz
PDF
Extreme Programming 1st.pdf
PDF
Building Sustainable Software: An Introduction to Software Engineering
PDF
Why Agile? Back to Basics.
PPTX
Agile vision in IT and Software devlopment
ODP
Extreme programming - Kent Beck
PDF
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
PPTX
Product Agility: 3 fundamentals from the trenches
PDF
Devising UCD for Organizational Growth
PPT
Agile Planning: pragmatic approach
PDF
Inclusive Architecture - Introducing the PAMstack - [Refactr.tech]
PDF
Usable Software Design
Module 1 - SE.pptx
Post agile confessions
Managing software projects & teams effectively
Agile and test driven development
Agile Course
Agile course Part 1
Software Development Methodologies
Post-Agile Methodologies and all that Jazz
Extreme Programming 1st.pdf
Building Sustainable Software: An Introduction to Software Engineering
Why Agile? Back to Basics.
Agile vision in IT and Software devlopment
Extreme programming - Kent Beck
Deeply Embedding UX Practices Into Your Organization by Grafting them Into Yo...
Product Agility: 3 fundamentals from the trenches
Devising UCD for Organizational Growth
Agile Planning: pragmatic approach
Inclusive Architecture - Introducing the PAMstack - [Refactr.tech]
Usable Software Design
Ad

Recently uploaded (20)

PPTX
5 Stages of group development guide.pptx
PDF
Tata consultancy services case study shri Sharda college, basrur
PPT
Data mining for business intelligence ch04 sharda
PDF
Katrina Stoneking: Shaking Up the Alcohol Beverage Industry
PDF
A Brief Introduction About Julia Allison
PPTX
Board-Reporting-Package-by-Umbrex-5-23-23.pptx
PDF
MSPs in 10 Words - Created by US MSP Network
PPTX
HR Introduction Slide (1).pptx on hr intro
PDF
Power and position in leadershipDOC-20250808-WA0011..pdf
PPTX
New Microsoft PowerPoint Presentation - Copy.pptx
PDF
How to Get Funding for Your Trucking Business
PDF
IFRS Notes in your pocket for study all the time
PPTX
AI-assistance in Knowledge Collection and Curation supporting Safe and Sustai...
PDF
Roadmap Map-digital Banking feature MB,IB,AB
PDF
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
PPTX
Belch_12e_PPT_Ch18_Accessible_university.pptx
PDF
Reconciliation AND MEMORANDUM RECONCILATION
DOCX
Euro SEO Services 1st 3 General Updates.docx
PPTX
ICG2025_ICG 6th steering committee 30-8-24.pptx
PDF
NISM Series V-A MFD Workbook v December 2024.khhhjtgvwevoypdnew one must use ...
5 Stages of group development guide.pptx
Tata consultancy services case study shri Sharda college, basrur
Data mining for business intelligence ch04 sharda
Katrina Stoneking: Shaking Up the Alcohol Beverage Industry
A Brief Introduction About Julia Allison
Board-Reporting-Package-by-Umbrex-5-23-23.pptx
MSPs in 10 Words - Created by US MSP Network
HR Introduction Slide (1).pptx on hr intro
Power and position in leadershipDOC-20250808-WA0011..pdf
New Microsoft PowerPoint Presentation - Copy.pptx
How to Get Funding for Your Trucking Business
IFRS Notes in your pocket for study all the time
AI-assistance in Knowledge Collection and Curation supporting Safe and Sustai...
Roadmap Map-digital Banking feature MB,IB,AB
Stem Cell Market Report | Trends, Growth & Forecast 2025-2034
Belch_12e_PPT_Ch18_Accessible_university.pptx
Reconciliation AND MEMORANDUM RECONCILATION
Euro SEO Services 1st 3 General Updates.docx
ICG2025_ICG 6th steering committee 30-8-24.pptx
NISM Series V-A MFD Workbook v December 2024.khhhjtgvwevoypdnew one must use ...

The Holistic Programmer

  • 1. Holistic Programmer Agile India 2012 17-2-2012 Bangalore India
  • 2. Holistic - A Definition The parts of a solution are interconnected and can only be understood in reference to the whole
  • 3. The Holistic Programmer ● Attempts to see the whole picture even when working on the parts of a solution ● Communicates with and supports the whole team
  • 4. About Me Jonas Auken ● Dane living in New Delhi ● Computer Science and Science of Religion ● Developer ● Architect ● Product Owner by Proxy ● Coach ● Agile Evangelist
  • 5. Agenda The Challenge ● Seeing the Whole Picture ● Minding the details The Solution ● Generalizing Specialists ● Communication
  • 6. Quality is holistic ● is not the number of defects ● is not a liquid that can be poured on when the product is done - like icing on the cake ● is implementing solutions, not software components
  • 9. Problem 1: Whole Picture The team must have responsibility for the whole solution
  • 10. Solution 1: Whole Team ● Traditionally, optimization of work splits solutions into smaller tasks given to individual people ● Whole work goes the other way - individual people are solving complete solutions ● But that's not really viable - or is it?
  • 13. Whole Team Responsibility ● Quality ● Clean code ● Well formed product backlog ● Look and feel ● Performance ● Success AND failure "The whole team should feel responsible for all aspects of the product." Mike Cohn - Succeding with Agile
  • 14. Discussion Are you a slice programmer - or a part of a whole team? Think about the last feature you developed - did you work on it end to end? Think about your team - what do you do to be a whole team?
  • 15. Problem 2: Details Each team member must have responsibility for every detail
  • 16. Solution 2: Generalizing Specialists ● Take responsibility for other tasks than your own ● Learn new skills that enable you to take on more different tasks ● Communicate!
  • 17. Agile Process - Scrum Analysis => Business Expert Database => SQL Programmer User Interface => Front End Developer Unit Tests => Tester User Acceptance Test => Usability Expert Even in Scrum, we have silos...
  • 18. Generalizing Specialist - A Definition 1. Has one or more technical specialties 2. General knowledge of software development 3. General knowledge of the business domain 4. Actively seeks to gain new skills Scott W. Ambler - Generalizing Specialists: Improving Your IT Career Skills
  • 20. Why Generalizing Specialists? 1. Improved communication and collaboration 2. Less documentation 3. Improved flexibility 4. Less handover, less risk 5. Fewer bottlenecks
  • 21. Discussion ● Are you a specialist or a generalist? ● Or are you a generalizing specialist? ● What do you do to learn new skills?
  • 22. Problem 3: Communication Technical people must understand business people (and vice versa)
  • 23. Solution 3: Processes Ready - Ready Done - Done
  • 24. Ready - Ready ● Estimated < 1 iteration ● User Story complete ○ Business rules clarified ○ Error handling described ○ Test cases written ● Text and mockup ready ● User Story reviewed ● Automated test described ● Technical dependencies clarified ○ Backends ○ Services ○ Data
  • 25. Done - Done ● Functionality done ● Design reviewed ● Deployed to test environment ● Unit and integration tests successful ● Automatic tests successful ● User Acceptance Test successful ● Code coverage > 90 % ● Documented ● Code reviewed
  • 27. Teamwork ● Nurture whole team commitment ● Rely on specialist but sparingly ● Do a little bit of everything all the time ● Foster team learning ○ Design teams for learning ○ Find concrete ways to share knowledge ○ Exhibit behaviour that reinforces learning ○ Teams must have a motivating challenge ○ Create a supportive learning environment Mike Cohn: Succeding with Agile
  • 28. The Holistic Programmer ● Be part of the team ● Share responsibility with others ● Inspect and adapt ● Get better! ● Communicate
  • 29. Questions & Comments What's on your mind?
  • 30. References Scott Ambler: Generalizing Specialists: Improving Your IT Career Skills http://www.agilemodeling.com/essays/generalizingSpecialists.htm Kent Beck: Extreme Programming Explained: Embrace Change Mike Cohn: Succeeding with Agile: Software Development Using Scrum