Waupaca Computer Consulting Logo Customized Software Development

Home
Services
Why Choose Us?
About Us
Testimonials
Articles
Links
Site Map

Why Choose Us?

Just before I started back to school for my degree in Computer Science, I met a guy who became a very good friend of mine. He had already started in the Computer Science program at Indiana University Southeast (IUS). He told me that I would find only two types of students in the Computer Science program:

You either have the ones that can "talk the talk",
but can't write a "lick of code"
or you have the ones that can program like crazy,
but if you ask them their name,
they have a hard time answering you.
Obviously he was stereotyping but there was some truth in what he said. I'm sure you've all met some geeks¹ in your time. People kind of look at them in awe because of the amazing things they can do on computers, but they aren't usually the ones you ask to sit down and have a cup of coffee with you because if they actually say anything to you, you don't feel like you're going to understand it anyway. You've probably also met the other type of person he mentioned, but you may not have known it. These are the ones you were able to talk to and you were really impressed by them. The problem is that if they actually did any programming for you, you found out that it wasn't very reliable and it didn't really help you. Again, I know my friend was stereotyping and so am I, but I have a valid point. You need to have a cross between these two types of people in order to really have a good programmer.

First, when choosing someone to do any type of programming work for you, make sure you can communicate with him or her.

It doesn't matter how good of a programmer a person is,
if you can't communicate with them,
you can't make them understand what you want and need.
Second, you need to figure out whether the person is really capable of doing the work. In other words, make sure that they aren't the kind that just "talks the talk". This of course is a little tougher to determine without actually having them do some work for you.

I earned a Bachelor of Science degree in Computer Science as well as an Associate of Science degree in Business graduating with Highest Distinction in both degrees. I was also the recipient of Computer Science Student of the Year award my senior year in college at IUS. I know some people that think that you can have a degree and not know anything practical. I suppose you can but I would hope that anyone that actually graduates from college knows at least a little bit about the field they are going into. My degrees and my 4.0 average at IUS don't really prove whether I'm smart or not, but hopefully it shows you that I was a diligent student who worked hard to learn all I could and in turn, I earned good grades. I think the fact that I did not grow up using computers and I worked in a lot of different jobs before getting my degree, helps me to be a better programmer. Not having grown up with computers also helps me to empathize better with people who are faced with learning a new program or even just learning to use a computer. The majority of the jobs I have had in my life have been dealing with customers (managing a retail store, banking and real estate sales), which means that I know how to communicate. I pride myself in not being a geek¹.

My first goal in any project is to sit down with the end user
and figure out what they truly need.
A lot of times they don't actually know themselves. They know they have a problem they need to solve so they can do their job, but they don't really know how to go about doing that. With good communication, I as the programmer can help you determine what would really help you be more efficient. The other problem you can run into is that you get programmers that are more concerned with making something look cool or have neat little features rather than with actually making the software do what it should. That's fine if the functionality is there, but if basically all it does is look cool, it doesn't help you. In building customized software it is more important to get the program running bug free and then add the neat little features later.

Not only does my experience from my "previous life" help me, but also the experience I have gained since I have been in the computer industry. I have worked with some really good programmers and systems analysts who have helped me to grow a lot in my knowledge. I have also been exposed to many different departments with varying types of needs in the companies I have worked for. Obviously I can't walk into a company, sit down in your marketing, finance, merchandising or sales departments and take over peoples' jobs, but between my business education and the practical experience of writing programs and reports for these different departments, I have a very good understanding of the types of things they do and how the proper software can make them more productive.

I have also worked with some not so good programmers that I have learned from. You can learn a lot by cleaning up other people's mistakes! Working with some of these people really instilled the basics I was taught in school. You know, some of those things that you kind of go, "yeah, whatever" or "that's pretty obvious". Well, I found out that with a lot of people these things just plain weren't how they did their job. The basic things that I'm talking about are the different phases of the life cycle of a project. Whole books are written on this subject and you can make it very drawn out and complicated, but it is important to at least follow some basic plan. If you look at it from a practical standpoint and address it in layman's terms, here are some steps that really need to be followed for every project.

  • Define the problem and interview the people that are affected by it.

  • Design a solution to the problem.

  • Meet again with users to make sure that the design is really what they have in mind.

  • Build the software.

  • Test the software yourself.

  • Implement the software on a test system, teach some of the users how to use it and have them do additional testing. This will of course identify bugs that need to be corrected.

  • Document everything!!!

  • After all testing is done; the remainder of the users should be given documentation and also taught how to use the program.
