Project Background
Muscat, Oman
Crossing cultures
12 months
9 team members
3 projects
Fixed scope, fixed schedule, fixed cost!
Environmental constraints
1 internet pc
Delayed site office
Lack of ability to copy and paste due to air-gap
Agile Method?
Lean, XP, whatever worked, all blended up
Project Highlights
Delivered project on time and on budget
1st time the client has had a contractor do so
Have packaged up the new practices and currently selling them to other companies
Core Coding Principles
Mob Deliberate Practice
What is a high performance team?
More than just the best people working on a problem, shared group values are key.
Each member of the team trust each other
Feel free to express feelings and ideas
Everyone work towards the same goals
It is clear how the team works together to accomplish task
Disagreements is viewed as a good thing and conflicts are managed
Criticism is constructive and focused on problem solving
A values-driven culture supports the human behaviors that bring about enthusiasm, passion and commitment— behaviors that are critical for success.
Creating long lasting and creative partnerships
Being purpose driven
Focused on adding measurable value
Creating delightful customer and user engagement
Becoming expert in our domain
Meaningful work is fun
2 week bootcamp
Build reporting library
TDD and CI technical practices
Get to know each other
Communication
Choosing encouragement over criticism
Kind word give an emotional boost, criticism puts people on the defensive
Exercising humility
Developer tend to have large egos making it hard to receive feedback
Becoming habitually positive
Negativity is draining and contagious
Don’t blindly say everything is great, it will lose its impact
Listen
Not to respond but to understand
Use it as a tool to humanize yourself and co-workers
Share a personal story
Collaboration
Collaboration is not ad-hoc meetings, email, phone calls, slack, etc.
Proper collaboration is training, coaching and mentoring!
Prefer colocation to facilitate brief face-to-face collaborations, thus resulting in more efficient exchanges.
Groups innovate faster, see mistakes more quickly and find better solutions to the problems they face. Profits/performance increase when collaboration increases
Modivation
Drive: The Surprising Truth About What Motivates Us - By Daniel Pink
Carrots & Sticks are so last Century. Drive says for 21st century work, we need to upgrade to autonomy, mastery and purpose
Autonomy — Our desire to be self directed. It increases engagement over compliance.
Mastery — The urge to get better skills.
Purpose — The desire to do something that has meaning and is important.
Management Philosophy
Software is a team sport
Do not optimize for the individual, optimize for the feature or story.
Group norms are key to team success
Reward the behaviors you desire
The root cause of technical debt is a focus on the short-term, to the detriment of long-term productivity.
Proper collaboration is training, coaching and mentoring!
Helps drive mastery
Communication Practices
Working Agreements
Software Conversations
Red bin
Experiment driven change
Collaboration Practices
10x developer
Mentor / Coach
Reduced delivery expectation
Focuses on key architectural pieces
When paired with Sonar reduces the need for deliberate code reviews
Modivation Practices
Team Building Events
Delivering Daily Value
Vertical slicing
Sticky Refactoring
As we accomplish things, we trigger positive chemical feedback loops in our brain that fill us with a sense of happiness or euphoria. The strength of that effect varies depending on how big the goal was, but even tiny goals can trigger the positive feedback cycle.
Clean Architecture
You build it, you demo it
Ensures developers test their work
Ensures developers understand the problem they are solving
Enables autonomy and trust
Helps establish purpose
Deliberate Practice
This is because the automatic behaviors and practices deteriorate without deliberate and focused practice.
Summary
Communication, Collaboration, Motivation
Software is a team sport, optimize for the feature not individual productivity
Build a culture of mentoring to find your 10x developer