agile developers create their own identity[1]

28
Me Focus on building an organization culture to "be agile" rather than "follow Agile". Software agility delivered through team agility and using agile tools, techniques and technologies. Agility Services Software Craftsmanship Midas Touch Agility in software maintenance Agile Enterprise Architecture solutions Agility Nurseries (Agile ODC) Organization Metamorphosis Agility Assessment Radars and Roadmap Team Agility Assessment Value Stream Mapping Shared Vision and Team Chartering Team Agility Coaching, Executive Coaching Scrum Coaching XP Engineering Practices Coaching Lean Software Development Coaching

Upload: surajit-bhuyan

Post on 08-May-2015

621 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Developers Create Their Own Identity[1]

MeFocus  on  building  an  organization  culture  to  "be agile"  rather  than  "follow Agile".Software  agility  delivered  through  team  agility  and  using  agile  tools,  techniques  and  technologies.

Agility  ServicesSoftware  CraftsmanshipMidas  Touch  -­‐ Agility  in  software  maintenanceAgile  Enterprise  Architecture  solutionsAgility  Nurseries  (Agile  ODC)

Organization  MetamorphosisAgility  Assessment  Radars  and  Roadmap

Team  Agility  AssessmentValue  Stream  MappingShared  Vision  and  Team  Chartering

Team  Agility  Coaching,  Executive  CoachingScrum  CoachingXP  Engineering  Practices  CoachingLean  Software  Development  Coaching

Page 2: Agile Developers Create Their Own Identity[1]

Agile  Developers  Create  Their  Own  Identity  

Page 3: Agile Developers Create Their Own Identity[1]

Context

Page 4: Agile Developers Create Their Own Identity[1]

Agile  Developers  Create  Their  Own  Identity  

Leaders

Page 5: Agile Developers Create Their Own Identity[1]

Values,  Practices and  Principles :  Relationship

Sources: -Extreme Programming Embrace Change by Kent BeckIntercropping Principles and Production Practices by National Sustainable Agriculture Service

Values bring  purpose  to  Practices,  Practices are  evidence  of  Values,  Practices bring  accountability  to  Values.

Bridging  the  gap  between  Values and  Practices are  Principles.  Principles  are  context  specific  guidelines.e.g.  practice   Pair  Programmingvaluesprinciple driver-­‐navigator  principle   dual  thinking  hats  of  constructing  and  preventing  from  breaking.

practice   Companion  Planting  used  in  agriculturevalues  principle Diversity  is  nature's  design,  cooperation  is  more  apparent  than  competition  in  plants,  crop  stability  tends  to  increase  with  increasing  diversity.

Page 6: Agile Developers Create Their Own Identity[1]

Values,  Practices and  Principles :  RelationshipInterpreting  Value  rather  than  Practice

as  I  would  be  held  accountable  and  blamed  unfairly  like  in  the  past.

I  value  Protection over  Communication

to  estimate.

Page 7: Agile Developers Create Their Own Identity[1]

Values,  Practices and  Principles :  RelationshipFailure  of  Value  rather  than  Practice

I  am  reluctant  to  learn  from  the  defect.

I  did  not  try  to  find  root  cause  for  the  defect.I  value  Laziness  over  Learning and  Self  Improvement

Oops,  a  defect.Ignore  it.

I  will  fix  it  when  QA  reports  it.

Page 8: Agile Developers Create Their Own Identity[1]
Page 9: Agile Developers Create Their Own Identity[1]

Layers  of  the  Agile  Manifesto

Agree on the

Agree on 4

Barely agree on 12

Agree to disagree on detailed project specific

ground tactics and prescr iptive

Page 10: Agile Developers Create Their Own Identity[1]

Individuals  and  Interactions  (amongst  Individuals)Values

Page 11: Agile Developers Create Their Own Identity[1]

Value  -­‐ Individuals  and  Interactions

Build  projects  around  motivated  individuals.  Give  them  the  environment  and  support  they  need,  and  trust  them  to  get  the  job  done.  

The  best  architectures,  requirements,  and  designs  emerge  from  self-­‐organizing  teams.

At  regular  intervals,  the  team  reflects  on  how  to  become  more  effective,  then  tunes  and  adjusts  its  behavior  accordingly.  

(Retrospective)

Page 12: Agile Developers Create Their Own Identity[1]

Extrinsic  and  Intrinsic  Motivation

My  Survival Cycle  Persona  -­‐ Others define  My identityI  am  fearful and  reactive.I  react to  and  avoid  obstacles.  By  doing  this,  I  reinforce  my  old  strategies  for  coping,  conspiring,  adapting,  and  assimilating when  difficulties  arise.  (All  fear-­‐based responses)  My  purpose  is  not fulfilled and  I  feel  disappointed.  As  a  life-­‐long  habit,  this  approach  is  limiting,  lacks purpose and  meaning.

