This document discusses Ajay Danait's focus on building organizational culture around agility rather than just following Agile practices. It describes his work in strategic agile solutions, software delivery through craftsmanship and maintenance, and helping organizations transform through agility assessments and team coaching. The document also addresses topics like overcoming geographical and psychological distance in distributed teams, patterns in team members, and developing from a novice developer to a software craftsman through continuous learning and apprenticeship.
Report
Share
Report
Share
1 of 15
Download to read offline
More Related Content
Agile developers create their own identity by 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
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