What? Users in the development cycle? Blasphemy!
Is it? How many times have web and software developers had to cater to the whim of a client’s wish list at the last minute? How many times have project managers had to extend deadlines or budgets to include features to accommodate previously unmentioned functionality?
Where you’re going, and how to get there
Designing any application to target a specific user base requires effective planning and an ample amount of design time before any code is actually written. Too often the users the application is designed for have no say, or even realize they should have a say, in its overall design. Here’s a brief outline of the design steps:
- Application necessity: What is this project supposed to do? Determine the end results and know what a successful completion is going to look like.
- Intended audience: Who is going to be using this application? The public? Your co-workers? A client? What special needs do they have?
- Delivery: How is your audience going to be using this application? Web-interface? Desktop clients? Handheld/WAP?
- Technology: What are you going to use to design this? Decide languages, databases, client/server specifications, etc.
- Timeline: Balance your team’s capabilities with the project ahead and map out specific goals and deadlines. Understand every deadline is a critical one and staying on task is important at each step.
- Development: Get your hands dirty, stick to your application plan, and constantly report back to management about your progress. Determine if the application’s scope has changed and if project changes are necessary.
- Delivery: Determine how best to deliver the completed project. Will you roll it out over time, or all at once? Is interaction with the users required?
- Support: But I managed a perfect project! No you didn’t. No one is perfect; bugs will happen, users will break things. Make sure enough team members are accessible to provide adequate support for the application.
These are the major steps involved in the lifespan of most user-based projects. You can argue for less or more steps, but the principle is the same. Without these specific pieces of the project, it’s certainly doomed for failure. Keep in mind each of these steps should be considered before the project gets too far along. Just because delivery and support fall later in the timeline doesn’t mean you shouldn’t plan out their execution now.
Know everyone’s role
Members of the application team have responsibilities at each step of the process. This not only includes individual participants, but specific groups as well: project management, development, and end users. Here I describe a few of the steps in this process and the group’s general responsibilities within that step, taking into account interaction with the other groups. The focus of this evaluation is job function as it relates to user interaction.
- Application necessity
- Project management: The project managers’ responsibility is to ensure the proper direction of the project at all times. It’s their duty to keep all project members on track and make sure communication is taking place on all levels. They will have to communicate with upper management, with the development teams, and with the end users. They will also have to make sure relevant communication is had between development and end users. Isolating developers from the user’s wish lists is leaving too much to interpretation.
- Development: The developers are the heart of any successful project. Without a competent and ambitious development team, no project will fulfill its potential. That said, the development members have a responsibility to make sure they are communicating with project management and with the end users. Project management’s responsibility is to make sure communication is available and/or disseminated to the development team, but the developers should always make sure they have recent, and correct, information regarding the user’s needs.
- End users: The end user walks a fine line between providing too much and not enough information. They need to be effective when informing project management of their functionality requirements, but know when enough is enough. Corporate management usually dictates what a specific application will do, but the users have to live with it day to day. Attempting to make them happy from the start will help make the project successful in the end.
- Intended Audience
- Project management: The users are going to have their hands on the application each day, and project management really must understand their needs and wishes well ahead of time. An efficient project manager will be able to interpret all types of user requests and know how to translate them into necessary project goals.
- Development: The developers must know how to accept information from the project manager, and be able to raise points they feel relevant. If the project manager missed something a developer feels is vital and/or will increase efficiency for the user, they have a duty to bring it up for analysis.
- End users: The users have to live with the application once complete, and need to know how to communicate their needs properly. Development teams aren’t mind-readers, and will need to know what’s necessary outside the scope of the original design specifications.
- Project management: It’s important to understand most end users will have little to no knowledge of the complete application cycle, and their interaction is necessary to ensure successful usability. The project manager should understand how to let the users know their input is limited when it comes to choosing an effective platform for development.
- Development: Be mindful of the project goals, understand how decisions in this level will affect overall performance, and raise concerns about possible slowdowns or user-related problems.
- End user: Know your place in the development cycle! Give project management the raw data (wish lists, usability needs, priorities, etc.) and let them interpret how it will be implemented. Speak up when you believe critical user-related issues are being ignored or improperly interpreted.
- Project management: After coding and testing is complete and the application is ready for delivery, project management should be prepared to assume an instructor’s role. They shift from directing the development team to showing the users the details of the new application. Answering questions and demonstrating core functionality are necessary to communicate how the developers have implemented user wish lists.
- Development: Having completed the difficult task of completing the project, development should be prepared to regard any last minute requests or feature changes. Corporate (or the client) will often require modifications after a project has completed, and development should expect this ahead of time.
- End users: The users have a responsibility to thoroughly examine the application for each feature they required or requested. Not all wish list entries can be incorporated, but it’s not unreasonable to expect a good portion of them. Those features not incorporated should be mentioned, and missing essential ones should be questioned.
Users aren’t always available to provide feedback during development, so it’s the project manager’s responsibility to track down the necessary information and incorporate it into the project. When user input isn’t available, it’s corporate management’s (or the client’s) responsibility to make sure the necessary specifications are made available. Lack of user accessibility by the development team doesn’t preclude them from having to investigate user-related needs; quite the contrary. When users aren’t directly available for input, the development team must interpret what they have been given by project management to provide the best environment possible.
It’s important to note each member of the development team has an effect on each portion of the development cycle. Users aren’t only necessary at the beginning and again at the delivery/support level, they should be regarded throughout the life of the project.
Note that I say regarded, not completely involved and not completely isolated. The project manager must know how to balance the two while maintaining peak efficiency in the development cycle. This is not to say every user idea is going to be implemented, or even necessary. Poll five end users about color schemes and you’ll get six different answers.
Project management and development must know how to balance mission critical requirements, end-user efficiency, and potentially unnecessary items. It’s not practical to try to satisfy every single person who might come in contact with the application, but it’s in everyone’s best interest to be adequately represented in the development cycle.
Keep the communication lines open
Communication is the key. Isolating any one section from the other is harmful to a project at best. Each of the project management, development, and end user groups must learn effective communication before any can begin to work together. Even if the end users never meet the developers, both must know how to ask the proper questions so projects don’t go unused or used improperly.
An effective project manager will know how to assemble end users and get the proper details from them. They will be able to compile those details and disseminate them to the development team for incorporation into the project. They must know how to steer development in the right direction to balance efficient coding and necessary user request inclusions.
Development must in turn know their users; they have a duty to question if what they’re designing is going to meet the specific needs of the project as well as those who will use it. The end users must in turn realize the massive resources that go into a successful project and know how to communicate their needs to the project manager. They also must know their place in the cycle, respect the development team’s expertise, and believe their requests aren’t going completely unheeded.
Don’t let another project go unused. Don’t let another end user hate your applications. Don’t be another project manager who thinks end users have no place in the development cycle. Get the right information from the right people and make sure your team has everything they need to do their jobs properly. When your application is loved by all and you’re responsible for its success, your entire team will thank you for it.
|Salvatore Palmisano spent nine years as a CIO for a small Tallahassee, Florida company, and currently is a business analyst for a Tallahassee software firm. He specializes in team-based solutions development, and maintains ‘all things underanalyzed’ at sienar.org.