Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Agile Developers
Create Their Own Identity
                 – Ajay Danait
Me and Agility @ Stixis
About me
• Strategist for global solutions on software agility.
• My focus of agility – building an organization culture to "be agile" rather than "follow Agile".

Software Agility is about focus on
      agile teams using
      agile tools, techniques and technologies for
      agile delivery of software

Software Delivery
      Software Craftsmanship
      Midas Touch – Agility in software maintenance
      Agile Enterprise Architecture solutions

Agility Nurseries
        Agile Offshore Delivery Centre (ODC) with self-organizing teams
        Apprenticeship in software practices

Organization Metamorphosis
 Agility Assessment Radars and Roadmap
       Team Agility Assessment
       Value Stream Mapping
       Shared Vision and Team Chartering
 Team Coaching, Executive Orientation
       Scrum Framework Process Design and Coaching
       XP Engineering Practices Coaching
       Lean Software Process Design and Coaching
Agile developers create their own identity by Ajay Danait
Individuals and Interactions
Team Dysfunction Model
                         - Patrick Lencioni
Geographical Distance Solvent
• Traditional Conduit Co-ordination
                                            Onsite         Offshore
                                          Coordinator   Manager / Lead




                        Business                                               Business
          Customer    Requirements                                           Requirements    Development
                                                                                                Team




• Peer-To-Peer Co-ordination
                                      Onsite                    Offshore
                                     Facilitator               Facilitator




                        Business                                                Business
           Customer   Requirements                                            Requirements   Development
                                                                                                Team
Psychological Distance Solvent
           Traditional Team Hierarchy (Crowns) to Cross-Functional Roles (Caps)
                                Project Manager
                                                                                                     System
                                                                                                Architecture
Tech Architect                               Test Architect
                                                                                  Test                                 Business
                                                                               Creation                                Analysis
                           Data
  Tech Lead                                       Test Lead
                          Architect


                                                                                                      Team
           Designer                                    Test Analyst                                 Leadership
                                                                           Test                                           Project
                                                                        Automation                                      Management
                                                    Automation Tester
           Developer



                                                                                         Database             Application
       Business Analyst                                                              Development              Development


   Crowns                                                               Caps
    Creates and widens gap                                              Can be swapped depending on situations
    Restricts knowledge sharing                                         Increase sense of collective ownership
    Builds up power distance                                            Rotation of responsibilities
    Steep learning curve for increase in maturity                       Open culture within the team
Patterns In Team Members
• Prima Donna vs. Team Player
  – Proficient developer
  – Picky on work selection
  – Project heavily depends on the team member
  – Highest possibility of attrition

• Introvert vs. Extravert
  – Not very communicative, find pleasure working alone
  – Tendency to get distracted working alone (surfing, chatting,
    mail forwarding, etc.)
  – Gets stuck and not report them to save “losing face”
  – Can resort to skipping steps (e.g. check in code without
    tests passing, “ignoring” failed tests, bad code readability)
Patterns In Team Members
• Volunteers
  –Self inspired
  –Take technology and process initiatives
  –Come up with ideas that build the team
  –Implement innovative concepts
  –Lift the team

• Followers
  –Initial guidance needed to come up to speed
  –Show progress after some hand holding
  –Need to be mentored to grow into volunteers
Leader Apprenticeship
          “The great leader is first experienced as a servant to others. ”
                                                      - Robert Greenleaf, Servant Leadership

• Leaders do
   • Encourage the hearts of “followers”
      – Help build confidence and expectations of followers
      – Equip them and be their mentor.
      – Grow “followers” into “volunteers”.

   • Value and recognize “volunteers” as VIPs
      – Affirm / Affirm / Affirm your volunteers
      – Challenge volunteers to stretch and grow
      – Grow “volunteers” into mentors.
Agile developers create their own identity by Ajay Danait
Developer to Craftsman
                                 What is Software Craftsmanship?
      “Software Craftsmanship is all about putting responsibility and pride back into the software development
      process. ”

      “The best processes in the world will not save a project from failure if the people involved do not have the
      necessary skills to execute the process; conversely, really good developers can make any process work”

      “A Software Craftsman is a continuous learner. When he doesn’t work, he spends his time studying, to find
      new methods and tools can refine him as a Software Craftsman”

      - Pete McBreen, Software Craftsmanship: The New Imperative



Software Craftsmanship is about
     Developing code with quality and readability that communicates intent
     Taking responsibility
     Taking pride in work
     “Signing” your work
     Being a continuous learner
     Practicing deliberately
     Writing code
     Having the right attitude
     Contributing to the community
Developer to Craftsman through Apprenticeship
         How should I become an expert in software craftsmanship?


Read and understand the book on Apprenticeship Patterns
                                                    - David Hoover, Adewale Oshineye
