password
username
Sponsored by CakeMail, an email marketing software.
Newsletter preview

Tuesday, Sept 9, 2008

Give Users a Web Portal for Creating BIRT Reports

The BIRT Designer for End Users is an AJAX-based report development tool for users to access the data they need and create BIRT reports without direct IT intervention, but within IT control. End users can create charts and graphs; add and rearrange data; and change report formatting.

Watch the Demo and Learn More

Perspective

Protect Your Code: 30-day Protecode Trial



Visit the DZone Tech Library



Be sure and
check out a
No Fluff Just Stuff
Java conference
coming your way!

09/12-09/14 Boston
09/19-09/21 Seattle
09/26-09/28 Calgary
10/10-10/12 Minneapolis
10/17-10/19 Toronto
10/17-10/19 St. Louis


A Developer's Perspective
Next section
Steve Rowe has worked at Microsoft Corporation for ten years and is currently a Test Development Lead working on Windows..

Not Everyone Has the Same Definition of "Done"
By Steve Rowe

Years ago I had an employee, let's call him Vanya (not the real name).  He was struggling a bit so I was watching his work closely.  Every week we discussed what he needed to get done the next week and what he had done the previous week.  I kept a list of the work items he needed to complete and checked them off when he was done with each.  For one particular work item which was testing a particular DirectShow filter, the item on the list was writing tests for it.  One week he worked on and completed this work.  A few months later we became aware of an issue that would fundamentally cause the filter to not work.  In fact, it had probably never worked.  Why, I wondered, didn't Vanya's tests catch it?  I went to speak with him.  It turns out, he had written the tests.  They had compiled. He had not, however, ever actually run them.  They were "done" in his mind, but not in mine.  Oh, and what he had written didn't actually work.  Shocking, I know.

I tell you this story to introduce a problem I've run into many times on many different scales.  This story is probably the most egregious, but it is certainly not isolated.  The problem stems from the fact that we rarely define the word.  It is assumed that everyone shares a definition but it is rarely true.  Is a feature done when it compiles?  When it is checked in?  When it can run successfully?  When it shows up in a particular build?  All of these are possible interpretations of the same phrase.

It is important to have a shared idea of where the finishing line is.  Without that, some will claim victory and others defeat even when talking about the same events.  It is not enough to have a shared vision of the product, it is also necessary to agree on the specifics of completion.  To establish a shared definition of done, it is necessary to talk about it.  Flush the latent assumptions out into the open.  Before starting on a project, it is imperative to have a conversation about what it means to be done.  Define in strict terms what completion looks like so that everyone will have a shared vision.

For large projects, this shared vision of done can be exit critera.  "We will fix all priority 1 and 2 bugs, survive this many hours of stress, etc."  For small projects or individual features in a large project, less extensive criteria is needed, but it is still important to agree on what will be the state on what dates.

While not strictly necessary, it is also wise to define objective tests for done-ness.  For instance, when working on new features, I define "done" as working in the primary scenarios.  Bugs in corner cases are acceptable, but if a feature can't be exercised in the main way it was intended to be, it can't be tested and isn't complete.  To ensure that this criteria is met, I often insist on seeing the feature demonstrated.  This is a bright line.  Either the feature can be seen working, or it cannot.  If it can't, it isn't done and more work is needed before moving on to the next feature.

Until next time,
Steve Rowe

To read more of Steve's work, visit his blog.

 

Code Signing for Java: What's in it for you?

Learn how VeriSign Code Signing Digital Certificates can help protect your company brand by ensuring that the code you have developed passes stringent vetting and is secure to deliver to the end user. Read about this in this free white paper.

Read this whitepaper now!
DZ Top Links

DZone Top Links
Next section
Back to top
most clicked this week from dzone.com

dzone

Most-clicked links this week


 
Popular at JL

Popular at Javalobby
Next section
Back to top
A recap of some of the most popular and active Javalobby.org discussions this week.

Struts2 Refcard

Struts2 is the next generation of model-view-controller web application frameworks. It aims at providing increased productivity through reduced XML configuration, smart conventions, and a modular and loosely-coupled architecture. In this Refcard we list and explain the configuration elements to make the most of your Struts2 application. Download now.

0 replies - 700 views - 09/07/08 by Ian Roughley in Refcardz

An Introduction To JBoss RichFaces

This tutorial article will give a very quick introduction to JBoss RichFaces. Instead of just listing features, we are going to briefly define RichFaces and...

12 replies - 9046 views - 08/25/08 by maxkatz in Articles

Video: Hug a Developer Today

"We're 4 months into a 5 month schedule and I just received the requirements yesterday..."

4 replies - 5846 views - 09/01/08 by Geertjan Wielenga in Videos

