yeah but.. what do i do? software leadership dan fleck 2010

27
Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Upload: lionel-robinson

Post on 29-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Yeah but.. What do I do?

Software Leadership

Dan Fleck2010

Page 2: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

The Question

• Often the question comes up after a lesson in Software Engineering,

“I know all these practices, and techniques, but what do I REALLY do?”

Page 3: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Who you are

• First, we need to know who you are

Project Manager (PM)

TechnicalLead

Developers Testers QA CM

AKA: Lead engineer, software architect, principal engineer

Page 4: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Responsibilities

• Tech Lead Deliver the software on time Managing the process Guiding the solution architecture Scheduling

Development tasks Testing tasks Deployment

Managing requirements and change requests Providing status information to your boss Maintain the budget (* usually on smaller teams) Hiring/Interviewing

Page 5: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Question?

• You are the tech lead of a team. The customer asked you to do three new features, which you agreed to because programmer Joe said they’d be done on time. The project is late by 3 weeks. Whose fault is it?

• A Customer C Yours• B Joe D The Man

Page 6: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Deliver Software on Time

• No excuses -- it’s not on time, it’s your fault

• Key Strategies Constantly be aware of the schedule and

update it if needed Communicate updates to the team and the

customer Don’t make up the schedule -- Ask for

developer’s estimates then review them for reality

Page 7: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Manage the Process

• You set the process for the team. Establish a software CM repository if one

doesn’t exist Establish a build process if one doesn’t exist

(time spent automating repetitive tasks pays off in the long run!)

Think about all the things from this class, which do you need to do and to what extent? Different developers may need to apply process in different ways (junior/senior)

Page 8: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Managing Developers

• Know what they are doing, but don’t micro-manage • Help when problems occur

Let people figure things out Don’t let them struggle and jeopardize the schedule

• They estimate tasks - you then hold them to those estimates

• Ensure they are working on the customer’s priorities

• Make them unit test and write documentation required of them

• Recognize differences in style -- if you don’t know, ASK THEM!

Page 9: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Managing Testers

• How do we manage testers?

• A More closely than developers• B Less closely since their job is easier• C The same• D It depends how they perceive their

job

Page 10: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Managing Testers

• Same as developers, but additionally…• During a testing cycle make sure they are the

priority --- if they need help from a developer, they should get it

• Make sure everyone understands testers job is to make the software better by finding bugs -- we’re all on the same team

• If the development schedule slips, do NOT reduce the testing time to compensate

Page 11: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

How do you motivate people?

• A Buy pizza• B Give them a promotion• C Let them leave early some day• D All of the above• E Who cares… I’m the boss

Page 12: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Managing People

• We’re not parents -- “because I said so” is not acceptable

• All of us are smarter than any of us• Have fun -- buy food!

If people are working late into the night a couple times, have the company buy dinner for them. YOU make it happen!

At the end of a successful release cycle, have the company take the team to lunch

Take a 2 hour bowling lunch every 4-6 months Other ideas????

• Take the time needed to work with them -- you always have time for your people!

Page 13: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Manage Requirements and Change Requests

• Always do what the customer wants or explain why they don’t really want it. Say “yes” to the customer!

• Don’t say “yes” to the customer and pay for that by killing your team add time to the schedule Remove other features

• If your boss does this, require them to provide the resources you need or go back and explain their mistake to the customer

• Use an automated bug tracking/feature request system (Bugzilla, Gnats, PVCS Tracker, many others…)

Page 14: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Behind Schedule

• Your system is behind schedule. You are working on it and your team says you will be able to catch up and deliver on schedule. What do you tell your boss?

• A Nothing… we’ll hit the deadline• B Tell him all is good• C Tell her that we are behind schedule, but

will catch up• D Get him drunk, then B

Page 15: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Provide Status Reports

• Provide realistic information to your boss What are the current risks How is the team feeling Are we on schedule

• Become a great demo-er of your system

Your job is technical and political - you must always be able to sell your productYour job is technical and political - you must always be able to sell your product

Page 16: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Guiding the architecture

• You do NOT need to create the entire architecture… and you shouldn’t

• You should work with your team to design the right system

• You should challenge your team’s design if you don’t agree with it. Make them justify it until you’re convinced

Page 17: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Other tasks

• Be an expert on the system Test it Be able to demo it completely Clearly understand all features

• Setup a periodic meeting for the team to discuss how we can make this project better

• Don’t be afraid to try new things• If you believe in something, don’t be afraid

to force it on your team for a short amount of time (eat your vegetables!)

Page 18: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Other tasks

• Change slowly (not all at once)• Provide feedback to the team that you hear

Customer loves feature X Customer doesn’t seem so happy today about

us removing feature Y

• Give credit wherever you can Glad you liked feature X, I’ll let Robin know

because she developed it.

• Be honest -- we screwed up… how do we fix it?

Page 19: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Summary

• Monday Update the schedule Determine what people are working on this week

• Tuesday Think about risks Look through change requests to see if anything

is now higher/lower than it should be

• Wednesday Build the latest system Spend some time testing it/using it

Page 20: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Summary

• Thursday See if developers seem to be on schedule Anyone needing help?

• Friday Do all the tasks you were supposed to do Mon-

Thurs, but really you were to busy to do any of them!

• Saturday Drink

• Sunday Sleep

Page 21: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Summary

Everything on the team is your responsibility.

Success or failure is all up to you!

Everything on the team is your responsibility.

Success or failure is all up to you!

Page 22: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Why be a leader?

• Monster.com open jobs: lead engineer = 79 technical lead = 470 s/w architect = 16

Posted in the last three days! (Mar 2, 2010)Posted in the last three days! (Mar 2, 2010)

Washington DC•4•20•2

Washington DC•4•20•2

Page 23: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Afterthoughts

• Wait, wait, wait… I’m not going to manage yet…

What should I do as a software engineer?

Page 24: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Problems on the team

• If you are a software engineer and ask your boss for help, but he doesn’t have time to talk to you or help. What do you do?

• A Talk to your co-workers for help• B Talk to boss’s boss for help• C Get a new boss• D Work harder to solve the problem

yourself

Page 25: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Software Engineers

• If they don’t ask, tell the boss when you will get a task done

• If they don’t ask, tell the boss what you are working on this week

• If they don’t ask, tell the boss when you’re having problems and need help

• If they don’t help --- get a new boss!

Page 26: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

I’m great.. but no promotion!

• You believe you’re a great leader, but have not had the opportunity to lead. You want a promotion, how do you get it?

• A Tell the boss how good a leader you are• B Work harder in your current role and do

an exceptional job• C Take classes and show your boss your

resume• D Start your own company

Page 27: Yeah but.. What do I do? Software Leadership Dan Fleck 2010

Getting the promotion…

• Don’t say “I’m a really good leader, they should promote me into that

role where I’ll shine!”

• If you’re not “shining” in a smaller role, there is no incentive to promote you to a larger role.

• Shining is : getting work done on schedule, working well with others, being helpful to others, taking on more tasks, getting to work on time (sober), not complaining!