Decluttering your Software Development Process Michael Smith [email protected] TeraTech, Inc.

24
Decluttering your Software Decluttering your Software Development Process Development Process Michael Smith [email protected] TeraTech, Inc.

Transcript of Decluttering your Software Development Process Michael Smith [email protected] TeraTech, Inc.

Page 1: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

Decluttering your Software Decluttering your Software Development ProcessDevelopment Process

Decluttering your Software Decluttering your Software Development ProcessDevelopment Process

Michael [email protected]

TeraTech, Inc.

Page 2: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

2

Speaker InformationSpeaker InformationSpeaker InformationSpeaker Information

Michael Smith

[email protected] Founder and CEO TeraTech (CF and Flex

web application development, server tuning load testing, security audits)

Founder of CFUNITED conference (in 11th year)

Programming for 30 years

Page 3: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

3

Why Declutter?Why Declutter?Why Declutter?Why Declutter?

Less stress More energy More productive Easier to think clearly Better focus Fewer bugs, easier to spot, easier to fix Reduced maintenance time 80/20 results Happier developers, clients and managers

Page 4: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

4

80/20 Principle80/20 Principle80/20 Principle80/20 Principle

Page 5: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

5

What to declutterWhat to declutterWhat to declutterWhat to declutter

Code Design Database Communications Clients Environment

Page 6: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

6

What is clutter?What is clutter?What is clutter?What is clutter?

Distractions Unused stuff Stuff you don’t love to see around Stuff not in its place

Stuff without a place!

Page 7: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

7

Things that distractThings that distractThings that distractThings that distract

Phone calls Incomplete tasks Email Bugs Time pressure Poor organization

Page 8: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

8

How to declutterHow to declutterHow to declutterHow to declutter

Recognize you have clutter Get support Value - Do I love it or use? Have a system Have a place for everything Habit - Close open cycles Be Smart lazy - think less about non essential

items Let go “someday it will be useful”

Page 9: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

9

What is code clutter?What is code clutter?What is code clutter?What is code clutter?

Not usable or used code Out of date code not elegant (easy to read, understand and

maintain) Out of date comments Hard to remember or spell variable names Not following coding standards Unfinished tasks Inconsistent

Page 10: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

10

Decluttering your codeDecluttering your codeDecluttering your codeDecluttering your code

Use a readable coding style and format Prune unnecessary or out of date comments Simplify unclear code Refactor duplicate code Use source control Remove unused files from directories

Page 11: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

11

Decluttering Slow code and crashing serversDecluttering Slow code and crashing serversDecluttering Slow code and crashing serversDecluttering Slow code and crashing servers

Profile code and only optimize the slow stuff Load test code before releasing Keep error logs clear

Page 12: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

12

Better NamingBetter NamingBetter NamingBetter Naming

For directories, files, modules, variables Rename difficult to remember variable names Naming of modules easy to understand

without opening file Naming for what is done, not how it is

implemented Follow a naming system

Page 13: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

13

Decluttering bugsDecluttering bugsDecluttering bugsDecluttering bugs

Research google, blogs, community, open source

Isolate bugs to a few lines Keeping code to one screen full – code

collapse KISS Take a break, nap, walk, shower

Page 14: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

14

What is design clutter?What is design clutter?What is design clutter?What is design clutter?

Too many features - loose sight of the big picture

Scope out of control Screens cluttered

Page 15: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

15

Decluttering your designDecluttering your designDecluttering your designDecluttering your design

Clear shared vision Change control Usability

Page 16: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

16

What is database clutter?What is database clutter?What is database clutter?What is database clutter?

Unused tables, fields, data, SPs Cryptic names Duplicate data Unmanaged log files Slow queries

Page 17: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

17

Decluttering your databaseDecluttering your databaseDecluttering your databaseDecluttering your database

Better names Remove unused tables, fields and SPs Normalize to reduce duplicate data Use triggers to update duplicate data you

need to keep. Create maintenance plans Review index use

Page 18: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

18

What is client clutter?What is client clutter?What is client clutter?What is client clutter?

Poor communication Unclear Emotionally abusive Understand the software development

process

Page 19: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

19

Decluttering clientsDecluttering clientsDecluttering clientsDecluttering clients

Score client profitability and fit Let go the bottom 10% Train the other 90%

Set clear expectations

Page 20: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

20

Personal declutteringPersonal declutteringPersonal declutteringPersonal decluttering

What is your Personal best Time of day? Write down thoughts instead of worrying about

them in background (Limited amount of items in human mind at

one time) Single tasking Plan short term objectives

Page 21: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

21

Decluttering communicationDecluttering communicationDecluttering communicationDecluttering communication

Incomplete communication Other programmers mean extra

communication and coordination Coworkers who understand your thought

process – shared vision and metaphors of project

Written vision Resolve issue by phone or F2F

Document resolution in email

Page 22: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

22

Decluttering your environmentDecluttering your environmentDecluttering your environmentDecluttering your environment

Desk Inbox, filing system

Distractions Phone, DND, work from home

Email Turn off email notification Empty inbox – GTD

Computer – software, fixes

Page 23: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

23

ResourcesResourcesResourcesResources

“The 80 / 20 Principle” by Richard Koch “The 4-Hour Workweek” by Timothy Ferriss “The E-Myth Revisited” by Michael E. Gerber “Getting Things Done” by David Allen “Enough Already” by Peter Walsh www.43folders.com/ http://www.1000ventures.com/business_guid

e/crosscuttings/80-20principle.html

Page 24: Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.

24

QuestionsQuestionsQuestionsQuestions

Ask me now or email or phone me later

[email protected]

301-424-3903 x110