programmer productivity
TRANSCRIPT
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 1/18
Programmer Productivity
By Japneet Singh
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 2/18
Productivity
• Defined as amount of useful workperformed over time
•Productivity is relative
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 3/18
Problems related to Productivity
• Due to improvement in computer interfaceto make it easy to use, developersefficiency has reduced.
• The stuff which makes computers easier to use (like GUI) also acts as a hindranceto developers trying to get bestperformance out of computers.
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 4/18
Principles of Productivity
• Acceleration• Focus
• Automation• Canonicality
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 5/18
Acceleration
• Becoming more productive by speedingthings up.
•The less you interact with your computer,the faster you can go.
• Concentrate on essence, not on ceremony
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 6/18
Acceleration – Launching
• Launching Pad : Usefulness of applicationlist is inversally proportional to its length – Launchers
• Example : Launchy
– Create a Windows launching pad
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 7/18
Acceleration – Accelerators
• Accelerators : Typing is faster than mousing – Operating System Accelerators
• Windows address bar • Windows shortcuts
– Clipboard(s) : Context switching eats time• For clipboarding in batches use clipboard stacks.• Example : CLCL
– Command history
• F8 for matching executed command search• F7 for executed command list
– Command prompt Explorer bar – “Open Command Window Here” Power Toy
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 8/18
Acceleration – Accelerators contd.
• Development Accelerators : Coding is text based activity. Prefer keyboard over mouse – Full screen mode in Visual Studio :
Alt+Shift+Enter – Visual Studio Keyboard shortcuts : Learn
keyboard shortcuts in context, not by reading long lists
– Code snippets• Macro Recorders
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 9/18
Focus
• Improve productivity by reducing clutter of environment and avoiding needless distractions
• The higher the level of concentration, thedenser the ideas
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 10/18
Focus – Block distractions
• Block audible distractions in your environment by listening to music usinghead phones
• Block visual distractions like E-mailnotifications, needless notifications likeballoon tips (using Tweak UI Power Toy).
• “Black out” the background :JediConcentrate• Create Quite Time
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 11/18
Focus - Search
• The bigger the haystack, the harder it is tofind the needle
• Use Search software to search filesystem – Example : Google Desktop Search
• Use regular expression searching featureof Visual Studio
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 12/18
Focus – File System Explorer
• Use rooted views – explorer /e,/root,[DirPath]
•Explorer alternatives• Use project-based shortcuts
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 13/18
Focus – Desktop
• Segregate your Workspace with VirtualDesktops
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 14/18
Automation
• Making your computer do more work for you
• Computers are designed to performsimple repetitive tasks over and over reallyfast. But, people are performing simple,repetitive tasks by hand on computers.
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 15/18
Automation
• Batch Files• Scripting
• Windows Power Shell• Use Selenium to walk web pages
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 16/18
To automate or not to automate
• Justifying automation is about return oninvestment and risk mitigation
• Ask following questions: – Will it save time in long run? – Is it prone to errors and therefore will take
time to bring it to stable state?
– Does it destroy focus? – What is the hazard of doing it wrong?• Don’t shave yaks
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 17/18
Canonicality
• Canonicality refers to practice of removingduplication.
• Remove duplication of information andcreate single source of information
• A canonical representation refers tosimplest form without loss of information.
8/14/2019 Programmer Productivity
http://slidepdf.com/reader/full/programmer-productivity 18/18
Focus
• Version Control - Everything required tobuild project should reside in VersionControl (including binaries).
• Build machine – Canonical build machineshould not include development tools youuse to create the project, only the librariesand other frameworks needed to build theapplication.