Be Lazy and Get More Done
One of the secrets of insanely productive development teams is automation... anything they can get the computer to do for them, they automate. Some people call this lazy... I call it very smart.
You can find some great examples of automation on Mike Clark's (clarkware.com) Pragmatic Automation blog (PragmaticAutomation.com). I love the lava lamp status monitor on your build machine... it's a great example of letting a machine take care of the boring work (building the product and re-running repetitive tests) while you move on with the fun stuff... building great software! After all, why would you watch the tests run on five platforms every time you touch the code? I've got better things to do with my day.
Another area that begs for automation is time tracking. Do you know exactly what you did today? How much time did you spend in Eclipse or NetBeans as opposed to reading Slashdot and Digg?
Most of us have no idea exactly where we spend our days. Here's a hint for you... you don't spend nearly as much time editing code as you think you do! (Disagree? Start measuring and prove me wrong.) And here's another "obvious" observation... with no solid idea of how we spend our days, we have trouble estimating and scheduling those days. It's no wonder shipping software on time is so difficult.
Face it... developers are optimist when it comes to scheduling and how much they can get done. And, even worse, many development managers don't have technical backgrounds... they have little (if any) idea what their teams are doing. Why do we expect developers and managers to get any better at estimating time when they can't accurately measure what's happening?
Out of your team's last five ship events, how many were on time? Any? Most teams have to say "None"... but they're sure they'll meet the next deadline! They just don't know how.
A huge benefit of 6th Sense Analytics software is that we take the developer out of the reporting loop... we automate the collection of time and make it easy to see what's happening. (more info) 6th Sense sensors integrate with tools like Jira and Subversion (as well as a variety of IDEs). We track code commits back to a specific issue. Can you do that? Tracking actual time instead of "guestimated" time is a huge step forward.
How well could your schedule your next iteration if you could measure the time spent on every feature? If you could easily isolate every difference in time estimated versus time spent? What if you could generate an up-to-date burn down chart included everyone's time on every issue? Something like this:

This won't make you a perfect estimator. It won't magically enable you to peer into the future and see problems. But it will give you a chance to understand what's going on now and what went on last week. We can help you understand who got stuck and who made strides. You'll understand which problems were estimated well and which weren't. It's an amazing way to gain insight into how your team is working.
Does this replace a Scrum daily meeting? No way! Does it eliminate pair programming or the peer code review. Never. This improves your ability to understand what your team is doing, but keep your existing communication channels... this is just another tool an well-stocked tool box. (Remember, the Agile Manifesto calls for Individuals and interactions over processes and tools, not instead of them.)
Bottom line: measuring time is boring and humans don't do it accurately. I don't like filling out time cards and status reports. It's no more fun that running a build and watching tests run for 45 minutes.. or worse, running the same tests by hand. Sure, you could do it. But why would you?
There are times you'll need to watch tests run. Sometimes you'll have to write status reports. But let's see how much work we can shift to the computers, where it belongs.
Previous Post:
Software Metrics Don’t Kill Projects, Moronic Managers Kill Projects
Next Post:
6th Sense Analytics Now Tracks Entire Software Development Lifecycle for Microsoft Windows Users

