Being a prioritization machine!

Everyone loves priority. It helps us to make things happen. Without proper priorities, every project is kind of boat which is lost the direction.

Again I am going to talk about a story.

One of the products which I have been working was being integrated and tested. It was also released to the other peers for their integration. Also the specification owners were verifying whether everything is at right place as defined.

The team was overloaded with huge number of bugs in hand, a mix of critical and minor issues.

The best thing had happened was the customer was an amazing guy who loves to prioritise the task. The priority sheet which contain several things in including the features, bugs, some sort of requirement stuffs etc.

The sheet was revisited almost every day. Sometimes twice in a day depends on the realignments and change in plans for the entire products, integration testing issues, resource availability etc.

The issues which could potentially affect the other resource were given high priority, the regression issues came second and the prioritised bug list of the products came after these. Anyway these are well connected and used clearly well.

Before he comes for the meeting mostly I used to have the list of the burning issues in hand and since we had a decent number of resources, it’s implicit that we should take up more issues. So there could be always more than one Priority 1 issues. Again to avoid the questions about the quality of our development, it was equally important to fix the lower priority issues as well just for the sake of numbers.

I just sat down for two three days and nailed almost all the low priority bugs. We used to demonstrate all the bug fixes and features before merging to the mainline. Along with few high priority issues I had demonstrated lot of non critical issues which I had fixed just for the sake of reducing numbers.

He was totally unpleasant with the demo. The question immediately echoed in the walls of the testing lab “Who asked you to fix the junk issues?” I replied “These issues were there in the list for a while and thought of closing it. Though it won’t help the product much but I feel it’s easy to focus on few things in our hand and the numbers actually make me uncomfortable”. He was silent for a while, then smiled and asked me to finish the merge.

As soon as I sent the merge mails to the whole product development group, he immediately called up for a meeting at my desk.

“Sarath-san, any time if I give this product to some good testers, they could fill up the bug list with the kind of issues you have fixed. You might be thinking that these issues are over but the fact is that we can find N number of issues like these. We are not reporting or I am filtering this in these kind of issues from you to make your life simpler. If you see the list of issues in the bug tracking tool, the numbers can drive you uncomfortable even worse. That’s the solid reason I am bringing up a single list even we have the bug tracking tool. I just want you guys to focus on the important issues. The issue which we were fixed was high priority few days or weeks back and our priorities have changed and we focused on other important issues.

He continued, “I can understand that you’ve fixed these things just to close all the loopholes in the product and also to reduce the numbers”

He opened the priority sheet which was nothing but a plain excel sheet. “Yeah I made a mistake. I shouldn’t have put these lower priority bugs in the main sheet. Just think your software is bug free (free of the low priority issues)” on saying this, he made the fixed issues in to the closed state and moved all the low priority issues to another tab and asked me to foget about it.

I was relieved and he said “Just make sure that you’re working on the highest priority issues.” Your team might be working on N number of issues but that even should aligned to the priority list we’ve”

Once after this incident, I learned how clearly the priorities could help us to achieve what we want and to focus on the issues which is most important to the product.

After this incident, I always focused on the most critical things to deliver. There are people who violates the priorities and focused on the pet stuffs, there are people who never had given information to re-align the priorities and risks. Just hunted them down in a good way.

Making priorities and sticking on it is never micro-managing people. It’s about sharing the same vision and the most critical things we need to achieve to reach the right quality to ship the product.

The transparency about work is very important. What the going on with everyone helps to identify how one work relates to other and then to derive the critical paths. Identifying the critical path can help us to weigh the priorities and put them in the right order.

Often people ends up with too many high priority issues which could easily spoil the list. It’s important reflect the priorities in the questions we ask, the meetings we hold and the things people working on.

I’d like to take Scott Berkun’s Amazing article to help me with some conclusions.

