You are on page 1of 9

Developer Tools Proposal

Solution to significantly improve developer tools and management insight into development tasks
Nathan W. Lindstrom

Table of Contents
Executive Overview ................................................................................................................................. 3 Current Challenges .................................................................................................................................. 4 Solutions Proposal ................................................................................................................................... 5 Project Timelines and Costs ..................................................................................................................... 6 Projected Cost Savings ............................................................................................................................. 7 Alternatives Examined ............................................................................................................................. 8 Appendix: Glossary of Terms.................................................................................................................... 9

Executive Overview
As a member of the management team, you are no doubt aware of the importance of keeping track of code changes, documentation, and project status. Those three tend to go hand-in-hand, as each influences the other: updates to the source code contribute to the project moving forward; as the project reaches each successive milestone the documentation must be updated. And finally, as the documentation is executed upon, bugs are uncovered which impact both the code and project deadlines. This proposal was written to address the bug tracking, documentation, and code change management needs of our company. With our continued success and growth, we have outgrown our current systems and are in need of a more integrated and scalable solution. Through leveraging the strengths of the solution proposed herein, we will be able to preserve our existing data, quickly bring our users up to speed on the new system, and provide a superior experience to both management and developers. In short, the solution we are proposing will fully address the needs and concerns of individual contributors, managers, and executives while empowering our company to reach its business goals.

Current Challenges
y The source code repository doesn t communicate with bug tracking. When a source code change is committed to the repository, there is no way to know what bug or bugs that particular change relates to unless the developer remembers to list them in the commit comment. What s worse is that when viewing a bug there is no way to see the related code commits. The bug tracking system is an island unto itself. The current bug tracking system, while adequate for the needs of a very small organization, has not been able to grow in response to our present challenges. With greater success comes the need for greater bug organization, and the current system lacks many key abilities, including linking one bug to another, custom dashboards, and integration with a collaborative documentation solution. Critical knowledge is going undocumented. It is vital in a high-performing development organization to capture critical developer knowledge in a community-based environment where that knowledge may be both disseminated to interested parties and added to and updated by fellow experts. The current mechanism for capturing documentation is woefully inadequate for this task, and by failing to be user-friendly, standards-compliant, and by not integrating with the bug tracking system it is a near certainty that important know-how is being lost. Management insight is hampered by the current system. It virtually impossible to extract meaningful metrics and other key performance indicators (KPIs) from the current bug tracking system. Worse yet, thanks to the lack of any dashboard capability in the current system, it is an incredibly manual and time-consuming task to monitor the projects and assignments of each individual contributor.

Solutions Proposal
Through leveraging the unique solutions afforded by the JIRA, Confluence, and FishEye products from Atlassian, we can accomplish the following improvements within a very short period of time: y Fully integrate source code change tracking with bug tracking. FishEye allows an unprecedented level of visibility into the source code repository system, allowing management and developers alike to easily view, track, and report on code changes. Even better, FishEye integrates tracking individual changes into JIRA, allowing each individual bug to provide a comprehensive list of associated code changes. Bug tracking integrates with the documentation system, and vice versa. The JIRA bug tracking system can easily reference documents contained within the Confluence wiki, and pages within the wiki can easily link to JIRA bugs. This permits critical knowledge that is uncovered or created while remediating a bug to be easily and effectively captured for future use within Confluence. And thanks to FishEye source control integration, documentation can reference specific code changes, and vice versa. Industry standard and industry leading wiki documentation. As has been previously stated, it is vital in a high-performing development organization to capture critical developer knowledge in a community-based environment where that knowledge may be both disseminated to interested parties and added to and updated by fellow experts. By leveraging Confluence for this purpose, individual contributors are encouraged to capture their knowledge within a standard framework. Standardized and easily-understood syntax, superior search capabilities, role and access management, and integration with other aspects of the development system all work together to achieve the creation and maintenance of a world-class knowledge repository. This in turn helps to avoid the creation of silos of knowledge among the development team. Metrics and KPIs are at managements fingertips. JIRA provides a powerful range of dashboards and customizable views into the daily happenings of the development team. Both JIRA and Confluence offers change tracking, RSS feeds, and even daily email reports. This grants management the ability to obtain, present, and leverage all the information that is vital for maintaining and understanding performance metrics. Thanks to the superior reporting capabilities inherent in JIRA and Confluence, success can now both be defined and measured.

Project Timelines and Costs


