I think that more software projects fail because of misunderstandings about the specification than for any other reason. The developer makes loads of assumptions about what the program needs to do and the customer can’t be bothered to keep an eye on what is being produced.
I was reminded of this when I was marking the first year coursework today. We set a tightly specified set of deliverables and then each student has 15 minutes to show what they have made. This is a lot of work. It takes five of us two and a half days to work through everyone. And then I have to spend at least two days going through the marked sheets and making sure that all the marks line up.
This year we set some quite complex deliverables and it was very pleasing to see that many students had risen to the challenge and produced some lovely stuff. But some of them had made really nice solutions to the wrong problem, because they had not read the specification in detail. They’d just read enough to convince themselves that they knew what was needed and then gone off and built it. And in many cases they needed to do more work to make their version than they would have needed to make the one that was required. Oh well.
Of course in a teaching situation this is not a huge problem. Folks lost a few marks and we moved on. And hopefully a lesson was learned, which is what it is all about.
One year I’m going to produce a huge, complex piece of coursework with a long and highly detailed description which has, right at the end, the phrase “Please ignore all the above. Just make me a program that prints “Hello World” in large friendly letters.”…
The LensBaby composer is a lens mounted on a ball and socket arrangement which you can twist to change the way that it focuses the light onto the camera sensor.
I bought one a while back and every now and then I get it out and have a play. It is quite fun. Very old school, in that it is basically a single lens in a sliding tube. There is no auto focus and you adjust the aperture (the size of the hole the light comes through) by dropping in and out little metal masks that are held in place with magnets. A bit fiddly to use, but the lens itself is pretty darned sharp, and you can get results that would be very difficult to get any other way.
If you have a digital SLR and you fancy spending some time doing things the hard way, and never being quite sure how the pictures will come out, they are kind of fun.
I’ve been playing with Python for a while now and I quite like the language. If you’re looking for a good book to get you started writing Python for the Raspberry Pi and having fun doing it, I can recommend this one. It covers the language in a very useful way, and also has space for some nice coverage of game development and hardware connections.