My  Creative Cycle  Persona  -­‐ I define  My identityI  am  excited  about  possibilities  to  connect with  my  strengths,  talents,  and  gifts.I  look  at  obstacles as  opportunities  to  observe,  reflect,  experiment and  learn.My  experiments  align  to  my  actions  with  purpose and  potential.When  I  achieve  the  desired  result,  I  feel  fulfilled and  celebrate  my  successes.

But,  it  is  very  difficult  for  me  to  be  in  Creative  Cycle  all  the  time.  I  tend  to  fall  back  to  my  Survival  Cycle.

Tune  the  mind  and  conscience  to  be  in  the  Creative  Cycle  (Intrinsic  Motivation).

Page 13: Agile Developers Create Their Own Identity[1]

Natural  vs.  Coercive  Self-­‐OrganizingExamples  of  naturally  self-­‐organizing  systems

homeostasis  (the  self-­‐maintaining  nature  of  systems  from  the  cell  to  the  whole  organism)

pattern  formation  and  morphogenesis,  or  how  the  living  organism  develops  and  grows.  

the  coordination  of  human  movement  the  creation  of  structures  by  social  animals,  such  as  social  insects  (bees,  ants,  

termites),  and  many  mammalsflocking  behavior  (such  as  the  formation  of  flocks  by  birds,  schools  of  fish,  etc.)the  origin  of  life  itself  from  self-­‐organizing  chemical  systems

Its  in  the  genes  !!!

How  can  we  apply  this  principle into  a  practice to  self-­‐organize  in  agile  context?Self-­‐

Page 14: Agile Developers Create Their Own Identity[1]

Self-­‐organization  PracticesApprenticeship  over  Classroom  Training  

(  Tacit  Knowledge  )                              (Explicit  Knowledge)

Collaboration  over  Document  Handoff  -­‐ (  for  Knowledge  Management  )

Argumentation  over  Passive  Acceptance  -­‐ (  for  Logical  conclusions  )

Constructive  Conflict  Mining  over  Artificial  Harmony

Aggregating  Team  Intelligence  over  Intelligence  of  Individuals

Psychological  distance  solvent  over  Geographical  distance  solvent

Page 15: Agile Developers Create Their Own Identity[1]

Traditional  Conduit  Co-­‐ordination

Geographical  Distance  Solvent

Business Requirements

Business RequirementsCustomer Development  

Team

Onsite  Coordinator

OffshoreManager  /  Lead

Business Requirements

Business RequirementsCustomer Development  

Team

Onsite  Facilitator

OffshoreFacilitator

Peer-­‐To-­‐Peer  Co-­‐ordination

Page 16: Agile Developers Create Their Own Identity[1]

Psychological  Distance  SolventTraditional  Team  Hierarchy  (Crowns)  to  Cross-­‐Functional  Roles  (Caps)

Project Manager

Tech Architect Test Architect

Tech Lead Data Architect

Designer

Developer

Business Analyst

Test Lead

Test Analyst

Automation Tester

Crowns

Creates  and  widens  gap

Restricts  knowledge  sharing

Builds  up  power  distance

Steep  learning  curve  for  increase  in  maturity

Team  Leadership

System

Architecture

Business  Analysis

Project  Management

Application

Development

Build  &  Release

Management

Test

Automation

Test

Creation

Caps

Can  be  swapped  depending  on  situations

Increase  sense  of  collective  ownership

Rotation  of  responsibilities

Open  culture  within  the  team

Page 17: Agile Developers Create Their Own Identity[1]

Problem -­‐ Team  Dysfunction  Model-­‐ Patrick  Lencioni

Page 18: Agile Developers Create Their Own Identity[1]

Solution -­‐ Team  Leadership  Model

Team  Leadership  is  a  condition  of  a  teamreduction  of  uncertainty  (Constructive  Conflict  Mining)

comes  from  clear  messages  (Argumentation  before  Commitment)

leads  to  focused  actions  that  cannot  easily  be  misinterpreted  (Aggregating  Team  Intelligence  for  Collective  Accountability)

developing  channels  for  continuous  feedback  (Collaboration  against  Blame  games)

uniform  effort  balance  -­‐ sustainable  pace

having  a  very  high  fun  factor

Page 19: Agile Developers Create Their Own Identity[1]

FollowersInitial  guidance  needed  to  come  up  to  speedShow  progress  after  some  hand  holdingNeed  to  be  mentored  to  grow  into  volunteers

VolunteersSelf  inspiredTake  technology  and  process  initiativesCome  up  with  ideas  that  build  the  teamImplement  innovative  conceptsLift  the  team

MentorServant  Leaderauthority  used  to  serve  the  needs  of  othersgenuine  compassion  for  his  peopleknows  the  problems  of  the  community  as  a  wholefinds  the  solution  to  the  problemhas  the  skill  to  carry  out  the  solutiondevelop  the  next  generation  of  leaders

