1
3

M
a
r
c
h

2
0
0
5

Basic Instincts

Over the past couple of weeks I’ve been learning Ruby on Rails. Well, learning is a bit of a misnomer. I just picked it up and started dabbling.

I learnt PHP the same way: read a bit, write a bit, try something out, look at the documentation and repeat. At the time I was learning PHP it was a very evolving language, particularly with respect to the libraries. This meant that printed books covering PHP were out of date before I’d had a chance to work through them. And frankly, I didn’t have the time or the inclination to write umpteen applications, which tended to be the teaching strategy of the books I bought. I ended up relying a lot on on-line documentation, the PHP community and code snippets.

What am I doing with Ruby on Rails? I’m occasionally reading the excellent Pragmatic Programmer’s book about Ruby. Rails is a little more difficult. The documentation for it is virtually non-existent for newbies, although there are some good tutorials. Even so, I still have no time or inclination to write a ToDo application. That said, I did start out on the ToDo List Tutorial and got bored with it very quickly. I jumped ship to Four Days on Rails. I read the tutorial and then decided to try something else. To grow it into a different application.

This is a really simple application: one that allows me to track time spent on certain projects. I aim to do an hour or so of development every couple of days. But at this moment in time, I have no development strategy. The way this development is going is very ad hoc. I have an idea and then implement it. The Rails tutorials and community sites are good for grabbing code snippets but the API has dreadful documentation in places.

For example, last week I added the concept of Projects. Each time Booking belongs to a Project. I then added a selector to show all Bookings or just those for a specific Project. Two things needed sorting out: Firstly, Bookings couldn’t change their Project, and secondly, the Bookings List didn’t play with new Bookings nicely. Today I fixed these things. In about 30 minutes, including the learning time, refactoring etc.

What’s next? Well, the application now does all I need to. It could do with a nicer interface, particularly with respect to switching between managing Bookings and Projects. It could also do with some validation of entries – specifically dates. However, the thing that’s struck me most about this little application is the scope for it to grow. I’ve got lots of ideas as to how it could develop and I can forsee how these would be achieved. But the great thing is, it started out very small, with a very minimal set of requirements and it works.

Before I set up our company, all I knew were huge applications with thousands of requirements. This experience pretty much set the foundation for how we operated. Over the past 18 months we’ve discovered the flaws in this philosophy and we’ve recently made a radical change as to how we relate to our clients. Now we keep things simple. We do the minimum of what is required, whilst, of course, ensuring our clients are completely satisfied and demonstrating our excellence. Because of this, we can get new work more easily and develop things that are easy to use and easy to understand.

Leave a Reply

copyright ©2006 and so on, ninthspace.org, except quotations, lyrics and some images which are the rights of their respective holders