About

This is the M Cubed Software weblog. To find out more about us head to our about page.


Search


Feed

 Subscribe (Atom)


Archives

Code Collector Pro 1.2.3

Posted on 21/05/2008 at 06:26 PM in
This is just a quick bug fix. I discovered that there was an issue when sending a '+' to codecollector.net. Obviously for programming related stuff this is quite a big issue, hence this version. I also just like the version number... what can I say, simple things amuse me.

I'd also like to make a plug for On the Rain-slick Precipice of Darkness: Episode One. It was also released today and so far it has been a great game. If you read Penny Arcade you probably already know about it. If you don't then you should really try the game anyway.

(0) Comments







The Art of Software Development

Posted on 12/05/2008 at 06:23 PM in

Software development is an art. This is a plain and simple fact that too many people fail to see. I’m approaching the end of my second year of Computer Science and over the past two years I’ve had 3 methodologies for developing software taught to me. I don’t believe the first really had a name, but the two I learnt this year have been the Discovery method and Extreme Programming.

Various methodologies have appeared over the course of software development, all of them trying to find ways to improve quality and efficiency. And yet the majority of software projects out there still fail. The problem of course is that software development is seen as a science or an engineering task. With science you can collect data and work in hypotheses and facts. If you repeat someone multiple times with the same conditions you should get the same results.

It’s fairly clear to see why software development is seen as a science. It’s taught on Computer Science and Software Engineering courses. At universities these give you degrees in the sciences and engineering respectively. Science is what gave us the tools to even have the phrase software development. If science built the tools then science must surely be able to be used when using those tools. Science is also used to analyse software development and come up with these methodologies, so there is a big case for software development being a science. But even with all this it is still an art.

Let’s look at some other art forms. Three of the main art forms are music, literature and painting. When writing a piece of music, a book or painting a picture you rarely think of science, yet science is all around you. Music can simply be reduced to a matter of frequencies played at different intervals. Books can be reduced to collections of words placed together in discrete patterns to create meaning. Pictures are just a collection of lines and colours, they can be boiled down to mathematical equations.

But Van Gough didn’t think about equations when he painted, Beethoven didn’t think about frequencies when he composed and Dickens didn’t think about patterns when he wrote. They used their intuition and imagination to use what they think was right. Yes, there had been patterns and styles laid out before them, but they didn’t become great by sticking to patterns and styles. Greatness comes by breaking out of the box, not trying to fit everything into one.

You could easily make a computer paint a picture, write a book or compose a song but you cannot program feeling or intuition or imagination into it to allow it to make something new and exciting. All you can do is feed in what already exists, and it will always be limited by boundaries.

Science has played a big part in these arts though. Science helped to create the pen and paper and ink and the printing press to help get books out to the masses. It helped create musical instruments and construct theatres to help play and perform music. It helped to create paints and tools for creating paintings. But just because science made the tools, doesn’t mean science should be used to tell us how to use them.

Computers are just tools, and science helped to create them. But like with the other arts, science should not be used to tell us how to create things with these tools. Yes, some of these methodologies have very good ideas, and you should use them. But methodologies are too often painted as closed boxes. Instead they should be made of many components that ultimately get pieced together by the developer who is creating software, it works for every other art out there.

When you start thinking of software development as an art you stop being constrained by boxes, you start to build on them to reach your goal.

NB: I’m not against having a methodology to build software, simply trying to analyse your way into a methodology, methodologies should be built around you, not the other way around.

(1) Comments







Shameless Plug

Posted on 10/05/2008 at 01:19 AM in
It's time for my first shameless plug on this blog. A week or so ago I joined an episode of the Mac Developer Roundtable to talk about SCM. It's just been released today so make sure you check it out. I'm the one with the northern accent who sounds like he's in a bubble and has trouble getting words from his brain to his mouth in a coherent fashion.

http://www.macdevnet.com/index.php/shows/mdr/38-mdr/366-mdr007

(0) Comments







Page 1 of 1 pages