Decluttering your Software Development Process Michael Smith [email protected] TeraTech, Inc.
-
Upload
phyllis-white -
Category
Documents
-
view
219 -
download
0
Transcript of Decluttering your Software Development Process Michael Smith [email protected] 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.
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
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
4
80/20 Principle80/20 Principle80/20 Principle80/20 Principle
5
What to declutterWhat to declutterWhat to declutterWhat to declutter
Code Design Database Communications Clients Environment
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!
7
Things that distractThings that distractThings that distractThings that distract
Phone calls Incomplete tasks Email Bugs Time pressure Poor organization
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”
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
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
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
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
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
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
15
Decluttering your designDecluttering your designDecluttering your designDecluttering your design
Clear shared vision Change control Usability
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
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
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
19
Decluttering clientsDecluttering clientsDecluttering clientsDecluttering clients
Score client profitability and fit Let go the bottom 10% Train the other 90%
Set clear expectations
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
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
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
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
24
QuestionsQuestionsQuestionsQuestions
Ask me now or email or phone me later
301-424-3903 x110