Herding cats (managing software development)

71
Herding cats or you should have majored in psychology Chris Fry

description

 

Transcript of Herding cats (managing software development)

Page 1: Herding cats (managing software development)

Herding cats or you should have majored in psychologyChris Fry

Page 2: Herding cats (managing software development)

Herding Cats

Page 3: Herding cats (managing software development)

Agenda

What is management, what is dev management?

Holistic management

Technical Management

Recruiting

Process & Execution

Feedback & Career development

Finish up

Page 4: Herding cats (managing software development)

I started on the API Team

Dev Mgr for the API team in 2006

Now run all of development for salesforce

Page 5: Herding cats (managing software development)

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

Page 6: Herding cats (managing software development)

What is management?

Page 7: Herding cats (managing software development)

The transition to management is hard

Page 8: Herding cats (managing software development)

Holistic Management

Page 9: Herding cats (managing software development)

Working with people to do the right thing

Productivity is its own reward

Responsibility is power

Focus on the outcome

Page 10: Herding cats (managing software development)

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

Page 11: Herding cats (managing software development)

Manage your relationships

Across, up and down

Help people

Meet regularly cross-functionally

Page 12: Herding cats (managing software development)

Leadership is communication

Over communicate

Send a daily email

Foster a culture of face 2 face communication

Talk to people frequently

Break down barriers

Page 13: Herding cats (managing software development)
Page 14: Herding cats (managing software development)

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

Page 15: Herding cats (managing software development)

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

Page 16: Herding cats (managing software development)

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

Page 17: Herding cats (managing software development)

Notes from peopleware (3)

Quiet space is more productive

FLOW – an endless state of no-flow?

Page 18: Herding cats (managing software development)
Page 19: Herding cats (managing software development)

AUtONOMY

Page 20: Herding cats (managing software development)

MAsTERY

Page 21: Herding cats (managing software development)

PUrPOSE

Page 22: Herding cats (managing software development)
Page 23: Herding cats (managing software development)

In a knowledge economy everyone is an executive

Page 24: Herding cats (managing software development)

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”

Page 25: Herding cats (managing software development)

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

Page 26: Herding cats (managing software development)

Technical Management

Page 27: Herding cats (managing software development)

Technical Management

What are you responsible for as a dev manager?

Page 28: Herding cats (managing software development)

Technical Management

As a development manager you are responsible for the

design, quality and implementation of software.

Page 29: Herding cats (managing software development)

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

Page 30: Herding cats (managing software development)

Decision making

Who is making the decision?

Force hard technical decisions early

Leverage the virtual architecture team

Page 31: Herding cats (managing software development)

Team Structure

Partner with a great architect

Embrace QE

Page 32: Herding cats (managing software development)

Team practices

Enforce good coding habits

Review test plans and ftests

Reinforce good code reviews

Mentor junior developers

Look for warning signs

Fail Fast

Page 33: Herding cats (managing software development)

Broken Windows

Don’t break the build

Don’t break the tests

Write tests

Integrate early and often

Fix bugs right away

Page 34: Herding cats (managing software development)

Summary: Technical Management

KISS

Use the product

Promote healthy practices

Broken Window Theory

Page 35: Herding cats (managing software development)

Recruiting & Team Structure

Page 36: Herding cats (managing software development)

The best recruiting is building a great team

Page 37: Herding cats (managing software development)

Get the right people!

Get the right people

Make them happy so they don’t want to leave

Turn them loose

Page 38: Herding cats (managing software development)

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

Page 39: Herding cats (managing software development)

Get out of their way!

Page 40: Herding cats (managing software development)

What level should you stay informed?

OR

Page 41: Herding cats (managing software development)

Ideal Team Structure – I hate sports metaphors but…

Page 42: Herding cats (managing software development)

Recruiting Phases

1. Sourcing

2. Screening

3. Interview

4. Post Interview

Page 43: Herding cats (managing software development)

Jell the team

Goal alignment

Joint ownership of the product

Obvious enjoyment

Sense of eliteness

Page 44: Herding cats (managing software development)

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

Page 45: Herding cats (managing software development)
Page 46: Herding cats (managing software development)

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

Page 47: Herding cats (managing software development)

Execution & Process

Page 48: Herding cats (managing software development)

Features * Quality = Resources * Time

Page 49: Herding cats (managing software development)
Page 50: Herding cats (managing software development)

Development as a Team

Design/Build/Test

Design -> Build -> Test

Page 51: Herding cats (managing software development)

Continuous Integration

Page 52: Herding cats (managing software development)

Reflection & Improvement

Page 53: Herding cats (managing software development)

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

Page 54: Herding cats (managing software development)

Summary: Execution and Process

FQ=RT

Lower Risk, ship often

Automate and integrate

Reflect and Improve

Run great projects

Page 55: Herding cats (managing software development)

Feedback

Page 56: Herding cats (managing software development)
Page 57: Herding cats (managing software development)
Page 58: Herding cats (managing software development)

Learned Helplessness

Page 59: Herding cats (managing software development)

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

Page 60: Herding cats (managing software development)

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

Page 61: Herding cats (managing software development)

Summary: Feedback

Make people safe (ask for permission)

In the moment, direct and honest

Positive feedback at a 10 to 1 ratio

Page 62: Herding cats (managing software development)

Career Development

Page 63: Herding cats (managing software 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.

Page 64: Herding cats (managing software development)

Have a vision of where people are going

Page 65: Herding cats (managing software development)

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.

Page 66: Herding cats (managing software development)

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?

Page 67: Herding cats (managing software development)

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?

Page 68: Herding cats (managing software development)

Write a plan and checkin

Page 69: Herding cats (managing software development)

Summary: Career Development

Ask Questions

Write a plan and commit to it

Deliver on the plan

Page 70: Herding cats (managing software development)

Overall Summary

Holistic Management

Technical Management

Recruiting and Team

Structure

Execution & Process

Feedback

Career development

Page 71: Herding cats (managing software development)

Q&A