Wednesday, May 16, 2012

Unreachable Goal Satisfied Customer

Jaroslav Orság
Technology Consultant 

How (Not) To Throw Away Customers’ Money

A majority of software development projects end in disaster. Deadlines are not met. Useful features are not developed.

If you are using custom software solutions, then you probably know how difficult it is to force the software vendor to deliver THE RIGHT THING.

I’m leading a team that is working on an upcoming version of the 2Ring CA (CALL ACCOUNTING) application. This long-term project could end in disaster if it is not properly managed.

I will describe several key benefits of using agile methodologies during the development of 2Ring CA. These methodologies help us satisfy customers in many direct and indirect ways. Most importantly, it helps us not to throw away customers’ money.

Get feedback on time with short development cycles

Agile in our case means iterative. First, I divide my application into several small parts – increments – and deliver these parts separately. An increment must be something meaningful for the customer, something he can simply use, such as GUI for user management.

One of the biggest advantages of this approach is that you have continuous feedback from those that will use the product. They know best what the system should do.

By having this valuable feedback, you can find out soon if you are developing bad software or features that are not so important while important features are waiting somewhere in the queue. With this knowledge, you are able to adapt to real customers’ needs.

Do not develop useless features, do frequent planning and priority checking

64% of features developed are never used. That’s why I emphasize prioritization.

I organize the planning meeting at the beginning of each iteration. The best is when customers directly specify their needs. Developers should not be responsible for setting the priorities because they usually do not concentrate on business priorities.

I work with features as with tangible physical artifacts. My team uses A4 papers for features and post-it notes for tasks. We put all the features we would like to implement on a table. Developers can then break down features into tasks or divide one feature into two features. Customers can easily change priorities.

The final goal of the meeting is to order the features by priority. Priorities are set by physically ordering the features, which is really convenient. Really – try it! Then, with such an order defined, it is very easy to decide which feature to implement next.

Make your project more transparent by using a visible physical task board

We also started working with a physical task board. Why?

Here are THREE important reasons:
  1. The plan is a physical tangible artifact
  2. It creates interactive communication with the team
  3. Team members are motivated to resolve tasks
Most of my team members today believe that having such a visible plan really makes a difference. Plus, as a bonus, my BOSS is very happy when looking at the physical task board because he knows what is happening with the project.

The last note

I believe that the key to the success of a software development project is how you adapt to a changing environment, such as new requirements and estimations or new problems nobody knew about at the project’s start. Agile methodologies were developed with this in mind. Instead of trying to avoid changes, they embrace changes.



No comments:

Post a Comment