Today the friendly UPS man brought me my copy of Agile Development with Rails, the LOPSA Book of the Month for April.
I was interested in this book because, although I haven’t been a professional developer for a very long time, I remain fascinated with new programming languages and (more importantly) new development methodologies. I’ve “done” everything from “Structured Design”, through various MIL-STDs, “waterfall”, “spiral” and “rapid prototyping”. I’ve encountered code (good and bad) from various “object oriented” methodologies, “extreme programming”, “SCRUM” and other recent attempts to “solve the programming problem”.
Now, as an IT manager, my group is often called upon to install, monitor and support the products of these programming models. Obviously, I’m interested in anything that will produce happy customers and sane, relaxed system administrators. I’ve been convinced for quite a while that it’s more about the discipline than the methodologies, but that some methods are more amenable to good programming discipline.
My company has several internal development efforts that will start soon. Almost all of them will deliver services via the web, involve databases, and be in high-stakes production for some time to come. I saw this book, and decided to see if there was anything here that I could leverage to help in understanding and supporting these efforts.
I’m completely new to agile development, Ruby and Rails. I decided to try this new language and new (to me) methodology, and to keep some online notes. As long as I have to keep notes, I might as well share them. Over the next month or so, I’ll discuss my experiences with Ruby and Rails, and try to evaluate and review the book as well.
Part I: Background and installation of Ruby and Rails, and “Hello, World!”
From the time I cracked the book until I had my first web app running was literally 30 minutes. I took about ten minutes to read the first four chapters, about ten minutes to go back to install Ruby and Rails, and about ten minutes to type in and play with the sample code. OK, so it’s only “Hello, World!”, but considering that I also had time to sample a homebrew, argue with a teenager, and check some email, that’s not bad!
The authors do a good job of explaining “Why Rails”, and the MVC (Model, View, Controller) architecture. Along the way they avoid getting bogged down in religious arguments about “agile development” and other methodologies. They also do a good job of setting up explanations of how and why Ruby and Rails abstract relational databases into objects. Ruby syntax is beginning to be introduced; just enough to get you going, and not enough to get in the way.
Hmmm, maybe there’s something to this agile development, and the Rails framework is certainly keeping things on track. I’m missing RCS/CVS checkin/checkout, but old habits die hard. I’m used to keeping almost everything I do under version control from the very beginning. I’ll have to see if and how this integrates with that model.