Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We are trying to develop a website that automate an organisation process. This company, let's called it Acme Limited, usually ask their clients to submit paper form and have the clerks to manually enter those form into the internal system. At the moment they have 60 clients across the state.

Now, Acme Ltd wants their client to go to their website, that we are building, and fill in the data themselves, instead their clerks. The driver for this, is to free up their clerks, and reassign the clerks to do something else.

In my understanding for this scenario - please correct me if I am wrong - the customers in an agile environment, must includes not only the users from the within the company, but also their clients. If we were to develop their system using agile, is it better to include the clients into the software development process ? Have them sit within the development area so that we can ask for their input during development ?

share|improve this question
How refined is the entry system the clerks currently use? Could their input be similarly valid for the external site that is being developed? – John Straka Apr 11 '11 at 12:29
up vote 5 down vote accepted

You need customer representation. That's an important word. Agile development doesn't mean get all your users in the process of creating the app. A core component is getting your client involved--but your client and your users are many times different groups of people. Your client has business goals they want to meet. For example, reassigning clerks to new responsibilities. As a result, they have an interest in what features you put or don't put into the end project. Your client will assign someone to represent them as you work on creating the app. The number of people you have to coordinate with is now very limited. That's a good thing.

It is helpful to involve a group of end users in regular usability testing. In short, you want to make sure the path you are on will satisfy their needs before things become too costly to change. Don't do usability testing too often, but do it regularly. You need enough to show off in between each usability session, and time to incorporate the changes from the last session. This step is not necessary, but your project will be more likely to succeed if you do it.

share|improve this answer
Thank you for the comments, it really help me to understand how to involve users in our environment – zfranciscus Apr 11 '11 at 22:01

You need to incorporate the customer in any process, but if your end user is the general public or a large population of remote clients you usually won't actually have them in person. Instead you will have someone like a program manager or business analyst who represents the customer to the rest of the team. It is the job of this person to either know the business well enough to answer your questions, or at least be a proxy to go and talk to the customer to get their input.

If you can get a real customer involved that would be great. There are pitfalls to having paying customers deeply involved in the dev process, so tread carefully.

If you don't have real customers involved all the way through you can still involve them in trials, betas etc.

share|improve this answer

Yes, you need to get input from the end-user to get the best product you can. That's not exclusive to Agile or even to programming in general.

Their clerks will likely have a similar level of technical ability since they will all work with the same software all day. Getting to know thier clients and their technical ability is going to be critical to making the site easy and comfortable to use. You'll need to get that right or they won't use it.

share|improve this answer

The firm that owns the site should help you find a few clients to work with as users. I'm reluctant to say they should be clients in favor of this project. You don't want to be spending your time convincing reluctant users, but if you do and build a site that more clients will like, it will benefit the website owner.

If their clients are businesses of any size, they have systems in place to generate those orders. They're not going to see the value of their people having to manually enter them into a website when they've just been able to send a fax/email attachment. Figuring out a way to integrate these systems will result in a much larger project for you and a better solution for everyone. Clients that are small shops may prefer to enter on line with the benefit of it being available 24/7/

share|improve this answer

I think you're taking it too literally. Someone should represent the customer in the team space. I've heard it called the business proxy in many places, but that person's job is to represent what the business needs. In theory, that's what the customer is going to like.

So you don't need customers in the room, but you do need someone there who is representing them. Ultimately, someone is funding the project from a business perspective. That person could be in the room, and then you don't need a proxy, but more than likely, they're going to have someone represent their interests. The business should be trying to represent their end users so they'll succeed.

That said, you should have some sort of usability testing regularly scheduled during the project to make sure that the proxy is representing the customers appropriately.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.