Top Banner
Transforming Chaos to Clarity Making Your Software Development Hum Ron Lichty, Software Engineering Mgmt [email protected] SofTech August 26, 2009 Mark Ginnebaugh, President softech.org
19
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Making Software Development Hum

Transforming Chaos to ClarityMaking Your Software Development Hum

Ron Lichty, Software Engineering Mgmt [email protected]

SofTechAugust 26, 2009

Mark Ginnebaugh, Presidentsoftech.org

Page 2: Making Software Development Hum

Ron Lichty,Software Engineering Management

SOFTWEST

Page 3: Making Software Development Hum

Poll: Software Developmentin Disarray?

• Who has seen chaos in a product group?• Who has seen chaos in your current group?• Who feels like your devt is running rough?• Suffering from organizational knots?• Anyone have a development organization

that doesn't feel chaotic right now?!

Page 4: Making Software Development Hum

Define Success

• What are you trying to accomplish• How do you know you're not• How will you know when you get there• Assess what’s working• Assess the issues and the symptoms

– Every organization is unique

Page 5: Making Software Development Hum

Chaos Isn’t All Bad

• Don’t eliminate it entirely• Going offroad may seem chaotic

– Innovation can spring from chaos• Look for the pings and the misfires

– Tune the engine, not the route– Make your product engine hum

• whether you’re cruising the highway or off-road

Page 6: Making Software Development Hum

Systems to Diagnose• Requirements• Roadmaps and Strategy• Motivation and Urgency• Your Team• Coaching and Mentoring Your Managers• Project Planning• Technical Debt• Communication• Development Process

Page 7: Making Software Development Hum

Optimize YourRequirements Process

• GIGO• Programmers:

– who has received an exceptional set of rqmts?– what was the programming experience like?– how did it differ from the usual?– ever gotten to delivery only to find out there was

another db field desired?• How good are your requirements?• Do your requirements change?

Page 8: Making Software Development Hum

How’s Your Roadmap?

• Why do you need a roadmap?• In an Agile world, what’s it look like?• How do you create one?• What do you do with it?• Why do you need a roadmap?

Page 9: Making Software Development Hum

Develop Motivation andCommunicate Urgency

• How is developer motivation measured?– Remember it’s a marathon, not a sprint

• What motivates programmers?– Are you communicating your reality?– Are you communicating their impact?– Are you enabling them to do their best work?

Page 10: Making Software Development Hum

Assess Your Team

• Most problems are not people– but some are– Occasional problem employees

• You must act• Marty Brounstein, Handling the Problem Employee

– Employees who need to be mentored into roles• People problems start with bad hiring

– One bad hire can quickly destroy a well humming team

Page 11: Making Software Development Hum

Get Coaching/Mentoringfor Your Engineering Managers

• How did we become engineering managers?• What qualities differentiate:

– Engineers / Managers / Directors / VPs Eng?• How do you grow the qualities you need?

Page 12: Making Software Development Hum

Smart Project Planning

• Deliver demonstrable progress frequently• Get the risky stuff done first

– the UI should always be high on the risk list• Deliver the highest customer value first• Be first / be ready to integrate / be early• Don’t over-engineer

Page 13: Making Software Development Hum

Get Out of Technical Debt• What’s “technical debt”?

– Shabby, rundown areas of code– Untested code / lack of automated tests– Undocumented code– Brittle design– Difficult to maintain, change, extend

• Expensive to debug

• Result: interest accrues• Solution?

– Pay down debt: Revisit, refactor, write tests, do TDD

Page 14: Making Software Development Hum

Fix Interdepartmental Communication

• Build trust relationships• Product Mgmt & Eng. Mgmt: collaboration• Establish processes for your partners to fit• Communicate, communicate, communicate• Never succumb to “them vs. us”• Avoid the “blame game”

Page 15: Making Software Development Hum

Optimize Process

• Just about any process is better than noprocess. – Mark Ginnebaugh– The exception: process for process’ sake

• I’m a fan of– “Just-Enough Process”– Agile– baby steps

Page 16: Making Software Development Hum

Systems to Diagnose• Requirements• Roadmaps and Strategy• Motivation and Urgency• Your Team• Coaching and Mentoring Your Managers• Project Planning• Technical Debt• Communication• Development Process

Page 17: Making Software Development Hum

Other Systems to Diagnosis

• There are lots of other systems– Meetings– Quality

• Development’s quality• QA• TDD

– UI– Risk– ...and a long list more

Page 18: Making Software Development Hum

The Bottom Line

• Chaos is common• It’s really a series of challenges• It’s a series of improvement milestones• Each of them can be transformed

– Likely each new hum will reveal the next ping• Like peeling an onion or climbing a mountain

Page 19: Making Software Development Hum

Q&A

Ron [email protected]