Agile Developers Create Their Own Identity

  • 1,511 views
Uploaded on

 

More in: Self Improvement
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,511
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Without Values , Practices are performed for their own sake but lacking any purpose or direction.
  • When a programmer says, "I don't want to estimate my tasks," he generally isn't talking about technique. He already estimates, but doesn't want to reveal what he really thinks for fear of providing a fixed point of judgment that will be used against him later. Better triple that estimate! Refusing to communicate estimates reveals something much deeper about how he sees the social forces in development. Perhaps he doesn't want to be accountable because he has been blamed unfairly in the past. In this case, the programmer values protection over communication.
  • When I hear a programmer brush off a defect, I hear a failure of values, not technique. The defect itself might be a failure of technique, but the reluctance to learn from the defect shows that the programmer doesn't actually value learning and self-improvement as much as something else. This is not in the best interest of the program, the organization, or the programmer. Bringing values together with practices means that the programmer can perform a practice, in this case root-cause analysis, at effective times and for good reasons.
  • Refer Hofstede’s dimensions for distributed work
  • Novice rigid adherence to taught rules or plans no exercise of "discretionary judgment“ or context Advanced Beginner limited "situational perception” – has context but needs rigid guidelines all aspects of work treated separately with equal importance Competent "coping with crowdedness" (multiple activities, accumulation of information) some perception of actions in relation to goals – questions reasoning behind the tasks and can see consequences deliberate planning, formulates routines Proficient holistic view of situation prioritizes importance of aspects perceives deviations from the normal pattern employs maxims for guidance, with meanings that adapt to the situation at hand Expert transcends reliance on rules, guidelines, and maxims intuitive grasp of situations based on deep, tacit understanding has "vision of what is possible“ uses "analytical approaches" in new situations or in case of problems

Transcript

  • 1. 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
  • 2. Agile Developers Create Their Own Identity
  • 3. Context
  • 4. Leaders Agile Developers Create Their Own Identity
  • 5. Values, Practices and Principles : Relationship 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 Programming values  “communication” and “feedback” principle  driver-navigator principle – dual thinking hats of constructing and preventing from breaking. practice  Companion Planting used in agriculture values  “sustainability” and “responsibility” principle  Diversity is nature's design, cooperation is more apparent than competition in plants, crop stability tends to increase with increasing diversity. Sources: - Extreme Programming – Embrace Change by Kent Beck Intercropping Principles and Production Practices by National Sustainable Agriculture Service
  • 6. Values, Practices and Principles : Relationship Interpreting Value rather than Practice I won’t reveal the estimate as I would be held accountable and blamed unfairly like in the past. I value Protection over Communication I don’t want to estimate.
  • 7. Values, Practices and Principles : Relationship Failure 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 Oops, a defect. Improvement Ignore it. I will fix it when QA reports it.
  • 8. Layers of the Agile Manifesto Agree to disagree on detailed project specific ground tactics and prescriptive Barely agree on 12 Agree on 4 Agree on the meaning of “Agile”
  • 9. Individuals and Interactions (amongst Individuals) Values
  • 10. 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)
  • 11. Extrinsic and Intrinsic Motivation My Survival Cycle Persona - Others define My identity • I 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 identity • I 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).
  • 12. Natural vs. Coercive Self-Organizing Examples 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 mammals  flocking 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-organization in teams can be taught …….
  • 13. Self-organization Practices  Apprenticeship 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
  • 14. 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
  • 15. 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 Build & Application Release Business Analyst Development Management 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
  • 16. Problem - Team Dysfunction Model - Patrick Lencioni
  • 17. Solution - Team Leadership Model Team Leadership is a condition of a team – reduction 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
  • 18. Shu-Ha-Ri Pattern In Team Members • Followers – Initial guidance needed to come up to speed – Show progress after some hand holding – Need to be mentored to grow into volunteers • Volunteers – Self inspired – Take technology and process initiatives – Come up with ideas that build the team – Implement innovative concepts – Lift the team • Mentor – Servant Leader – authority used to serve the needs of others – genuine compassion for his people – knows the problems of the community as a whole – finds the solution to the problem – has the skill to carry out the solution – develop the next generation of leaders
  • 19. 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.
  • 20. Craftsperson Craftsmen Agile Developers Create Their Own Identity
  • 21. Are You Creative Or Just Surviving !! My Creative Cycle Persona - I define My identity • I 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 identity • I 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.
  • 22. Developer to Craftsperson 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  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
  • 23. Developer to Craftsperson through Apprenticeship How 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 mentor Study, Train and Practice  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
  • 24. Developer to Craftsperson 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
  • 25. Finding Your Own Identity is about Metamorphosis (Shu – Ha – Ri) From Developer (Crawling Caterpillar) to Craftsman Leader (Soaring Butterfly) Creative Cycle To Follow Agile  To Be agile Responsibility Apprenticeship Pride (“Signing” Your Work) Collaboration Continuous Argumentation Learner Novice Advanced Beginner Competent Conflict Mining Deliberate Proficient Practice Team Intelligence Expert Right Attitude Psychological Distance Follower  Volunteer  Mentor Community Solvent Contributor
  • 26. Synthesized From Interpreted References  Slide 24 – Corey Haines, Cory Foy, Gøran Hansen  Slide 25 – Giordano Scalzo  Slide 26 – Cory Foy Thank you www.stixis.com