|
Help me to help you! |
I was recently asked how long I spent writing a recent proposal. My answer: About four hours. What this means is I spend quality time coming up with a fair and reasonable proposal for you. I try to cover all the bases, dot all the i's and cross them t's!
I know I speak for any quality coder when I say this. I spend my time reading and studying your project description. If I believe the project fits my qualifications I try to determine what exactly it is the you are asking for. Then I try to determine how long it might take me to do the job based on the time frame supplied by you if any.
I might invest an hour or so of my time doing a little research on the subject to see if perhaps I should attempt a fast track project in those cases where I have less then optimal qualifications.
If the bid price range warrants a sample prototype I will invest the time to make one.
Often I like to ask for more information. When I ask for more information I am really asking for you to help me so I can help you!
| By answering my request you are better assured of a fair and reasonable bid. | |
| By ignoring the request you are assured that one less [quality] coder will bid on your project. |
You do not want a bid from a coder that couldn't have possibly determined really what they are getting themselves into! Real live request below:
I'm in need of help creating some software for my company. I'm an amature vb and i've got the basic of the program done from my knowledge. The hard part i need done is a scheduling part and reports part. I have a list of things i want it to do and have some of them done just dont have the knowledge or experience to continue on with it. If you have done work with make a scheduling programs or would like to tackel it please bid thanks.. I will explain and give more of detail of things i want it to done once bids are accepted.
This person was open to fair suggestions as to the price and was willing to spend between $500 and $5,000 US.
The Pacific Ocean lies between $500 and $5,000.
The only correct answer to the above request is:
$500 if its a little bit of work and $5,000 if it is a lot of work.
A good project description
A good project description provides enough information for a coder to ascertain minimal scope. The more information about the project provided, the better your resulting bids are going to be. Your bid will be closer to what you are really looking for not what the coder thinks you may be looking for.
If your project involves a database, there are a lot of things that need to be considered.
If you are not able to disclose much about your project you can provide minimal information to spark interest and determine minimum qualifications then provide for a Non Disclosure Agreement (NDA). Upon acceptance of the NDA you provide the coder with a complete and thorough description of your project.
By not providing an adequate description of the project you really do yourself a huge disservice.
How?
| Your project may not get done because the coder will skip on you if the money isn't right. I see this a lot. | |
| You will get a $100 job done when you were wanting and willing to pay for a $500 job. | |
| Somebody is going to bid $5,000 when you only needed a $1,000 program. |
If you are not a programmer or experienced in the software field you are not expected to know how to provide adequate scope of the project in most cases. The programmer via the requirements phase determines this.
I believe that if a project description entails a medium bid price of $500 or more it is in your best interest to sit down and think hard about what they want. Provide example programs to the prospective coder that are similar to what you want, things like that.
If you know what you want but cannot express your wants then there is nothing wrong with stating so in the project description and encouraging coders to query the bid requester to assist in determining a general description of the project.
In the real world, when a person wants a software program written, the programmer or somebody in an office interviews them personally to determine what is needed. This can be called a feasibility interview.
If you are not sure how to write a good description of your project, try this; Open up your word processor and add the questions below. Under each question provide a brief explanation.
Answering the above questions will go a long way in helping a coder determine what they need to know to provide you with a fair and resonable price.
What happens when you receive a bid? Have you noticed the wide disparities sometimes? Why is this?
A reason could be that what one coder envisions for your program is completely different from another coder's vision. A vague or incomplete project description allows for a lot of imagination. Perhaps another reason which I have stressed on my pages here is that the quality of the coder will often represent what's going into the bid! A lazy coder can produce a program in half the time then a quality coder can. A lazy coder can cost you more money in the long run. When you said you wanted a help file in a program, what does one coder see compared to another? Did the cheap coder see a sixty minute help file while the other coder saw help file that could take a day or two to write drafts, proof then finally create the final? What kind of help file and to what depths do you want your help file to go? Are you leaving it up to the coder? If so, possibly a mistake. You might not pick the best coder for your project because the coder it thinking much more quality then you were thinking or might even have knowledge about.
For example, it can take as much time to write meaningful comments to sub routines as it does to write the routine. It takes time to follow programming conventions. It takes time to think out and implement effective error handlers. Do you want your error message to say Run Time Error 13 Type Mismatch and have the program in the worst case shut down? Or do you want a way to trace errors to assist in solving the problem?
You may not fully understand what I am talking about above, but if you go with a cheap coder, in most cases you are going to get exactly what you paid for. Your decision to go cheap like in most cases will eventually cost you expensive in the long run.
Those of you that are coder's, you understand
For a given programming language we coders all speak and write the language with varying degrees of skill. I can assure you however that if this program you want written today could be improved later or there is a need to modify it by another programmer at a later date, it could cost you as much or more to improve a program then it did to write it originally. I have spent literally days untangling another programmer's code. Code that is poorly written will stop the most knowledgeable coder right in their tracks. Huh? What The? Imagine trying to find the beginning of the thirteenth strand of spaghetti put on a plate.
If your program was to later be modified and the original coder is not around you want code that has been written thinking of this very thing originally. How bad can a coder code? I once spent two weeks re-writing two major sub routines in a program. First it took days to figure out what the routines were supposed to be doing. Then it took a day to think out how I was going to restructure the routines. Then I had to test everything I re-wrote like it was written for the first time. It wasn't just the spaghetti code I was dealing with, it was also the complete lack of standard coding convention!
If you are not a programmer or a beginner programmer, what use is the source code to you if nobody can decipher what it does?
If you are not a programmer yourself, it would be in your best interest to ask for a sample of the coder's work. Big software companies spend big bucks investing in software program's that enforce coding conventions. There is a reason for this!
Enforcing a set of coding standards is a proven and effective method for preventing errors from entering code. Coding standards enforcement:
The effects of these benefits are maximized when development teams enforce custom coding standards (standards unique to a company, development team, or project) as well as core coding standards (standards recognized and enforced by developers around the world).
What about program re-writes and future modifications? What is it exactly that you want done?
Summary
You are not a programmer so maybe you haven't a clue about what a coding standard is... You have this little program that just needs a bit of re-writing. As an example, suppose you want me to modify this program and help with a new release. I think.. ok.. this will be easy.. an already written program... all the real thinking has been done for me. I bid $100. In this example, I spend five days untangling the code trying to make some sense out it. My conscious tells me I have to re-organize this mess and give you in return something that I am not ashamed of. Shame on me for not determining fully what I was getting myself into. I am going to want at this point to do one of two things:
Save yourself from both of the above scenarios by providing a little existing documentation of an existing program that needs modifying or re-writing.
In the real world often times a person that wants a program written first sees a consultant to assist in determining what exactly you the client has in mind. The consultant then can tell you what will be required in the program based on your wants and needs. With all this new knowledge you have you can expertly go out into the software development market and wisely choose the best programmer for your needs within your budget.
If you are concerned about getting the right programmer for the job or you need to determine what it is exactly you want so that you can determine an adequate budget for your project you can consult with me to assist in determining the scope (feasibility) of your project. My fee for this is an $30 US per hour. A couple of hours spent in doing a feasibility study before offering your project up for real world coding could save you literally hundreds or even thousands of dollars down the road. I will present to you a point form report on what it is that you are looking for in a program.
The reverse can also apply. You have this program written for you and you can't make heads or tails of the code. I can untangle the mess for you and do what he original coder should have done in the first place.