Andy Boyle is principal specialist and IDE concept owner at Nokia.
This article is about lessons my colleagues and I have learned in deploying software development and ALM tools, and how those lessons are being applied in deploying a task-focused interface and backlog integration to Nokia engineers. As you'll see, we learned that tool environments in technology companies requires a much stronger emphasis on treating engineers as customers than what might be the case with traditional ALM deployments. This article is not intended to be a comprehensive guide to deploying software in technology companies, but rather it is a collection of tips that we believe would benefit others undertaking similar deployments.
The key driver for the Tasktop Deployment Project at Nokia is engineer productivity, with the specific objective of leveraging the opportunity of providing engineers with the (Carbide Eclipse-based IDE and Tasktop task-focus interface. Tasktop is the enterprise product built on the open-source Eclipse Mylyn framework. The goal of the Tasktop Deployment Project is to make it easier for engineers to switch between programming tasks (from stories on their Scrum product backlog) by remembering which artefacts an engineer works with in relation to a task, and by automatically filtering the information visible in the IDE to show only the code relevant to that task. For an engineer returning to a task, the task-focused interface answers the question: "Now where was I?"
In terms of measuring the benefit that this technology brings, consider how much time a programmer spends searching within an IDE for programming artefacts versus actually editing them. Past studies of the task-focused interface have shown a statistically significant improvement of this ratio.
The Tasktop Deployment Project
The project to provide Carbide with Tasktop/Mylyn capability has two components:
- A development component undertaken by Tasktop Technologies which involves integrating the Carbide IDE and Tasktop.
- Creating Tasktop connectors to Danube's ScrumWorks Pro Agile change-management system and the SCM system used by Nokia engineers.
Tasktop's function here is to integrate the various development and ALM tools with the IDE, and to layer the productivity-enhancing task-focused interface on top of that integration.
The deployment process will take the product of Tasktop Technologies development component and ensure that it maximizes adoption of the software and its long term adoption within Nokia. We decided to use the Agile Scrum process to manage both development and deployment, since this allows us to quickly respond to the lessons we learn along the way. The deployment is managed in two week "sprints." Figure 2 outlines the deployment plan. At this writing we are in the midst of sprint 5 of 12 development sprints.
The risks and opportunities faced by a project is dependent upon the environment within which a tool or system is being deployed. Consider the deployment of systems that support a key development process. The deployment will be endorsed by management, users will have to follow the process, and there will be only one tool or system that supports the new process: Users are compelled to use the system. At the other end of the spectrum are tool deployments, where the continued running of a production process is not dependent upon the tool. In this case, there are often alternative incumbent tools or other open source options. Also, the environment will often allow users a degree of latitude in the tools they use. In this environment you are "selling in a free market"and your success will depend upon how well you focus on the needs of the end user. This is the sort of "change" environment where the tactics discussed in the rest of this article come in handy