Skip to main content

The hare wins a short race

Posted by daniel on June 9, 2004 at 8:24 AM PDT

If managers are rewarded for achieving short term goals, a tortoise doesn't stand a chance.

How do you react to a manager who instructs you to take time to ensure that your code is " high quality. Remember, two years from now all people will see is the mess, they won't see how fast you got it done. Nobody remembers the speed, they only remember the mess. So do it right". In Also in Java Today we point to The Tortoise and the Hare in which Robert C. Martin writes that they reacted with disbelief. Uncle Bob uses a tractor pull analogy to explain why, in the long run, it is better to "go well, not fast. Care about your code. Take the time to do things right."

The responses to his post are interesting - here are some highlights:

  • When you've spent a career doing projects with arbitrary deadlines set by quarterly revenue-driven, technically ignorant executives, what you believe is that this manager, like all the others, will turn into a crazed schedule-monster as the required release date draws near, driven insane by the heat applied to him from above.
  • ... since we weren't maintaining the code anyways, "clean code" truely wasn't as big of a priority as speed.
  • in most companies if a good quality project ships late then the managers will still get it in the neck whereas if poor quality project ships on time then the managers say "we did our best - obviously the dev team seem to be of a poor standard".

Then Chris Morris hits the nail on the head. "I think one reason it's hard for people to believe that going well will be ultimately faster is because it's a long term notion. It's an investment. I'm not penalized in the early stages of my project for not building extreme quality infrastructure, so doesn't it slow me down for no reason?" We won't get tortoises if we keep rewarding hares.

This doesn't disagree with the points that Bob raises in his article. Bob is talking about code in the long run. Code that will need to be maintained. Chris gets to the issue that management rewards are often based on achieving short term goals. How do we get people to appreciate and value that, to repeat, "two years from now all people will see is the mess, they won't see how fast you got it done. Nobody remembers the speed, they only remember the mess."

If you haven't yet, take the time to learn " the basics of how to write an Ant task in Java, compile and package it as a .jar, and put the .jar in a place where Ant can find it. [D]efine a task and invoke it within an Ant build file [then] do some experimenting." In Writing Ant Tasks he extends these basics to explore a Jing Ant task written by James Clark.


In today's Projects and Communities , the Jini community's UCLP project investigates the development of software solutions for enabling users to control interfaces on network elements for the purpose of establishing End-to-End (E2E) connections across optical networks.

The J2EE community has created the Blueprints project which builds on their published guidelines, patterns, and code with plans to move Java Adventure Builder Reference application, to java.net.


Can "a web service using GPL code on the server side could be called from a client?" In today's Forums, Joe Cole continues the Selling a Service thread by pointing out that " Because the client isnt actually distributing the code, it shouldnt be in violation? So as long as the server code is not distributed it should be fine? There are tons of GPL products I can think of which would be annoyed if this was possible. Quite a few are VERY expensive for commercial use."

John Reynolds considers the case for making your own stuff open-source. In the case of building blocks, "you can probably make the case that open-sourcing it will share the burden of maintenance. With more users and more eyes on the code, more bugs will be found and squashed. If "your own stuff" encourages folks to buy other goods or services from your company, then you can definitely give it away for free, but it's less obvious why you would benefit from releasing the source (unless it needs to be ported)."

Where is the comprehensive example on table sorting. Tackline writes, " just gives an example of how to use table models. Unless I've missed something (not unheard of) then there is no direct support for sorting tables within J2SE. You can't just write something along the lines of: table.setSortable(true);"


Jonathan Bruce's debut posting is JDBC 4.0, and JDBC Performance at JavaOne 2004 in today's
Weblogs. He writes briefly about JDBC 4.0 and previews related sessions at this year's JavaOne conference.


In today's java.net News Headlines
:

Registered users can submit news items for the href="http://today.java.net/today/news/">java.net News Page using
our news submission
form
. All submissions go through an editorial review by news director
Steve Mallet before being posted to the site. You can also subscribe to
thejava.net
News RSS feed
.


Current and upcoming
Java Events
:

Registered users can submit event listings for the href="http://www.java.net/events">java.net Events Page using our href="http://today.java.net/cs/user/create/e"> events submission
form. All submissions go through an editorial review before being
posted to the site.


Archives and Subscriptions: This blog is delivered weekdays as the
Java
Today RSS feed
. All java.net members can subscribe to the email
updates for the site at the href="https://java-net.dev.java.net/servlets/ProjectMailingListList">
java-net Mailing Lists page. You must be logged in to subscribe
to
the javanet_Daily and javanet_Weekly lists. Also, once this page
is no longer featured as the front page of
java.net
it will be archived along with other past issues in the href="http://today.java.net/today/archive/">java.net Archive.