Wednesday, 28 April, 2004

Well what's happened this week!

I've bought a book on the computational applications of Number theory (factoring, prime testing, discrete logs.. crap like that). The book is very tough read. I have just about the required mathematics to even understand the terminology. It's going to be a huge battle to understand it in any real way. That said, I don't really want to implement SIQS without understanding it so Mount Everest has to be climbed Emoticon

I also obtained a book on the much more fluffy topic of a improving the design of code using Refactoring. This book is more work orientated. If you've done any computer science then you've probably had the System's lifecycle drilled in to your head. My motivation to buy (and ultimately learn) this book was born out of the problems with that model.

The idea behind their concept of system design is that you ask everyone what they want then you do alot of design. They then confirm that design is what they want and then you go away and build it. After construction and testing you release it to your customers. Then you keep evaluating whether any changes need to be made. If they do.. you start the whole process again.

Sounds nice and simple doesn't it? Nice stuff to put on an A-level syllabus. But you have to wonder, is this the way things actually work? Well, of course not. You see there are two crucial axioms of the above system. First, that the people who want the system know what they want. Second, that by the time you get to implementing your solution the business problem your trying to solve hasn't changed.

Both of these axioms are incorrect to a certain degree depending on the project you’re doing. Often the person who wants the system is looking to solve a broad problem but they might not understand where the full body of where the problem lies or a draw back of a proposed system sounds okay in theory but after implementation you find a few months down the line that the drawback holds the company back more than management would like.

The net effect of the failure of these two axioms is that the resulting code at the end of the project is more like a decent hack-together rather than a well engineered piece of logic. I’ve bought the book to try and create the latter from the former.

Finally, i've bought a watch who's clock face is written in binary. In other news, Alex said that I should write from the heart a little more. Coming from the man who tore my heart out this is a little rich! Emoticon


10:43:33 GMT | #Programming | Permalink
XML View Previous Posts