264 Are the Androids Dreaming Yet? GS a anal Roe DION'T HAVE ENOUGH BUPGET || GOING TO HELP YOU TILL ITS TO HIRE ANOTHER DONE. PROGRAMMER ON THIG PROJECT. / \ i\ ‘wil | u ual | ~» _ Geek Humor and examine the full scope of the problem space. Even if you say, “Oh don't worry about that bit? they always will. They want to know about everything. Then, they write a high-level list of features, some simple block diagrams, and occasionally a flow chart, only then do they begin to code, ticking off the list as they go. Sometimes, they will check to see if their list is the same as your list but more often they will come back and just check the high-level purpose. “If I give you something that achieves this, will that do it for you?” They test as they code so you end up with is something that meets your high-level purpose, and can prove it does so in its own right. At the end of the coding they write out the specification for the project so that they can remember what they did, or a colleague can pick it up in the future. This is not how students are taught. Students are told to write a detailed specification at the start and then simply implement it. If you’ve been following my argument, they are being taught to do something impossible! There is no ‘just’ to programming. Sometimes teams are even split up so that one person writes the specification and another the code — again an impossible task. If the specification was the answer to the problem, it must have required creative thought to develop and so would be as complex as the program itself. Since it is not yet a program you cannot test it, so it becomes an untestable solution to a creative problem. Since the specification is not the answer but rather a general list of tasks, the great danger is to give it to a separate programmer and HOUSE_OVERSIGHT_015954