ID Task Name T 1 2 3 4 5 6 7 8 9 10 12 13 15 16 Provision servers Purchase three 1U rackmount servers Rack, cable, and configure three 1U rackmount servers Provision software Purchase licenses for JIRA, Confluence, and FishEye Install Confluence on a 1U rackmount server Install JIRA on a 1U rackmount server Install FishEye on existing Subversion server Configure MySQL databases on a 1U rackmount server Configure and integrate JIRA, Confluence, and FishEye Migrate data from legacy documentation system to Confluence Migrate data from legacy bug system to JIRA Provide user training on JIRA and FishEye Provide user training on Confluence 1/14 Jan 3, '10 S M W F Jan 10, '10 S T T Jan 17, S M

11 Migrate existing data

14 Train users

17 Project complete

Figure 1: Project Gantt chart. Shows the expected order and duration of the project tasks, giving an approximate project timeframe of fourteen days from inception to completion. Note that this excludes any delays arising from the use of vendors and data center remote hands services.

Item Management and labor Equipment purchase* Software license purchase Materials Total costs * CapEx

Cost $85,000.00 $3,000.00 $10,000.00 $250.00 $98,250.00

Figure 2: Project costs spreadsheet. Shows the estimated costs involved in implementing this project. Management and labor costs are approximated at time. The expected equipment depreciation lifetime is three years.

Projected Cost Savings


After training, it is projected that using JIRA, Confluence, and FishEye together will save each of our developers 30 minutes of time per day that would otherwise be spent trying to get critical data out of our currently-employed bug tracking system. Furthermore, it is expected that the solution detailed in this proposal will save each of our project managers at least one hour per day. y y At present staffing levels, this project will result in a daily time savings of 8 hours. Multiplied by the average cost of developers and project managers, this comes to an approximate saving per month of $10,000. Given the total implementation cost of $98,250, this installation will pay for itself in less than 10 months. As we grow and hire additional engineering resources, the cost savings will increase while the implementation cost remains the same; for example, if we were to double our present development staffing level the installation of JIRA, Confluence, and FishEye would pay for itself in less than 5 months!

Alternatives Examined
As potential alternatives to JIRA, Confluence, and FishEye, several competing products were examined. Here are the results of those tests, and why at the end JIRA, Confluence, and FishEye remain the best choice: y RT Request Tracker, or RT, is an Open Source bug tracking solution. It lacks even the most basic customization features that we require. It also does not offer any documentation storage or source code repository integration functionality, nor does it natively integrate with any wiki system. Bugzilla Written by developers and for developers, Bugzilla has fallen steadily behind the curve over the years in terms of features and ease-of-use. Training users on the idiosyncrasies of Bugzilla would prove a daunting task, and its complete lack of integration with our existing systems would add dramatically to the perception of Bugzilla being an old and out-of-date product. Trac Unlike many other Open Source bug tracking solutions, Trac actually contains an integrated wiki and is able to partially integrate with an existing source code control system. Unfortunately, the interface is far from polished, and customization is very limited. Search functionality is only partially implemented, and does not work at all where source code is concerned. This, among other things, is a deal breaker for us. Remedy While Remedy from BMC is one of the leading commercial solutions for bug tracking, it costs approximately 800% more than JIRA, Confluence, and FishEye combined. Once BMC s other products for documentation management and source code control are added to it, Remedy reaches a price point that would virtually bankrupt us. And that is before consulting time and user training are priced in. Mantis Perhaps of all the JIRA competitors we reviewed, Mantis proved the most feature-incomplete. Its ability to search for past bugs is so limited as to be worthless, and it lacks even the most basic integration features we came to expect of products in its category. It does not integrate with any of our existing systems, nor does it provide a documentation repository.

Appendix: Glossary of Terms


y Apache Tomcat A popular Open Source Java engine, which is capable of executing Java code as part of the web or application tier of an online service offering. Code Repository A central location that supports the checking in and checking out of source code files, along with the automatic versioning of those files every time a change is detected. This permits multiple developers to work on the same code in a concurrent fashion and changes that may be tracked, reverted, or merged. Confluence A collaborative documentation repository (also known as a wiki) written in Java and sold by Atlassian. Requires a Java container, most often Apache Tomcat; and a database backend, most often MySQL. FishEye A source code repository indexing, tracking, and search engine written in Java and sold by Atlassian. Requires a source code repository, most often Subversion or CVS; a Java container, most often Apache Tomcat; and a database backend, most often MySQL. Java A popular C-like programming language. JIRA A project and bug tracking system (also known as a ticketing system) written in Java and sold by Atlassian. Requires a Java container, most often Apache Tomcat; and a database backend, most often MySQL. Subversion A popular Open Source code versioning and repository system. Most often used on Linux or a similar operating system.

You might also like