Herding cats (managing software development)
-
Upload
cfry -
Category
Technology
-
view
1.935 -
download
1
description
Transcript of Herding cats (managing software development)
Herding cats or you should have majored in psychologyChris Fry
Herding Cats
Agenda
What is management, what is dev management?
Holistic management
Technical Management
Recruiting
Process & Execution
Feedback & Career development
Finish up
I started on the API Team
Dev Mgr for the API team in 2006
Now run all of development for salesforce
Notes from my mom, Nancy
“Put your family first and read a lot of Drucker”
“I never wanted anyone working for me that I had to tell
what to do”
Make a game of it
Praise, Praise, Praise
Stand up to bullies
Build community
Be genuinely interested in other people
What is management?
The transition to management is hard
Holistic Management
Working with people to do the right thing
Productivity is its own reward
Responsibility is power
Focus on the outcome
Functional Management: focus on the whole team
There is no such thing – no one function can ship
software– Change task roles
– Don’t assign tasks to owners
– Be fair
– Highlight everyone’s accomplishments (focus on the team)
– Do everything cross-functionally
– Have cross functional one on ones
– Remove blockers
Manage your relationships
Across, up and down
Help people
Meet regularly cross-functionally
Leadership is communication
Over communicate
Send a daily email
Foster a culture of face 2 face communication
Talk to people frequently
Break down barriers
Notes from peopleware (1)
People under time pressure don’t work better; they just
work faster
Quality is free
Parkinson’s Law almost certainly doesn’t apply to your
people
Seven false hopes of software management
1. There is some new trick you’ve missed that could send
productivity soaring
2. Other managers are getting 200% productivity gains
3. Technology is moving so swiftly you’re being passed by
4. Changing languages will give you huge gains
5. Because of the backlog, you need to double productivity
immediately
6. You automate everything else; isn’t it about time you automated
away your software development staff
7. Your people will work better if you put them under a lot of
pressure
Notes from peopleware (2)
There are a million ways to lose a work day but not
even one to get one back
There is a 10 to 1 productivity difference between the
best developers and everyone else
There is a 10 to 1 productivity difference between the
best organizations and everyone else
Notes from peopleware (3)
Quiet space is more productive
FLOW – an endless state of no-flow?
AUtONOMY
MAsTERY
PUrPOSE
In a knowledge economy everyone is an executive
Effective Executive
Ask “What needs to be done?”
Ask “What is right for the business”
Develop action plans
Take responsibility for your decisions
Take responsibility for communicating
Focus on opportunities rather than problems
Run productive meetings
Think and say “we” rather than “I”
Summary: Holistic Management
Management is a challenging discipline: it’s
hard
There are no silver bullets
Everyone is an executive
You don’t need to tell people what to do
Manage the whole
Technical Management
Technical Management
What are you responsible for as a dev manager?
Technical Management
As a development manager you are responsible for the
design, quality and implementation of software.
Product
KISS
Dogfood the product
Write and keep tech specs up to date
Focus on quality
Think through the end game of M&M and deployment
Decision making
Who is making the decision?
Force hard technical decisions early
Leverage the virtual architecture team
Team Structure
Partner with a great architect
Embrace QE
Team practices
Enforce good coding habits
Review test plans and ftests
Reinforce good code reviews
Mentor junior developers
Look for warning signs
Fail Fast
Broken Windows
Don’t break the build
Don’t break the tests
Write tests
Integrate early and often
Fix bugs right away
Summary: Technical Management
KISS
Use the product
Promote healthy practices
Broken Window Theory
Recruiting & Team Structure
The best recruiting is building a great team
Get the right people!
Get the right people
Make them happy so they don’t want to leave
Turn them loose
Keep the right people!
Turnover costs you
Voluminous documentation is part of the problem, not
part of the solution
The whole is greater than the sum of its parts
Get out of their way!
What level should you stay informed?
OR
Ideal Team Structure – I hate sports metaphors but…
Recruiting Phases
1. Sourcing
2. Screening
3. Interview
4. Post Interview
Jell the team
Goal alignment
Joint ownership of the product
Obvious enjoyment
Sense of eliteness
Chemistry for team Formation
Make a cult of quality
Provide lots of satisfying closure
Build a sense of eliteness
Allow and encourage heterogeneity
Preserve and protect successful teams
Provide strategic but not tactical direction
Summary: Recruiting and Team Structure
Team building is recruiting
Keep people happy
Know the funnel (sourcing, screening, interview,
close)
Jell teams
Forming, Storming, Norming, Performing
Execution & Process
Features * Quality = Resources * Time
Development as a Team
Design/Build/Test
Design -> Build -> Test
Continuous Integration
Reflection & Improvement
Basic Project Execution
1. Who owns the project
2. Create clear objectives
3. Get buy in on the objectives
4. Get what you need to be successful
5. Create the plan
6. Communicate the plan
7. Execute on the plan
8. Inspect
9. Adapt
Summary: Execution and Process
FQ=RT
Lower Risk, ship often
Automate and integrate
Reflect and Improve
Run great projects
Feedback
Learned Helplessness
One Minute Praising
1. Tell people up front that you are going to let them know how
they are doing
2. Praise people immediately
3. Tell people what they did right – be specific
4. Tell people how good you feel about what they did right and
how it helps the organization and the other people who work
here
5. Stop for a moment of silence
6. Encourage more of the same
7. Shake hands and let people know that you support their
success in the organization
One Minute Reprimand
1. Tell people beforehand that you are going to let them know how they are
doing in no uncertain terms
2. Reprimand people immediately
3. Tell people what they did wrong – be specific
4. Tell people how you feel about what they did wrong – and in no uncertain
terms
5. Stop for a few seconds of uncomfortable silence to let them feel how you
feel
6. Shake hands and let them know you are honestly on their side
7. Remind them how much you value them
8. Reaffirm that you think well of them but not of their performance in the
situation
9. Realize that when the reprimand is over, it’s over
Summary: Feedback
Make people safe (ask for permission)
In the moment, direct and honest
Positive feedback at a 10 to 1 ratio
Career Development
Basics
A manager is responsible for their employees’ careers. You are the primary responsible party until
they succeed you.
Putting an employee where they can succeed is your responsibility. This does not mean you cover
for short comings, cheat so they win, or give them credit for others work. It means you have taken
their strengths and weaknesses, skills and motivations, method of working, and the work you have
available to appropriately marry them to a job they can succeed in.
Taking an employee out of a position they can not succeed in is your responsibility.
The failure of your subordinates is not your subordinates fault. It is yours. You failed to put that
person in the right position at the right time with the right skills or information. Or, you failed to
remove a person from a position that they could not be successful in. There is a difference between
giving someone a challenging role and a suicide mission. You must see the difference and act.
Quality people respond to challenge and learning experiences. Challenge your employees. Foster
those who take the challenge and execute. Remove those who do not.
People who are successful at their daily work succeed in their careers. They are always
progressing forward by taking more responsibility and accountability. Their reverence continually
grows within the organization.
Not all people are career oriented. Some just like to work.
Have a vision of where people are going
How can we create successful employees that have positive career development?
Honest feedback on relationships that they need to build across the
organization.
Immediate feedback when they’ve flipped another person’s dork bit.
Remove non performers to open up opportunities for performers.
Let performers decide their work in part or full time. Fulfill their work
passion.
Give challenges outside of normal daily work that apply to their personal
goals.
Honest feedback on the employee’s responsibility to make it to the next
technical rung, management rung, or career change.
Taking employees out of positions they can not be successful in.
Ensure the employee understands the importance of their work.
How do you understand what your employee’s goals and motivations are?
Talk to them candidly.
Watch what they choose to work on when.– Ask them: Why that then?
Understand their personal goals. – Ask them: What unfinished accomplishment would make you
happiest to achieve?
Understand their personal motivations. – Ask them: What makes you happy to be at work? In what
situations did you feel a true sense of accomplishment?
How do you track success at managing your employees’ careers?
Are they happy?
Are they well received in the organization?
Do they feel challenged?
Do they understand the importance of their work?
Are they actively working on making themselves better?
Are they taking more responsibility and accountability over
time?
Are they progressing through the organization from a
corporate structure or unwritten pecking order
perspective?
Write a plan and checkin
Summary: Career Development
Ask Questions
Write a plan and commit to it
Deliver on the plan
Overall Summary
Holistic Management
Technical Management
Recruiting and Team
Structure
Execution & Process
Feedback
Career development
Q&A