3 ms·
No tool will do it!!!!! No for a bit of less sensationalism, you need a good process, if you have that you can do it on paper tools just help you streamline you
by kls 16y ago
No tool will do it!!!!! No for a bit of less sensationalism, you need a good process, if you have that you can do it on paper tools just help you streamline your process. When creating a process the #1 rule is don't add steps to a workers routine for example forcing a developer to branch and merge their changes just to get their 1 line of code into the system.
Here is what we did, we looked at ever-ones job and tried to figure out a way that we could not add steps to their job, that broke their work-flow. We then identified tasks that while technical really only needed someone to administer the process.
A good example of this is taking everyone's defect tickets and merging them into a version branch. While branching and merging is a technical process the person that is most knowledgeable about what needs to go in and what needs to be deferred to the next release is the release manager. Good ones generally have better process administration background than technical chops.
So given that they are the best person to oversee this process we wrote scripts and built a simple UI that allowed them to do trivial merges. If there was a conflict the system created a conflict branch and then generated a ticket in the tickets system and assigned it to a developer.
All of this worked in the work-flow that the developers are used to in their day to day tasks. If you got a merge resolution ticket. That was your task, it was not a by-product of trying to get your change in, so the developer saw it as their objective to resolve the ticket not just something to try to plow through to get you change in.
As well, when a developer checked in a change it would go into a continuous integration build once deployed onto a server the system would generate assign tickets to QA testers automatically when approved it would auto merge into the release branch, generate tickets if there where any non-trivial merges and then generate a manifest for the release manager.
The point is, streamline your process, identify areas that you can automate to not create new disjointed work-flows for your workers and get a manager to mange the process. Then and only then can you truly identify tools that can be plugged in to help streamline that process.
And remember above all else, creating task that are not intuitive to the work flow of a worker will create and environment where people put in the least amount of effort to get it through the hoops to get back to doing what they do best. It also means training every new recruit on a disjointed work-flow that does not come naturally and enduring the associated errors that accompany it.
EDIT: Forgot to mention once you have a process defined the metrics for reporting become self generating from that process. For example our release manifest is consumed by our PM tools to update velocity, effort towards goal, milestones and general project tracking.
How we start a project is that we define requirements in a system. Those requirements get broken down into work tickets and they they get assigned to developers or administrators. As the tickets get worked they feed back into the project management system to update the overall progress.