Shu-­‐Ha-­‐Ri Pattern  In  Team  Members

Page 20: Agile Developers Create Their Own Identity[1]

Leaders  do

Help  build  confidence  and  expectations  of  followers  Equip  them  and  be  their  mentor.

Affirm  /  Affirm  /  Affirm  your  volunteersChallenge  volunteers  to  stretch  and  grow

-­‐ Robert  Greenleaf,  Servant  Leadership

Leader  Apprenticeship

Page 21: Agile Developers Create Their Own Identity[1]

Agile  Developers  Create  Their  Own  Identity  

CraftsmenCraftsperson

Page 22: Agile Developers Create Their Own Identity[1]

Are  You  Creative Or  Just  Surviving !!

My  Creative Cycle  Persona  -­‐ I define  My identityI  am  excited  about  possibilities  to  connect with  my  strengths,  talents,  and  gifts.I  look  at  obstacles as  opportunities  to  observe,  reflect,  experiment and  learn.My  experiments  align  to  my  actions  with  purpose and  potential.When  I  achieve  the  desired  result,  I  feel  fulfilled and  celebrate  my  successes.

My  Survival Cycle  Persona  -­‐ Others define  My identityI  am  fearful and  reactive.I  react to  and  avoid  obstacles.  By  doing  this,  I  reinforce  my  old  strategies  for  coping,  conspiring,  adapting,  and  assimilating when  difficulties  arise.  (All  fear-­‐based responses)  My  purpose  is  not fulfilled and  I  feel  disappointed.  As  a  life-­‐long  habit,  this  approach  is  limiting,  lacks purpose and  meaning.

But,  it  is  very  difficult  for  me  to  be  in  Creative  Cycle  all  the  time.  I  tend  to  fall  back  to  my  Survival  Cycle.

Tune  the  mind  and  conscience  to  be  in  the  Creative  Cycle.

Page 23: Agile Developers Create Their Own Identity[1]
Page 24: Agile Developers Create Their Own Identity[1]

do  not  have  the  necessary  skills  to  execute  the  process;  conversely,  really  good  developers  

-­‐ Pete  McBreen,  Software  Craftsmanship:  The  New  Imperative

Developer to  CraftspersonWhat  is  Software  Craftsmanship?

Software  Craftsmanship  is  aboutTaking  responsibilityTaking  pride  in  work

Being  a  continuous  learnerPracticing  deliberatelyWriting  codeHaving  the  right  attitude  Contributing  to  the  community

Page 25: Agile Developers Create Their Own Identity[1]

Developer to  Craftsperson  through ApprenticeshipHow  should  I  become  an  expert  in  software  craftsmanship?

Read  and  understand  the  concepts  in  the  book  on  Apprenticeship  Patterns  -­‐ David  Hoover,  Adewale Oshineye

Find  a  mentorStudy,  Train  and  Practice

Performing  Code  KatasPerforming  Coding  DojosPerforming  Acceptance-­‐Test  basedLearning  TDDLearning  programming  paradigms  

functional,  dynamic,  statically  typed  languagesRefactoring   keep  your  code  healthyLearning  design  patterns,  tools  and  frameworksLearning  emergent  design,  evolutionary  design

Page 26: Agile Developers Create Their Own Identity[1]

Developer to  CraftspersonHow  will  I  know  the  learning  levels  in  software  craftsmanship?

Dreyfus  Model  of  Skills  Acquisition

Novice -­‐ Needs  to  be  told  exactly  what  to  do.  No  context  to  work  from.

Advanced  Beginner  -­‐ Has  more  context,  but  needs  rigid  guidelines

Competent -­‐ Questions  reasoning  behind  the  tasks  and  can  see  consequences

Proficient -­‐

Expert -­‐ Works  mainly  on  intuition,  except  when  problems  occur

Page 27: Agile Developers Create Their Own Identity[1]

Finding  Your  Own  Identity  is  about  Metamorphosis  (Shu Ha   Ri)From  Developer  (Crawling  Caterpillar)  to  Craftsman  Leader  (Soaring  Butterfly)

Novice AdvancedBeginner Competent

Proficient

Expert

Collaboration

Argumentation

Conflict  Mining

Team  Intelligence

PsychologicalDistanceSolvent

Apprenticeship

Creative  Cycle

Continuous  Learner

Deliberate  Practice

Right  Attitude

CommunityContributor

Follower   Volunteer   Mentor

Pride  

Your  Work)

ResponsibilityTo  Follow  Agile   To  Be  agile

Page 28: Agile Developers Create Their Own Identity[1]

Thank  youwww.stixis.com

References

Slide  24   Corey  Haines,  Cory  Foy,  Gøran    Hansen

Slide  25   Giordano  Scalzo

Slide  26   Cory  Foy

InterpretedSynthesized  From