The key take aways from these experiences are
- Priorities simply make things happen. The goals, requirements and must be grouped, aligned and prioritised well. Group the other activities whenever required.
- The priorities list must organised in to groups and prioritised well. You can make list of things like Features, Bugs, Requirements etc.
- Priorities are dynamic in agile environment. This has to focused and revisited everyday. The priorities could change because of the internal or external factors.
- Make sure that the whole team is shared and aligned to the priorities and most of the time the priorities are aligned and cascaded down from the senior management to meet certain business objectives.
- Learn to say “No”. Several people had problem saying NO to people because this can be misinterpreted or contextual.
- Saying no is not a straightforward activity, it must be the result of a quality thinking considering the various factors like business objectives, schedule, budget, technical skills, learning curve of the product or technologies etc.
- It’s equally important to have a comfortable atmosphere within the team. Then it’s quite easy to pitch the ideas and convince the people to align to the same direction.
- Be a prioritization machine.

How to change AnkhSVN Merge and Compare Tools?

AnkhSVN has an excellent integration with almost all version of Visual Studios even the latest VS11 beta as well. But you might find that the default compare and merge tools aren’t sufficient enough to control it.

It’s very easy to change. Navigate to Tools->Options->Source Control->Subversion User Tools

There you can see the list of most famous comparison tools in the list and the status of availability. This makes your life simpler.

If you want to configure something which isn’t there in the list, you have to configure by clicking on the browse (…) button next to the each of the options which popup a handy dialog with the predefined place holders.

Sometimes good enough is not enough!

It was in April 2010, when I was passionately working at client site to meet the pre-release milestones of a project. The pre-release software was intended to get the feedback from the sales team.

The project was almost in a shape. But all we were eagerly waiting to integrate 3D clinical measurement functionality. After several months of work the feasibility was successful and we prototyped and tested with some sample data available.

The integration of this feature started 2 months before the pre-release and we were in a good to go shape. But the hardware and the real-time data can be notorious. The 3D models started showing some problems and incorrect measurements. The team was passionately fixing the issues.

The issues did not end up there. One of our team members found a critical work flow which actually made us to rethink about the fundamental algorithm which fuels up the entire feature and we are almost clueless how to solve this problem. More time was required to integrate the newly found work flow.

I never allowed anybody to negotiate the quality of the product being delivered from our hands. The transparency about the project execution of the project helped me to gain a smooth and comfortable relationship with the customer. But yet, I have decided to integrate the basic feature we have implemented though we won’t be able to cover the new workflows found.

In the business point of view this particular feature has took a major portion of our fund and time. It’s important to show up the value as we are closing to pre-release stage. At the same time the issues have been properly communicated to customer. What works, what’s broken, what are the things we are clueless about were explained in detail.

Customer simply put a simple statement “Sarath-san, don’t integrate this feature, focus on other issues”. But I was not really happy about it because first is the business perspsective of it and the second is the hard work of few folks for several months! I was optimistic that we can integrate the fundamental feature within 1-2 weeks! I knew I was compromising. But I could not ignore my team’s hard work.

Customer smiled and left. Next day he came with the product manager and called me up for a meeting. He asked me to explain about this particular problem and he said if possible, he wanted to help to solve the problem. I repeated with all details.

He thought for a while and replied me
“Sarath-san, I would suggest you to remove this feature for this pre-release. I appreciate your hard work for this project and I am so happy about how the project turned out so far”

I said “Yeah but I am optimistic about it. I hope we can integrate it by next week. But there are some items which we need more time to fix. But the fundamental things are good go!”

He smiled and replied “Sarath-san, relax. Just think everything else other than this is high quality. The broken features can invite the risks from inside or outside. Tomorrow testers can report the issues and eventually we have to turn it down. The same thing can happen from the marketing team. Additionally the workflow of the product will be even more complex and we’re going to bet on something which we are not 100% confident about it. So rethink about it”

To ease up my perplexed mind, he said “Some other products we are deploying in this product isn’t ready. We can bring up these folks and you can have your demo later and at that time we can show our real guts!”

I was convinced and we focused on the fundamental features and had a great time demonstrating the feature.

Often good enough is not really enough to go. Things could be worse in the bigger perspective! If we’re willing to alter your standards from situation to situation, we’re going to have a tough time ahead. Compromise always send us back to square one and raise questions about our own talent and the quality of work we produce!

Proudly powered by WordPress
Theme: Esquire by Matthew Buchanan.