I have been in different sorts of organizations working in Technology Startups to huge IT Organizations. I see a kind of huge differences with the kind of infrastructure that developers normally work with. In the end everyone is trying to get the best of what they can give to the organization. From developers point of view, we need to get the maximum productivity in terms of code and features. And many of us (developers, team leaders, managers) have same daily tasks, and my team always make faces about it. Does following things sound familiar for you.
- All the requirements should be at one place; I am happy to see the high level requirements.
- I want to have the traceability of the code (irrespective of a feature, improvement, bug or a task)
- I would like to have the transparency of the tasks that i am working on
- Each time a task or on issue is taken care of, i should be able to decrease by product back log 🙂
- Should be able to do all the CM related tasks (Locking, Branching, Merging, Diff, etc…)
- Each commit that i do should be able to notify my team and managers by mail
- Each and every piece of code that i write must be accountable via CM. Who has committed what ?
- I don’t want to be micro-managed. My manager should be able to get all stats that he wants by tools that use
- I want to manage my release plan in a single tool and be seen by Developers, QA, Product Team, Customers, in short all my project’s stakeholders.
- All release cycles and trains need to be scheduled and estimated in a single tool
- For a simple reason that SW Development deals with communication, i would like to have all the communication that happens on a requirement, features to be in a single place. I want to have a trail of all my threads or in other terms i want to have audit trail.
- I should be able to know the load on each of my team members
- I should be able to query how many tasks are completed in a week
- For each release bucket, i should be able to know what % of tasks/work is completed
- An easy integration among my CM and tracking tool so that i know the task and associated source (which i refer to as traceability; I know many of the organizations spend time in maintaining excels for this).
- If yours is a CMM organization…. you have more requirements on the CM permissions, checkins, etc…
- I should be able to get the release notes directly from a tools so that i can reduce my manual work in compiling the tasks, bugs, improvements and enhancements.
If you agree with most of the above tasks then you would be amazed to see the combination of Eclipse, CVS and JIRA working in a perfect sync. After a long analysis and few months of continuous testing, i have successfully implemented the following process. Few members felt that i was overusing JIRA, but at the end of the day i am happy that i have to take care of only 3 tools. I am very happy about and and my team too. My management was super happy as i did not ask them any expensive tools for requirements management, configuration management, coding, task handling, reporting, release management and finally simple product life cycle management.
My experience with the simple process was great and its worked wonders. If you actually observe all the usecases that i described in different roles, you can imagine that with the help of the great combination of tools like Eclipse, CVS and JIRA you have satisfied all the requirements.
In the end Eclipse has JIRA plugins and JIRA has lots of plugins too for the project management. I would not compare JIRA and Microsoft’s Project, but… the combination that i am crazy about is very much simple and is a seamless process. No one gets hurt by having this process and many are happy that its simple….
And finally…. “Lets make Software Development easier…“.