agile developers create their own identity by ajay danait

15
Agile Developers Create Their Own Identity Ajay Danait

Post on 19-Oct-2014

1.174 views

Category:

Education


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Agile developers create their own identity by Ajay Danait

Agile Developers Create Their Own Identity

– Ajay Danait

Page 2: Agile developers create their own identity by 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

Page 3: Agile developers create their own identity by Ajay Danait
Page 4: Agile developers create their own identity by Ajay Danait

Individuals and Interactions

Page 5: Agile developers create their own identity by Ajay Danait

Team Dysfunction Model- Patrick Lencioni

Page 6: Agile developers create their own identity by Ajay Danait

• 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

Page 7: Agile developers create their own identity by Ajay Danait

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

Page 8: Agile developers create their own identity by Ajay Danait

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)

Page 9: Agile developers create their own identity by Ajay Danait

• 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

Page 10: Agile developers create their own identity by Ajay Danait

• 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

Page 11: Agile developers create their own identity by Ajay Danait
Page 12: Agile developers create their own identity by Ajay Danait

“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

Page 13: Agile developers create their own identity by Ajay Danait

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

Page 14: Agile developers create their own identity by Ajay Danait

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

Page 15: Agile developers create their own identity by Ajay Danait

Stixis

Thank youwww.stixis.com