Outside-in development often feels strange to newcomers. Most developers prefer to start with the “important” part of an application … Thinking like a server and not a client can lead to overengineering by implementing more than you need. Your resulting objects and their interfaces will also be less than optimal, or at least take longer to get quite right.
We have started exploring test drive development in class, which can be a bit of a conceptual shift. TDD goes hand in glove with Agile practices because it encourages rapid delivery of working code, in discrete steps. As a bonus it creates a living document of the development process that can be used further down the road of an applications life-cycle to make sure that no new code breaks any of the old code.
The quote above comes from an excellent blog entry by Jared Carroll, Beginning Outside-In Rails Development with Cucumber and RSpec. Jared gives an overview of how TDD should work. Anyone getting started in TDD should read it and let it sink in.
On another note, as aspiring junior web-devs, this recent thoughtbot podcast is worth listening to: podcast #59: Nowhere to Hide.
In the episode, Ben Orenstein speaks with thoughtbot CTO Joe Ferris about the technical interview process at thoughtbot, and more.
Thanx for reading, stay tuned for more from the frontlines…