Friday, February 13, 2009

Developing a Program

If you think that learning to program is simply a matter of a programming language you are very wrong.

I am going to start on the basis that you are writing your programs for a customer. He or she has problem and would like you to write a program to solve it. We shall assume that the customer knows even less about computers than we do!
Initially we are not even going to talk about the programming language, type of
computer or anything like that, we are simply going to make sure that we know what the
customer wants.

Solving the Wrong Problem
Many software projects have failed
because the problem that they solved was the wrong one. The developers of the system
quite simply did not find out what was required, but instead created what they thought
was required.
This is a kind of self discipline. Programmer’s pride themselves on their ability to
come up with solutions, so as soon as they are given a problem they immediately start
thinking of ways to solve it, this almost a reflex action. What you should do is think
"Do I really understand what the problem is?". Before you solve a problem you
should make sure that you have a watertight definition of what the problem is, which both you and the customer agree on. In the real world this is sometimes called a
Functional Design Specification or FDS. This tells you exactly what the customer
wants. Both you and the customer sign it, and the bottom line is that if you provide a
system which behaves according to the design specification the customer must pay
you. Once you have got your design specification, then you can think about ways of
solving the problem. Writing an FDS forces you to think about your problem at a very detailed level.

Specifying the Problem

0 comments: