Kevin Toms Blog

Original author of Football Manager computer game

Software Development – avoiding trouble

If you were on a journey, and you had to go through a town.  But, you knew the town was full of roadworks and detours, you would try and find a simple way through. Why take the complicated way, when you could take the simple route? Seems obvious right? But, when developers are writing software they often ignore the complexity they can see. There are signs in front of them that what they about to start writing is full of problems. – Complexity, potential road blocks, uncertainty. Yet they steam straight ahead, why?

It’s because all those problems in software are intellectual challenges. Every problem requires coming up with a solution, and so they want to do it, for the satisfaction of beating all the problems.

But there is a price. If you took the complex, difficult road route to your destination, you would arrive later, and you don’t want to. So you find a simpler way. And equally writing complex software instead of choosing the simple way, has the same effect, you arrive later. And in this case the destination is delivery of the software, finishing it, which gets delayed.

I have led teams of developers where I had in my team people who wanted to make the software more complex, just for the challenge it gave them. Great fun for them if I let them, but hazardous for the people waiting for the product.

I have a maxim that the quickest way to deliver software is don’t write it! If it’s complex, find a better way, there nearly always is one that does 90% of the same functionality for 50% of the effort.

September 17, 2009 Posted by Kevin Toms | Software Development and Delivery, Software development tools | | No Comments Yet

iPhone supports independent developers

iPhone uses an elegant development infrastructure. I have seen many architectures in my time, but by making use of the tools and architecture used in the development of Mac OS X, Apple have incrementally cashed in on work they have done before.

This also applies to the AppStore which is an evolution of iTunes into iPhone applications. Using the AppStore as a means of distribution is a very efficient way to get applications to users. In addition Apple have exploited the payment systems developed for iTunes. The really sharp trick however, was to make the licensing of tools inexpensive and so open up access to small studios and independent developers. This has meant the iPhone cashes in on the wealth of creativity in individual developers across the world

Add all that independent creative inspiration and talent to a well designed iPhone platform from a respected manufacturer known for cool design and you can see that it is a potent success recipe.

But like many platforms before, it’s the software developers, not the hardware that really drive the success.

August 20, 2009 Posted by Kevin Toms | Software development tools, iPhone, iPad and iPod Touch | | No Comments Yet

Another Language

I’ve been reflecting, mainly because I am learning to use yet another programming language, I’ve been reflecting how many languages I have learnt and used in my software career. Here’s my list:

PL/1, RPG, COBOL, FORTRAN, DBASE II, Basic in various flavours, Z80 Assembler, 6502 Assembler, 68000 Assembler, 80×86 Assembler. Forth, C, C++, Visual Basic, Visual C++, Java, Ruby, and now Objective C. There are others that I can’t remember the name of.

That’s about 18 or more. It’s the way things go, the profession has fast moving technology. Things continually change. I could add in the dozens of architectures and hardware specifics I have worked with too.

The consequence is that you are continually learning, you never get mastery of everything you need, as in other professions. Even medicine has changing technology, but I think, software development is maybe a leader on requiring constant retraining and education for its professionals on such a scale.

June 19, 2009 Posted by Kevin Toms | Software development tools, Tools | | No Comments Yet