Continual Learning
Deliberate Practice
Find a mentor
Study, Train and Practice Software Craftsmanship by
     Performing Code Katas
     Performing Coding Dojos
     Performing Acceptance-Test based
     Learning TDD
     Learning programming paradigms – functional, dynamic, statically typed
    languages
     Refactoring – keep your code healthy
     Learning design patterns, tools and frameworks
     Learning emergent design, evolutionary design
Developer to Craftsman
How 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 - Still relies on rules, but can separate what’s
important

 Expert - Works mainly on intuition, except when problems
occur
Stixis




Thank you
www.stixis.com

More Related Content

Agile developers create their own identity by Ajay Danait

  • 1. Agile Developers Create Their Own Identity – Ajay Danait
  • 2. Me and Agility @ Stixis About me • Strategist for global solutions on software agility. • My focus of agility – building an organization culture to "be agile" rather than "follow Agile". Software Agility is about focus on  agile teams using  agile tools, techniques and technologies for  agile delivery of software Software Delivery  Software Craftsmanship  Midas Touch – Agility in software maintenance  Agile Enterprise Architecture solutions Agility Nurseries  Agile Offshore Delivery Centre (ODC) with self-organizing teams  Apprenticeship in software practices Organization Metamorphosis  Agility Assessment Radars and Roadmap  Team Agility Assessment  Value Stream Mapping  Shared Vision and Team Chartering  Team Coaching, Executive Orientation  Scrum Framework Process Design and Coaching  XP Engineering Practices Coaching  Lean Software Process Design and Coaching
  • 5. Team Dysfunction Model - Patrick Lencioni
  • 6. Geographical Distance Solvent • Traditional Conduit Co-ordination Onsite Offshore Coordinator Manager / Lead Business Business Customer Requirements Requirements Development Team • Peer-To-Peer Co-ordination Onsite Offshore Facilitator Facilitator Business Business Customer Requirements Requirements Development Team
  • 7. Psychological Distance Solvent Traditional Team Hierarchy (Crowns) to Cross-Functional Roles (Caps) Project Manager System Architecture Tech Architect Test Architect Test Business Creation Analysis Data Tech Lead Test Lead Architect Team Designer Test Analyst Leadership Test Project Automation Management Automation Tester Developer Database Application Business Analyst Development Development Crowns Caps  Creates and widens gap  Can be swapped depending on situations  Restricts knowledge sharing  Increase sense of collective ownership  Builds up power distance  Rotation of responsibilities  Steep learning curve for increase in maturity  Open culture within the team
  • 8. Patterns In Team Members • Prima Donna vs. Team Player – Proficient developer – Picky on work selection – Project heavily depends on the team member – Highest possibility of attrition • Introvert vs. Extravert – Not very communicative, find pleasure working alone – Tendency to get distracted working alone (surfing, chatting, mail forwarding, etc.) – Gets stuck and not report them to save “losing face” – Can resort to skipping steps (e.g. check in code without tests passing, “ignoring” failed tests, bad code readability)
  • 9. Patterns In Team Members • Volunteers –Self inspired –Take technology and process initiatives –Come up with ideas that build the team –Implement innovative concepts –Lift the team • Followers –Initial guidance needed to come up to speed –Show progress after some hand holding –Need to be mentored to grow into volunteers
  • 10. Leader Apprenticeship “The great leader is first experienced as a servant to others. ” - Robert Greenleaf, Servant Leadership • Leaders do • Encourage the hearts of “followers” – Help build confidence and expectations of followers – Equip them and be their mentor. – Grow “followers” into “volunteers”. • Value and recognize “volunteers” as VIPs – Affirm / Affirm / Affirm your volunteers – Challenge volunteers to stretch and grow – Grow “volunteers” into mentors.
  • 12. Developer to Craftsman What is Software Craftsmanship? “Software Craftsmanship is all about putting responsibility and pride back into the software development process. ” “The best processes in the world will not save a project from failure if the people involved do not have the necessary skills to execute the process; conversely, really good developers can make any process work” “A Software Craftsman is a continuous learner. When he doesn’t work, he spends his time studying, to find new methods and tools can refine him as a Software Craftsman” - Pete McBreen, Software Craftsmanship: The New Imperative Software Craftsmanship is about  Developing code with quality and readability that communicates intent  Taking responsibility  Taking pride in work  “Signing” your work  Being a continuous learner  Practicing deliberately  Writing code  Having the right attitude  Contributing to the community
  • 13. Developer to Craftsman through Apprenticeship How should I become an expert in software craftsmanship? Read and understand the book on Apprenticeship Patterns - David Hoover, Adewale Oshineye Continual Learning Deliberate Practice Find a mentor Study, Train and Practice Software Craftsmanship by  Performing Code Katas  Performing Coding Dojos  Performing Acceptance-Test based  Learning TDD  Learning programming paradigms – functional, dynamic, statically typed languages  Refactoring – keep your code healthy  Learning design patterns, tools and frameworks  Learning emergent design, evolutionary design
  • 14. Developer to Craftsman How 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 - Still relies on rules, but can separate what’s important  Expert - Works mainly on intuition, except when problems occur