Close and Go BackBack to Viget

Developers Want to be (Successful) Fighter Pilots

Kevin McFadden
Kevin McFadden, Former Staffer, February 15, 2007 0

Jeff over at Coding Horror relays a metaphor from Roger Sessions at MSDN describing how the technically inferior F-86 consistently beat the MiG-15 in dogfights and how it relates to developers.  The answer? Maneuvering the F-86 was easier on the pilot, resulting in less fatigue over repeated maneuvers.  Thus, a developer or project that iterates faster will yield better results than one that focuses on quality.

A man would do nothing if he waited until he could do it so well that no one could find fault.  ~John Henry Newman

Regardless of the accuracy of the metaphor, there’s one thing I’ve seen in almost every project over the course of the last 15 years:

what customers neededWhen a programmer thinks something is finished is never the same as a project manager or client.  It doesn’t matter how much planning you have, if programmers are rushed or relaxed, or how much testing occurred.  There are many types of programming projects (server, client-server, web, computation, etc.), and each one has its own idiosyncrasies; but, something is always forgotten, misinterpreted, corrected—or, the client just changes their mind.  Revealing these disconnects sooner will help minimize the number of surprise moments at delivery time, as in the swing-set example.

The big benefit of quick iterations is the feedback process.  Getting feedback sooner than later is always good, assuming the client can accept that what they see after an early iteration is not representative of the finished product.  The quick feedback process applies to the developer as well since automated tests minimize the refactoring and validation time, allowing you to handle change with minimal pain.

As Jeff says, “when in doubt, iterate faster.” It’s not always that simple when working with external clients, but successful fighter pilots developers know that without agility, it’s tough to be successful—especially with web projects.

Viget Labs Presenting at Rails Conf ‘07

Patrick Reagan
Patrick Reagan, Development Director, February 04, 2007 3

As details about registration were released, we were excited to hear that the proposal Ben submitted (“Building and Working with Static Sites in Ruby on Rails”) was chosen as one of the presentations for the conference.  The material for this talk comes from his work developing and deploying a mini-framework within Rails to handle custom content management and presentation of static content.  This allowed us to deliver a fully functional site to the Alexandria Convention and Visitors Association without the need for them to continue hand-editing their event listings.

Besides the talk he will be delivering at Rails Conf, Ben has been active in the Rails community for quite awhile.  Most recently, he was ranked #8 in the Working With Rails Hackfest competition (sponsored by CDBaby) and has had several patches accepted into the Rails core.

If you’re interested in heading to this year’s conference, local user groups are offering discount codes to help defray the registration cost.  If the current rate of sign-ups continues (1/3 of the seats were filled the first day), this event is sure to sell out quickly!

A Development Community for Viget Labs and Beyond

Every team member here at Viget Labs strives to be an innovator. We members of the development team are no different - that's why we're constantly engaging in community discussions and exploring the unknown that is the next generation of open-source web applications.

Viget Is Hiring!

Viget has job openings for Ruby Developers, Interns, and Front-End Developers. Learn More »

Recent Comments

In my quick testing of this it does still work if you chain items after the cache name:

Category.top_level.other_scope

But important to note is this will still make a call to the database, it will not take advantage of the cache. Of course the actual scope, in this case find_top_level is unchanged and so you can still do any chaining with that, which also of course won’t use the cache.

As a final note though if you’re needing to do much chaining, caching in this way may not be best for your particular situation. The idea of the cache is if you need to retrieve the exact same result set over and over again, and it rarely changes you shouldn’t have to hit the database.