View
1.174
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
Agile Developers Create Their Own Identity
– Ajay Danait
Me and Agility @ StixisAbout 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
Individuals and Interactions
Team Dysfunction Model- Patrick Lencioni
• Traditional Conduit Co-ordination
Geographical Distance Solvent
Business
RequirementsBusiness
RequirementsCustomer Development Team
Onsite Coordinator
OffshoreManager / Lead
Business
RequirementsBusiness
RequirementsCustomer Development Team
Onsite Facilitator
OffshoreFacilitator
• Peer-To-Peer Co-ordination
Psychological Distance SolventTraditional Team Hierarchy (Crowns) to Cross-Functional Roles (Caps)
Project Manager
Tech Architect Test Architect
Tech LeadData
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
Database
Development
Test
Automation
Test
Creation
Caps
Can be swapped depending on situations
Increase sense of collective ownership
Rotation of responsibilities
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)
• 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
Patterns In Team Members
• 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.
“The great leader is first experienced as a servant to others. ” - Robert Greenleaf, Servant Leadership
Leader Apprenticeship
“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
Developer to CraftsmanWhat is Software Craftsmanship?
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 deliberatelyWriting code Having the right attitude
Contributing to the community
Developer to Craftsman through ApprenticeshipHow should I become an expert in software craftsmanship?
Read and understand the book on Apprenticeship Patterns - David Hoover, Adewale Oshineye
Continual LearningDeliberate PracticeFind a mentorStudy, 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 CraftsmanHow 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 youwww.stixis.com