The Holistic Programmer
Upcoming SlideShare
Loading in...5
×
 

The Holistic Programmer

on

  • 375 views

A talk presented at Agile India 2012 in Bangalore, India.

A talk presented at Agile India 2012 in Bangalore, India.

Statistics

Views

Total Views
375
Views on SlideShare
375
Embed Views
0

Actions

Likes
1
Downloads
35
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    The Holistic Programmer The Holistic Programmer Presentation Transcript

    • 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 MeJonas Auken● Dane living in New Delhi● Computer Science and Science of Religion● Developer● Architect● Product Owner by Proxy● Coach● Agile Evangelist
    • AgendaThe Challenge● Seeing the Whole Picture● Minding the detailsThe 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 thats 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 allaspects of the product."Mike Cohn - Succeding with Agile
    • DiscussionAre 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 - ScrumAnalysis => Business ExpertDatabase => SQL ProgrammerUser Interface => Front End DeveloperUnit Tests => TesterUser Acceptance Test => Usability ExpertEven in Scrum, we have silos...
    • Generalizing Specialist - A Definition1. Has one or more technical specialties2. General knowledge of software development3. General knowledge of the business domain4. Actively seeks to gain new skillsScott W. Ambler - Generalizing Specialists: Improving Your IT Career Skills
    • Skills evolving over time
    • Why Generalizing Specialists?1. Improved communication and collaboration2. Less documentation3. Improved flexibility4. Less handover, less risk5. 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 environmentMike Cohn: Succeding with Agile
    • The Holistic Programmer● Be part of the team● Share responsibility with others● Inspect and adapt● Get better!● Communicate
    • Questions & Comments Whats on your mind?
    • ReferencesScott Ambler: Generalizing Specialists:Improving Your IT Career Skillshttp://www.agilemodeling.com/essays/generalizingSpecialists.htmKent Beck: Extreme Programming Explained:Embrace ChangeMike Cohn: Succeeding with Agile: SoftwareDevelopment Using Scrum