Skip to main content

Milk at the bottom of the bowl

Posted by daniel on February 18, 2005 at 7:14 AM PST

The importance of feedback

John Mitchell tells a story that every parent can relate to in
today's Weblogs . In href="">
Use less milk , his post on software estimates, he tells the story
of watching his little girl pour too much milk in her cereal bowl day
after day. Mine too.

While John heads toward lessons in software methodologies, he first makes the key observation:

She can see the surface of a pile of cereal in her
bowl and as she pours the milk, she sees the milk run off the surface
and disappear, by the time she sees the milk level come up towards the
surface of the cereal, it's too late.

We shake our heads at the little girl and wonder why she doesn't
learn from her experience and yet we adults aren't so quick to learn
either. We sit down to a holiday meal and find we've overeaten because
we ate too quickly and put too much food in our mouth before we got
the feedback that we were full several servings ago. There are plenty
of examples from the world of food and drink, but John steers the
story in the direction of software development. After you read his
post, check out our Also in Java Today story on early releases.

In other Weblogs, Kosuke Kawaguchi covers href="">
Using JAXB 2.0 to persist your own classes to XML . " One of the
major enhancements in the JAXB 2.0 is an ability to bind your own
hand-written classes --- often called as POJOs --- to XML. And it's
very easy." Simon Brown shares his story of being " bitten by the
collections framework" in href="">
Collections.unmodifiableX() .

As mentioned, another response to the two much milk syndrome is
addressed in
Also in Java Today
. Phil Windley writes about the
benefits of href="">
Running Code and Regular Releases. He argues "Any development
project, but particularly those for the Web, ought to plan to release
running code that someone (even just the QA group) can hit, exercise,
and start to profile. The initial system might be nothing more than a
loop and some placeholder presentation, but it should be there as soon
as possible after the project starts. There should be a regular cycle
of releases and engineers ought to be held accountable for supporting
the release with working code, even if its not feature complete." The
talkback adds "One-third of the variation in product quality was
explained by how quickly customers were given the first beta version."

If you're not using J2SE 5.0 yet (sorry, Mac developers), you're
missing out on variable-length argument lists or "varargs", which not
only let you offer your callers a more flexible means of calling your
code, they also enable 5.0's new C-like text formatting. You can
learn more about them in href="">
Creating varargs in Java 1.5 Tiger, an excerpt from Brett
McLaughlin and David Flanagan's "Java 5.0 Tiger: A Developer's
Notebook", which is presented as a 190KB PDF file, to maintain the
unique style and "all lab, no lecture" approach of the Developer's
Notebook series.

In Projects and
, the href="">Tigase project recently
released version 0.9.0 of its Jabber server software. This href="">Java Communications
Community project is meant to provide an easy to use,
pre-configured, fully spec-compliant XMPP Jabber server

The Jini Community's
ongoing webinar series
continues next Wednesday, Feb. 23, with a presentation on
"Self-Healing Distributed Applications", by R. Dale Asberry of href="">GizmoWerkz and the href="">judy project.

HLovatt says more about href="">
fixed and final in today's href="">Forums. "If you
use Immutables first off it is rare that you need const references
just use a const interface. If you use immutables you will rarely need
const references. Immutables do in practice solve many of the const
aliasing problems..."

Lucretius 2 says more about the href="">
overloading compromise. "Maybe the contract should simply be that
((a << b) >> b).equals(a). Unfortunately this doesn't
quite work for the normal use of << and >> for shifting. It almost
works though - similar problems arise with most of the arithmetic
operators, because even (a+b)-b).equals(a) doesn't quite work for ints
and floats (due to overflow)."

In today's
News Headlines

Registered users can submit news items for the href=""> News Page using
our news submission
. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href=""> News
RSS feed.

Current and upcoming href=""> Java Events :

  • February 28- March 3, 2005 href="">EclipseCon
  • March 3-6, 2005 href="">TheServerSide
    Java Symposium
  • March 14-17, 2005 href="">O'Reilly Emerging
    Technology Conference

Registered users can submit event listings for the href=""> Events Page using our href=""> 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 href="">Java
Today RSS feed. Also, once this page is no longer featured
as the front page of
it will be archived along with other past issues in the href="">

The importance of feedback