Codealike tracks developers' work patterns to measure productivity

If you wonder what your developers do all day, the Codealike extension provides some clues.

Figure A: Initial Codealike screen presented in Visual Studio.
Image: Tony Patton

Regardless of the profession, measuring and boosting productivity is always a goal. Developers are no different, and there are plenty of utilities and tools available that promise to deliver productivity gains -- a good example is Chocolatey for installing and updating software.

The details of a developer's day are a different subject: How do finished products evolve from all of that coding and testing? Codealike allows you to take a closer look at what developers are doing when working in their favorite code editor.

How is developer productivity measured?

Before diving into what Codealike offers, let's take a quick look at how productivity may be defined or measured for developers. A common approach is to use metrics such as number of lines of code generated or debugged. At first glance, this may seem like a good approach, but the number can be misleading (after all, lots of code gets deleted) as well as easily gamed. Developers do love a challenge, so gaming the system to make them look better or more productive is definitely an interesting challenge.

Other measuring points I have seen are the number of bugs created or fixed.

There are so many variables involved with developing applications that measuring any of them and using them to measure productivity is difficult. After all, it is rare that multiple team members work on similar tasks, so how do you compare them? Agile methodologies using sprints for feature development offer a way to observe developer productivity over defined intervals (sprint length). The best way to measure productivity is to set goals and see if they are met.

The finished product or deliverable demonstrates effectiveness. My manager at my first job described coding as black magic, as he often wondered what developers did all day. Codealike provides some clues.

Codealike setup and usage

Codealike is an extension available for Visual Studio (versions 2010, 2012 and 2013) and Eclipse. For this article, I used the Visual Studio 2013 plugin. In addition, you have to set up an account on the Codealike website.

I was a bit confused after installing the Codealike plugin in my Visual Studio Ultimate 2013 environment as there was no clear indication it had been installed, and the information on the Codealike site was not clear. After fumbling around, I finally loaded a project and was surprised with the initial Codealike window (Figure A).

Codealike is configured when you open your first solution in Visual Studio. Once closed, you are guided through the screens shown in Figure B (choose Register or Sign In) and Figure C (Sign In) -- the final screen links your environment to your online account so data is collected.

Figure B

Image: Tony Patton

Create an account or sign in with an existing account.

Figure C

Image: Tony Patton

Enter Codealike credentials to link to Visual Studio.

Once you link your environment to your Codealike account, data collection begins. Your Codealike account settings can be accessed by logging in to the website or by right-clicking a solution and choosing the Codealike Panel (Figure D). Once initialized, the data collection takes approximately 15 minutes to show results. The results are accessed via the links on the left side of the Codealike site.

As an example, Figure E shows the code tree report for my usage where I worked with Node.js and Azure Webjob solutions. From Figure F, you can see how many solutions and files were opened. In addition, it illustrates the time spent on activities like building, coding, and when a developer is working outside the IDE (which means activity in the IDE is idle). You have control of how Codealike collects data -- Figure G shows the Settings screen accessed via the wrench shown in the top right of Figure F.

You can continuously collect data (or disable it entirely), as well as be prompted every time a solution is opened and at that time choose to collect data. The timeline report breaks down your time per tasks such as building the solution and so forth. The behavior report is interesting, as it is supposed to show the time of day when your focus is the best, but I will have to collect data for a while for it to possibly be useful. The code tree report will show you which language is used the most, which is probably self-evident, but it may be revealing to some developers.

Figure D

Image: Tony Patton

The Codealike interface available from the Visual Studio solution.

Figure E

Image: Tony Patton

Accessing your Codealike account from the Visual Studio solution.

Figure F

Image: Tony Patton

Timeline for my work in Visual Studio.

Figure G

Image: Tony Patton

Codealike settings allow you to control the extension.

Interesting visualization

Codealike provides lots of details on what a developer may be doing on a daily basis; however, no developer spends every minute working in their editor, so the "Outside the IDE" numbers may show they are not coding, but it doesn't indicate they were not productive.

The data gathered and presented by Codealike is interesting, but as a person that leads a team I have a hard time finding it useful beyond being a novelty. It seems more useful for the individual developer; it can be used as a way to compete with fellow developers, but then again that can lead to gaming to artificially manipulate the data. One area where I can see the application being useful is for contractor billing, because it provides data on the amount of time spent on specific projects.

Take Codealike for a spin to see how it might be useful to your organization.

By Tony Patton

Tony Patton has worn many hats over his 15+ years in the IT industry while witnessing many technologies come and go. He currently focuses on .NET and Web Development while trying to grasp the many facets of supporting such technologies in a productio...