Agile development practice has gained popularity in the last few years. India has so far been riding on CMMI bandwagon, with companies vying with each other to get CMMI certification. Recently, we are seeing more and more projects being executed using agile methodologies. This has also brought with it, some challenges. Not all of them are unique to agile, but they tend to manifest earlier and has higher impact in agile.
While there are different types of challenges, here, we are focusing on the Indian cultural ones. Also, we are looking at the challenges in a joint product development – where work is done both by offshore team (which is typically the outsourced organization) and the onsite team (the client team).
After we elaborate on the challenges, we present how we have tried to solve them in our current client engagement.
5. Playground
• Co-development
– Different time zones
– Different teams
• 2 week iterations
• Separate QA team
• Remote Product Owner
• QA inline with iteration
• Common toolset
6. Rules of the game
• Meetings
– Pre-planning and Planning
– Demo and Retro
– Standups
– Conference calls
• Work
– User stories
– Bugs from released stories
7.
8. Players
• Customer team
– Average 10+ years experience
– Similar experience levels
• Offshore team
– Different experience levels - 0 to 10
– Different cultural backgrounds
– Most with no agile experience
11. Why IT industry?
• High-paying
• Opportunities
• Overseas exposure
• Glamorous
• Air-conditioned work, 5 day week
12. Education System
• Theoretical focus
– Civics and civic sense
– Learn about road rules
but not follow
– System of Government
– Less importance to
games and sports
• How many of us can fix
a leaking tap, build a
book shelf
13. Programming
• Focus on quantity – number of languages
• Learn through a set of programs
– Sort a list of numbers
– Binary search
– Matrix multiplication
– Doubly linked list
15. Programming
• Less focus on design and implementation
– Performance, scalability and reliability
– Testability
– Coding standards
– Best practices of programming
16. How it affects
• Doing it right the first time
• Test First/ Test Driven Development
• Writing clean code (free of violations)
17.
18. IT/Service Mindset
• Somehow solve a problem
• Means are not important or relevant
• Deadline driven
• Quantity rather than quality
• Applicable for only one situation
19. Contrasting Product Mindset
• Hardware, OS, browser independence
• Design for change
• Logging
• Installation and deployment strategy
• Upgrade strategy
• Service packs and hotfixes
20. How it affects
• Designing for change
• Thinking beyond specific problem
• Looking at the bigger picture
21. Distractions at work
• Flexible working hours
• Getting to office – traffic jams
• Breakfast and coffee breaks
• Phone calls
• Personal mails and social network
• Friends at work
• Hobbies and recreations – lack of
22. How it affects
• Sticking to estimated time
• Working to compensate for lost time
• Dependant team members and delays
• Dependant groups – QA, schedule
23. Hierarchy
• Parents at home
– School
– College
– Job
– Marriage
• Teachers at school/college
• Supervisors at work
– Tell me what to do and by when
24. How it affects
• Commitment
• Estimation
• Ownership
• Proactiveness
25. Resume fattening
• Number of different technologies
• Number of projects
• Jack of all arts
– Master of none?
• Superficial/Shallow knowledge
• Disinterest in specialization
26. How it affects
• Working in a time-boxed environment
– Sticking to estimates
– Overcoming technical challenges
– Writing optimized code
– Using appropriate library features
27. Reporting Impediments
• Cultural influence
– left hand stigma
– fear of punishment
• Self-conscious
• Linking to appraisal
• Non-technical
Manager
28. Retrospective participation
• Cultural influence • Why raise the barrier?
– Stoic and self-content
– Why upset the apple- • Skirt around sensitive
cart? topics
• Set a goal – meet or – People, ability,
exceed aptitude
29. Collaboration
• Talking vs discussion
• Divide and conquer vs
independence
• Me, mine, myself vs us, ours
• Blame game
• Taking feedbacks personally
30. Communication
• Cultural influence
– English as foreign language
– Mother tongue influence
• Trouble with accent
• What I said and what I
mean
• Verbal and written
31.
32. Holidays
• Cultural influence
– Away from family
– Going home for festivals
• Multitude of festivals
• Regional and religious
• 2 week iterations and holidays
33. Unlearning
• Happy with status quo
– resistance to change
• Unaware of doing
mistakes
• Difficulty in correcting
• Importance of learning
it right the first time
38. Self-driven teams
• Who should bell the cat?
• Why me?
• What is in it for me?
• Harder I work, the more
work I get
• Peer pressure
39. Chief Programmer model
• Create specializations amongst team members
• Break stories into tasks
– Specialized team member picks tasks
• Less self-driven and more ability-driven
• Leads as Chief Programmers
– interact with customer
– coach and mentor team
40.
41. Tool-driven approach
• Minimize the human factor
• Tools
– to flag style violations
– to identify lack of code coverage
– to flag incorrect coding practices
– to run for each check-in and identify issues at the
earliest
– consistent across local and remote teams
42.
43. Overcoming distractions
• Core business hours
• Blocking of social networking at work
• Co-location – low cubicle walls
• Manager co-located with team
44.
45. Tracking
• Variant of Pomodoro technique – pre-lunch
and post-lunch (3 hour slots)
• Stand ups before start of work and post-lunch
• Individual follow-ups and reminders
• Proxy updates
46.
47. Communication Channels
• Multiple channels
– Wiki, Issue tracking system, email, instant
messaging
– Regular teleconferences
– Large whiteboard with visible status
48. Pigs and Chickens
• Be transparent
• Track through tools
• Try to help
• Shield from
distraction
50. Summary
• Agile is here to stay
• Brings issues to surface rapidly
• Focuses on continuous improvement
• Need to work hard to stay afloat
• Survival of the fittest