|
So you need a simple database application built to run over the web? Is it simple? Maybe it is but I need to know EXACTLY what you need and what you expect. I can't allow you to take me down a road where both of us get frustrated and you don't get what you want. Requirements are the most important aspect in building a web-based application. I build very small to very large applications for companies of all sizes. All require the same preparation.
First, the customer doesn't always know what they want. That's a fact. It's my job to listen, understand, analyze, ask questions, and make suggestions. Most importantly I know that my customer must trust me and understand the process. If the customer follows my lead and is willing to endure the process then they will reap the rewards in the end.
I can't count how many projects I've attempted to do without knowing all the details. Some were my own fault for thinking I could design as I went along. Some of these botched projects were just a result of the customer wanting to "Scope Creep"e; and not willing to pay for the additional functionality. I try to be reasonable but I can't work for free.
Scenario:
Jan called me and wanted to know if I could just build a simple database that would capture a person's e-mail and then ask them to enter a code to see if they were a winner.
That's all she asked for. On the surface this seems simple enough. Maybe a few forms and a page that explains what is going on? $50? Then I decide to ask a few questions.
- Where do the winning numbers come from?
- What brings the customer to the site?
- What do they win?
- Does the e-mail address need to be verified?
- E-Mail address is all she wants?
Now she stops to think and realizes that she also needs to ask three promotional questions in addition to the e-mail. Apparently the customers see the promotion on a new product that has some potential winning numbers. The web site is already in place and the application will just be an additional link from the front page.
I'm just starting to understand what's happening. She's sure nobody will enter an invalid e-mail address because that's how he or she gets notified of his or her winning prize. They don't win money so now I know we aren't doing something illegal. The email address and some answers to three promotional questions will be asked.
I asked her how the winning number gets put into the database? Does it change for multiple promotions? Can multiple promotions be taking place at the same time? What kinds of questions are asked? Are they multiple choice, yes/no, or textual in nature? Does this web application need to report the results or just collect the information? Does she want a web page where she can monitor the activity?
Oh yes, she needs to be able to have several promotions going at once. The customer will select the promotion from a drop-down list before he or she enters his or her e-mail address, three promotional questions (that may be multiple choice, yes/no, or textual), and then enter the magic numbers to win the prize. Actually there may be several prizes for each promotion. The winners get notified immediately upon entering the winning number and told how to claim their prize.
So now she apparently needs a tool to create a promotion by entering in the questions/answers and winning numbers with associated prizes. Each promotion must have a start date and an end date also. She needs to be able to monitor the progress of all the current promotions and be able to download the data for any given promotion.
As you can see, the requirements slowly start to appear. She offered some of these new requirements as she thought things out more clearly, some I had to get clarification on. We are now a far cry from just a few forms and a web page. What I had started to think of as a simple $50 job was now at about $1200. There also needs to be safeguards built in to protect the integrity of the promotion right?
We went on with a few more iterations where she needed to be able to change promotions and I had to point out that changing the parameters of a live "Contest" could not be a good thing. If questions changed then the answers would change and then there would be more than three questions to process. If winning numbers changed….. If the email is not verified then someone could simply enter hundreds of entries with fake e-mail addresses. Why would they do that? I don't know but my experience says they will because they can.
We settled on a proposal that outlined all the details and a price. She got back with me two days later and said that the promotion would have to wait.
Now you see, she was able to walk away with a clearly stated requirement of what she wanted for free because I didn't charge her for that. Hopefully she returns someday but I'm not banking on it. I spent at least four hours and should have charged for the analysis work. I'm sure she thinks she had all the ideas anyway but think of what would have been if I had started building the application before we hammered out the details.
Requirements are the foundation of the project. They must be clear and concise and well thought out. I also need to be paid a retainer fee to begin. Burn me once, shame on you, burn me twice, shame on me.
|