240 likes | 422 Views
Decluttering your Software Development Process. Michael Smith michael@teratech.com TeraTech, Inc. Speaker Information. Michael Smith michael@teratech.com Founder and CEO TeraTech (CF and Flex web application development, server tuning load testing, security audits)
E N D
Decluttering your Software Development Process Michael Smith michael@teratech.com TeraTech, Inc.
Speaker Information Michael Smith michael@teratech.com • 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
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
What to declutter • Code • Design • Database • Communications • Clients • Environment
What is clutter? • Distractions • Unused stuff • Stuff you don’t love to see around • Stuff not in its place • Stuff without a place!
Things that distract • Phone calls • Incomplete tasks • Email • Bugs • Time pressure • Poor organization
How 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”
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
Decluttering 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
Decluttering Slow code and crashing servers • Profile code and only optimize the slow stuff • Load test code before releasing • Keep error logs clear
Better 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
Decluttering 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
What is design clutter? • Too many features - loose sight of the big picture • Scope out of control • Screens cluttered
Decluttering your design • Clear shared vision • Change control • Usability
What is database clutter? • Unused tables, fields, data, SPs • Cryptic names • Duplicate data • Unmanaged log files • Slow queries
Decluttering 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
What is client clutter? • Poor communication • Unclear • Emotionally abusive • Understand the software development process
Decluttering clients • Score client profitability and fit • Let go the bottom 10% • Train the other 90% • Set clear expectations
Personal 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
Decluttering 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
Decluttering your environment • Desk • Inbox, filing system • Distractions • Phone, DND, work from home • Email • Turn off email notification • Empty inbox – GTD • Computer – software, fixes
Resources • “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_guide/crosscuttings/80-20principle.html
Questions • Ask me now or email or phone me later michael@teratech.com 301-424-3903 x110