Have you ever seen the cartoon showing how a programmer writes code using a tree swing analogy? The panels show the various stages of development. You have the spec writing step, the designed by the systems analyst step, the programming step, the implementation step and then a panel showing what the user really wanted, which is a tire on a rope.
Too often those in IT are stereotyped into this mold of thought. We are seen as people who complicate the user request and add so much more functionality that we loose sight of the desires, wants and needs of the customer. We are capable people who want to do what we are trained to do and deliver projects that positively impact the customer.
From my past experiences, I think what happens is that the customers receive exactly what they said they wanted. Most IT folks are very good at delivering the program specs. What we need to do is learn the correct questions to ask to ensure we get the customer to tell us what they really want. The final deliverable may not be what the customer specifically asked when they came to IT the first time to request a deliverable, but IT must be able to deliver what is needed and wanted.
Here are some thoughts on how to improve your ability to deliver what is needed and not necessarily exactly what the customer originally asked for.
1. Be accessible
When going to get a can of soda (I drink way too much Pepsi) or a cup of coffee, walk a different route through the building and let people see you. If they ask you a question, stop, listen and try to do a little one-on-one training. Ask questions regarding their job when you are on their home turf. Ask what they are doing and why. Remember your conversation for later and think about ways to do the process better with technology. Do not sit at your desk all day long. Now, keep in mind you are not go wandering around all day just to keep in touch and learn what everyone is doing. There is a balance to be maintained. You have to be accessible when the customer wants help. Providing this desk-side assistance will develop very good working relationships, which will pay dividends for years to come.
2. Ask questions and learn all you can about the business
Often times you can ask open-ended questions to people, and you will receive an earful. Be sure to include VP-level staff members and managers. You will gain an insight as to where management wants to take the company, and that will help you keep your projects on target with the company. Do not be afraid to ask a manager what the biggest thorn in his side is. Most people love to talk about their jobs. The discussion may seem boring and not relevant, but you might be surprised what can be learned when you ask questions.
3. Listen -- Hear what is being said
How many times have we been in a meeting during a brainstorming session and we "know" the answer so we tune everyone out? Or as soon as a problem is mentioned, your mind goes into auto-fix mode. You are so busy trying to find a fix for the problem that you loose track of what is being said. I am guilty of these particular problems. We have to learn to listen to what is being said. Also listen intently for the "between the lines" messages. By doing so we may be saved from charging off in the wrong direction. Also be careful not to blast someone's ideas as he discusses them with you. Wait and digest what is being said before voicing an alternative opinion.
4. Keep your people network open
Knowing what is going on in the business world around you is vital. Help other programmers with advice, tips and tricks learned. Get another person talking about his company and how they are changing things for the better. Listen to the horror stories of failures so you do not make the same mistakes. It is amazing how much information can be shared and is being shared. Buying someone a lunch out of your own pocket can make you shine when you come through with a new idea on how to save a bundle on this or that project. Management does not care where the source of the idea came from so long as it provides benefit to the company (unless, of course, you are sharing secrets with the competition).
5. Build a bank account of favors owed
Be nice to people and do small favors often. It is amazing the number of times I have needed help to learn a process or test a change and the person to help is neck deep in another project. If I have been performing favors for this person all along, they have an obligation to help out regardless of their workload. To be successful, we really need others. You have to be a team player and help out to build this bank account of favors from others.
A word of caution with this item: Do the favors as time permits. You will become inundated with requests once you are known as an easy mark. You have to be selective as to what is done, when it is done, and to whom the favor is performed. Do not hold the favors performed over their heads. If a person says no to a request for help, the answer "no" is OK. But it is amazing how often the individuals will remember your hard work and dedication to them and come through with the help you need.
6. Develop a good memory of requests
Often requests are made for an enhancement that you cannot perform at that time. It may be too large of a project, you may be buried under too heavy of a load, or whatever. Remember these small requests, and if a second large request is submitted for the same program, you may be able to piggyback the first request with the second with little to no effort. You are a hero, and it didn't cost anything. This continues to build the bank account of favors owed as mentioned above.
When customers ask for help, they will devise a huge process change and very involved action plan. Once in awhile a small portion of the project will deliver 75% of the desired results. This is where asking the right question(s) is vital to understanding the real objective. This is another case where keeping it simple is best. You can become the hero by delivering a smaller subset of the request that dramatically reduces the customer's workload just by negotiating the scope of the project.
8. Keep your boss in the loop
Keep your boss informed of what is happening and why. Your boss also has a responsibility to the company to ensure the systems are performing to expectations. He wants you to have all the resources available to you to perform your assigned tasks. If more work is done because you are getting the help you need, your boss will be happy. You want managers from the company to be telling your boss what an asset you are to the company because you are keeping their employees happy.
Another reason to keep them in the loop is they may know something is about to happen that no one else knows and can prevent wasted time.
9. Be personable
Remember birthdays, anniversaries, spouse/kids name and activities/interests. You will be amazed at the increased cooperation you will receive when you get to know someone a little better. If someone feels that you are interested in him as a person, you will be able to better understand him. You will always need others. Keep the team spirit alive by being genuinely interested in the other person.
10. Remember, 10 small things can be much more beneficial than a monster project
Too often we focus all attention on the monster projects and do nothing about the small projects. I have had the most impact with smaller projects than with larger projects. All projects are important, but if you focus 100% of your time on the monster project for eight to 10 months, many beneficial things will not be implemented. Again this is an area for balance. I have seen small projects save as much as the large projects with little cost.
About the author: Bill Cressy is the Manager of Information Technology for Prince Agri Products Inc. He has been programming on S/38, AS/400 and iSeries machines since 1986.