This is the next blog in the continuing series of interviews with leading professionals. In this series of blogs, I have an exclusive interview with Teresa Hennig. Teresa is an international authority on MS Access, a top user group leader, a best selling author and a recognized and profiled MVP.
Stephen Ibaraki, FCIPS, I.S.P., MVP
Stephen: When working with your clients you come across best practice scenarios. Can you share five best practices from your long history of success?
Teresa:1. Spend the time to interview the client and really find out what they need. Typically, they don't know what they really need, or what their options are. That's where a good consultant really proves her value, because correctly identifying and describing the needs is the only way to create the optimum solution given the client's situation and constraints. Think about it, you can create the absolutely best, rock solid application, but it if doesn't meet the need and isn't easily adapted by the users, it isn't an acceptable solution.
Sadly, the combination of inadequate requirements gathering, documentation and interpretation is the fundamental cause for as many as 45% of planned projects never being completed.
2.THINK ABOUT THE USER! No matter how effective a design might be, acceptance of the user interface (UI) is pivotal to its success. The application and forms have to be clean, intuitive, easy to read and have straightforward navigation. Take into account the user’s industry, work environment, age, and comfort level with computers.
Find out what the users will be doing, how they will be working with the application, and ensure that the application meshes with and supports the flow of their input and work. Find out how and when management will request reports. Learn what they like about existing reports; retaining a familiar look can often ease a transition. Find out where and how each group of users might work with the application, and consider designing a custom interface for each user group. That might be as simple as creating one application and hiding various forms and controls based on who signs in.
The bottom line is that you are designing an application for the user. Anticipate their needs, automate as much of the process as you can, and build in lots of data validation. This both increases productivity and reduces errors.
3. Use an iterative process and deliver the project in stages. Work with the client to decide what can be delivered first. This should give them immediate benefit and allow them to be testing, building confidence and fostering ideas about other features that they may want. Remember, you are creating this for the client. It is THEIR project and you want them to have pride of ownership every step of the way.
4. Document changes, change requests, and resolutions to problems. Be sure that changes are authorized and document who, when, and why. If this is going to lead to a cost or schedule impact, be sure to include those issues and get necessary approvals. Be upfront and honest. You don't have to have all the answers, but it is important to tell your client if you don't have a solution but will look for one. Be prepared to handle the predictable "unpredictables" that seem to crop up in many development projects. Having a task take twice as long to solve is not necessarily the developers fault, especially if you are building interfaces with third-party programs. So, be fair and promptly advise the client, otherwise be prepared to take a hit on your time. If there are problems with the costs or schedule, let them know right away. Decide what is at issue and agree on a resolution. This type of documentation is a great foundation for lessons learned --- you should always be improving your methods and techniques.
5. Leverage expertise. As my Dad would say, a good engineer wouldn't spend his time creating something that worked elsewhere. If someone else has included similar functionality in their solutions, you will likely benefit from their expertise and experience. As an independent consultant, I provide my clients with the best service and value by serving as the solution architect and then partnering with other developers who can bring relevant expertise to the table.
Again, this fits with "do what you love." I love project management and have a gift for seeing what is needed at both the big picture and minute detail levels. I work with the client and design a solution and my colleagues, who really like to focus on writing code, get to do what they enjoy. It is truly a win-win-win.
And of course, follow-up. Be there when your customers call and respond to their inquiries and requests. Many times, you can solve a little problem in a day. They will remember that for months. ________________________Look for more with Teresa in the next blog.I also encourage you to share your thoughts here on these interviews or send me an e-mail at firstname.lastname@example.org.________________________