Skip to main content

Caring about your work

Posted by daniel on February 6, 2004 at 9:13 AM PST

"The quality of the work you are doing is important. It contributes to the overall impact or effect of the project."

Pragmatic Programmers Andy Hunt and Dave Thomas talk with Bill Venners about software craftsmanship, the importance of fixing the small problems in your code (the "broken windows") so that they don't grow into large problems, and making design decisions that are reversible and adaptive in the java.net featured article Craftsmanship in the Face of Requirements . Andy explains technical debt.

Every time you postpone a fix, you incur a debt. You may know something is broken, but you don't have time to fix it right now. Boom. That goes in the ledger. You're in debt. There's something you've got to fix. Like real debt, that may be fine, if you manage it. If you've got a couple of those - even a lot of those - if you're on top of it, that's fine. You do a release and get it out on time. Then you go back and patch a few things up. But just like real debt, it doesn't take much to get to the point where you can never pay it back, where you have so many problems you can never go back and address them.

Dave provides the metaphor of your email inbox. If you don't answer email for a little while, soon you pass a level (for him around 250 messages) where you realize you are " never going to answer these messages. And it is the same with pending changes in software." Andy adds "As soon as something is broken - whether it is a bug in the code, a problem with your process, a bad requirement, bad documentation - something you know is just wrong, you really have to stop and address it right then and there. Just fix it. And if you just can't fix it, put up police tape around it. [...] It is as important to show you are on top of the situation as it is to actually fix the problem."

The article is the first of a two part "best of" from Bill's original interview with the Pragmatic pair. Their book the Pragmatic Programmer is one of those in my list of books I've had to buy more than once because I lend it to people and need to replace my own copy.


In
Also in Java Today

NASA's JPL site features the release of FastScript3D . Laurence Moroney's DevX article Take Your Web Pages to the Next Dimension with FastScript3D provides you with a quick introductory example. Moroney explains that "FastScript3D is a great technology that empowers you to develop in Java3D without getting into all the low-level programming that would normally be required for generating and manipulating 3D objects and scenes. Its extensibility allows you to generate your own scenes, commands, and object types for powerful customization. Because it is a simple scripting language, it opens up a new box of tricks for JavaScript (or indeed VBScript) developers. This is most useful in that it can offer simple, firewall friendly access to complicated applications."

Michael Nascimento Santos explains how to use a new feature of Tiger in a way that it may not have been intended in Playing with the Tiger: Measuring the size of your objects. He writes about the package "java.lang.instrument that allows you to intercept a class before being loaded and modify its bytecode, for example (can I hear standard entry point for AOP support? :-P). Well, let's use it for something different: measuring the size of some objects. "


In today's Weblogs , Michael Nascimento Santos is Playing with the Tiger: Measuring nanos . He shows "you how to use the new nanoTime() method in System. An important thing to notice is thatnanoTime()'s return and currentTimeMillis's are not necessarily related to each other - meaning they don't have to use the same reference to zero. This example also uses the new static import feature."

Chris Melissinos is a bit distracted. He asks Can you repeat that? I was busy crushing a civilization. He reports that he "downloaded the MIDP build for the PalmOS and found that it is pretty capable. Sure there are some issues with it on the Zodiac, but that is to be expected as the Zodiac is ushering in an entirely new generation of capability in the nerdy PIM world."


In Projects and Communities The Java Games community is electing a board of directors in the next week. The deadline for voting is February 13, 2004.

The Jini community home page links to the latest Enterprise Java Tech Tip on the JSP 2.0 Expression Language .


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.