Agile developers create their own identity by Ajay Danait


Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Agile developers create their own identity by Ajay Danait

  1. 1. Agile Developers Create Their Own Identity – Ajay Danait
  2. 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
  3. 3. Individuals and Interactions
  4. 4. Team Dysfunction Model - Patrick Lencioni
  5. 5. 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
  6. 6. 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
  7. 7. 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)
  8. 8. 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
  9. 9. 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.
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. Stixis Thank you