This is a brief description and I know some people that would be screaming if they saw it written up this way, but if we're realistic, there are many IT departments that don't even follow these basic steps. Getting back to my point about learning from the not so good programmers, I really found out the hard way about what happens when you have to support something that was created with no initial design, little or no testing, no documentation and not much user input. It is NOT a pretty picture.

I have actually learned other things from some of these slackers² that will help me in this new business. I knew that I was brought up to take my responsibilities seriously and to always do things to the best of my ability. But in some ways I thought that all kids, who were brought up in "decent" families, especially here in the Midwest, were taught these same things. What I have found over the years is there are a lot of people out there that have a terrible work ethic. They have the 9 to 5 mentality and do as little as humanly possible in order to keep their jobs. I don't really think that's the kind of person you want doing programming work for you. You want the person that puts 110% into the project. You also don't want someone who is not honest with you. If I don't know an answer to your question, I am going to tell you that I don't know. I am also not going to agree with everything that you tell me. If I think you are going down the wrong path, I am going to tell you that even if it causes me to not get the job with you.

It all comes down to being honest and ethical.
If you can't trust me, as the expert, to give you honest opinions rather than just tell you what you want to hear then you should be talking to someone else.

The last piece of advice I'd like to give you concerning how to choose the right person for the job has to do with what that person's specialty is. People that aren't in the computer business tend to think that everyone who is "into computers" knows everything there is to know about computers. Technology changes so fast, there is no way you can be an expert in everything. My experience has shown me that one is either an expert in hardware/networking or an expert in programming. I'm not saying that I haven't met programmers that know a lot about hardware and networking. Nor am I saying that I haven't met hardware people that can write software. But I am saying that with ever changing technology, you can't know everything about everything. Obviously the software has to be able to run on the hardware so no matter which part you are an expert in, you have to know a little about the other but you will find that most professionals in this business are more specialized in one or the other. So my advice to you is to get the right person for the job. If you need a new computer or you need some computers networked, go to a hardware/networking person. If you need a program written, go to a computer programmer.

One last thought about the right person for the job. The one place that people love to try to save money when it comes to technology is on their web site. With the programs that are available today, such as FrontPage, ANYBODY that can use a computer can build a web site. If you can't do it yourself, probably every one of you has a 12-year-old nephew or a kid next door that could do it for you. That's great and I am sure that you (or the kid next door) can create it. But my question to you would be this: Does the person that's building the site know enough about business to create the type of site that would actually be beneficial to you? Does this person continue to read up on the ever-changing ways that search engines work, so he or she knows how to optimize your site so people can actually find you? Is the person a wannabe³ programmer that thinks that the more animation, hover buttons and huge graphics make the site better, even though it takes five minutes for each page to load? Think about these things when you are trying to save some money on the creation of your web site. In any project you embark on, it often pays off in the long run to spend a little more up front and have a professional do it correctly from the start. You may be interested in reading this article concerning who should build your web site.


Definitions according to Dictionary.com

¹Geek - A person who is single-minded or accomplished in scientific or technical pursuits but is felt to be socially inept.
²Slacker - Lacking in diligence or due care or concern; negligent: a slack worker. See Synonyms at negligent.
³Wannabe - Wishing or aspiring to be; would-be.
Home Services Why Choose Us? About Us
Testimonials Articles Links Site Map
Web Design by Waupaca Computer Consulting, LLC
E3202 Bunker Road • Waupaca, WI 54981 • (715) 258-6599 - Office • (715) 281-6501 - Cell
E-Mail

Copyright 2003 Waupaca Computer Consulting, LLC. All rights reserved.