How to Choose a Java Desktop Framework

Unlike web frameworks, Java desktop frameworks are not a dime a dozen. There are, to be exact, four—Eclipse RCP, Swing Application Framework (i.e., JSR-296),...

12 replies - 5314 views - 08/27/08 by Geertjan Wielenga in News

EJB 3.0 and Spring 2.5

Why is it that developers from these two communities don't like to see eye to eye?

25 replies - 4071 views - 08/27/08 by Meera Subbarao in Articles

An Introduction to Aspect-Oriented programming with JBoss AOP

JBoss Application Server ships with support for aspect-oriented programming, so you can use AOP in your applications deployed in JBoss AS. JBoss AS 5, which is...

4 replies - 3496 views - 08/28/08 by Kabir Khan in News

An Account of Developing a Hybrid Java/Flex Application

Mariusz Saternus is a Polish Java Developer, currently working in the UK. He recently became interested in the idea of writing a hybrid Java/Flex application....

2 replies - 3486 views - 09/05/08 by idr-mariusz in News

The Capability Pattern: Future-Proof Your APIs

Here is a simple pattern which you can use to make your APIs extensible, even by third parties, without sacrificing your ability to keep...

0 replies - 3318 views - 08/29/08 by Tim Boudreau in News

White Papers & Announcements

Product Announcements
Next section
Back to top
Product and service announcements for Java developers.

TDD Like You've Never Seen it Before

Test-driven development is a popular (but not yet mainstream) practice for developing software in fully-working increments of functionality. Advocates claim it...

0 replies - 1467 views - 09/03/08 by jdegoes in Announcements

VisualVM 1.0.1: Bug Fixes & Three New Plugins

VisualVM 1.0.1 has been released. VisualVM is a visual tool that integrates several existing JDK software tools and lightweight memory and CPU profiling...

0 replies - 1216 views - 09/05/08 by Jiri Sedlacek in Announcements

Instantiations Updates GWT Designer for Google Web Toolkit 1.5

Instantiations today announced the release of GWT Designer™ 5.1. This major version upgrade of the product includes support for GWT 1.5 as well as basic...

0 replies - 958 views - 09/03/08 by martag in Announcements

Oracle Enterprise Pack for Eclipse Now Available

Oracle Enterprise Pack for Eclipse Now AvailableExtends Tooling Component of Oracle® Fusion Middleware with Initial Release of Java EE Plug-insRedwood Shores,...

0 replies - 851 views - 09/02/08 by meredithob in Announcements

it@cork Java Conference

Now a significant event on the annual tech calendar in Ireland, the java@cork conference attracts hundreds of developers every year. In response to it@cork...

0 replies - 631 views - 09/02/08 by James Sugrue in Announcements

LAMEOnJ 1.2 - New Object Oriented API for Decoding MP3 to WAV/PCM

LAMEOnJ is a 100% Java library mapping in Java the complete C API of LAME, the popular MP3 encoder and decoder. The Java-native impedance is solved with...

1 replies - 479 views - 09/03/08 by Jose Maria Arranz in Announcements

DbWrench Database Design v1.5.1

Version 1.5.1 of this database design and round-trip engineering software has been released.

0 replies - 458 views - 09/03/08 by Harnek R in Announcements

The New Generation of Unified Objects

The UJO Framework was essentially extended to version 0.80. Some news are:

0 replies - 368 views - 09/08/08 by ponec in Announcements

DataDirect Technologies Announces Version 4.0 of its Industry-Leading JDBC Database Drivers

Data connectivity and mainframe integration leader, DataDirect Technologies announced the availability of its DataDirect Connect® for JDBC™ database drivers...

0 replies - 280 views - 09/03/08 by aharned in Announcements

Your Account

Your Account
Next section
Back to top
Manage your account info for this and other Javalobby publications.

Manage your Javalobby membership details

Click on the following links to:

Contact Info
Next section
Back to top
Here's how to reach us, we love to hear from you.

Email us
Send news items to editor@javalobby.org
Send questions, complaints, or suggestions to feedback@javalobby.org
Send advertising inquiries to advertise@javalobby.org
 
  Call us
  Our number is (919) 678-0300. We'd love to hear from you!
Legal
Back to top
The fine print we'd rather avoid completely.
  Feel free to redistribute this newsletter in part or in full to your friends.
 
Javalobby News is a service mark of DZone, Inc.
Copyright © 2001-2008 DZone, Inc.

Thank you for your continued support of Javalobby and DZone. Click here if you prefer not to receive the Javalobby weekly newsletters.
DZone, Inc. - 1251 NW Maynard Rd. - Ste. 300, Cary, NC 27513 - (919) 678-0300