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

Tuesday, Aug 19, 2008

The Best Way to Start Designing Reports with BIRT

Take full advantage of Eclipse BIRT reporting technology with Actuate's new Best Practice BIRT Report Design Package. Start with a thorough overview of BIRT in a 2 day training class and then get an expert consultant's help for 3 days in identifying the best practices that are specific to your project.

Get the details on BIRT Best Practices here.

Perspective


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

08/22-08/24 Orlando
09/12-09/14 Boston
09/19-09/21 Seattle
09/26-09/28 Calgary


A Developer's Perspective
Next section
Jesse Noller (jnoller at gmail.com) is a senior software engineer for Blackwave, Inc in Massachusetts. He's been working with Python for over five years, on a variety of projects (distributed systems, automation frameworks).

Steve Yegge: Your requirements are stupid
By Jesse Noller

Lately, I've been ruminating on requirements and requirements management (also known as disaster control). I was actually typing something up on this, but Steve Yegge hit the nail on the head - then he rammed it through the board and into the house next door:

Anyway, there you have it: the slightly expanded version of the email I sent that CEO guy. Gathering business requirements is hokum. Hooey. Call it what you want, but it's a sign of organizational (or individual) cluelessness. If you don't already know exactly what to build, then you're in the wrong business. At the very least, you should hire someone who does know. Don't gather business requirements: hire domain experts.

Also, FWIW, here's the hackernews discussion. Here is a link from one of the comments pointing to something Linus once said about specs:

they're dangerously wrong. Reality is different, and anybody who thinks specs matter over reality should get out of kernel programming NOW. When reality and specs clash, the spec has zero meaning. Zilch. Nada. None.

I think one of the comments also added something spectacular - noting that "building something for yourself" is why so many open source projects flourish. If you're building something useful for yourself - there's a high chance that someone else is going to want to A>Use it B>Buy it - "building for yourself" is also in some ways, "keeping the vision clear".

One of the key concepts which seems to be the undercurrent to what he talk about is vision. You need someone who can stand up and say "this is what the product is, does and where it is going". You need that visionary who can clearly outline what itch you are trying to scratch. In open source - that's the project "core" - in business, it's the CTO or founder. It's always the person that had the itch, they've "walked a mile in the shoes" so to speak.

That vision has to be the core of both the product, and all of the requirements - this "clarity of vision" (some might say "simplicity of vision") is what makes so many projects and products successful.

Sure - as you grow you'll add features: You don't want to stagnate - but those features have to make sense - they have to mesh with the core vision of the product. You don't add a source code management service to say, twitter.

Why? Because even if 1 customer thinks "that it would be AWESOME" - you're going to spend $X hours of engineering time gluing a volvo on the side of your battleship, and unless those $X hours are compensated by the amount of money the customer is willing to pay (it never is) you've wasted time, and muddied the functionality and philosophy of the product. It's about as useful as a screen-door on a submarine.

When you're thinking about requirements ask yourself this: If at the start, you can not describe exactly what your product does in under a minute - you've already got a problem. If adding this feature makes it even harder to describe/encapsulate the vision and capabilities of the product you're rapidly running towards wronger-than-wrong.

If you yourself would not use the feature: Does it really make sense? When a customer requests a feature - does it make sense for anyone outside of them? Would you be better served by providing an API and an SDK?

This is the beauty of things like a clean API - you can keep the philosophy and core of the product/project clean and empower your users to build any number of things they want on top of your product. Keep it simple, keep it clean. Empower your users to "mashup" as they need or want to.

Think of it terms of cooking: If you wouldn't eat it yourself, in all likelihood your customers won't like it, at best it will be mediocre. The best chefs taste and consume what they cook.

Right now I'm wishing Brian Fitzpatrick's keynote from pycon: "You *can* Fool All of the People All of the Time" was online in video form.

Until next time,
Jesse Noller

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


FREE Cheatsheets for Developers

  • Written by bestselling authors and leading experts
  • Reliable information on major developer topics
  • Filled with useful tips and source code examples
  • PDF looks great on-screen or printed from your printer
Save time and stay well-informed - Download 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.

Very First Steps in Flex Refcard

Rich Internet Applications and Flex are taking off. Many developers need to learn Flex fast. This refcard will help readers get started learning Flex. Firstly, a simple “Hello, World” application which will help familiarize readers with the Flex Builder tool and programming model. Download now.

0 replies - 700 views - 08/18/08 by Bruce Eckel and James Ward in Refcardz

Certifications - May I See The Menu?

At JavaRanch and JavaBlackBelt, we frequently see questions from developers trying to get their first job or advance to a higher level job.  They wonder if...

3 replies - 3435 views - 08/12/08 by John Rizzo in Articles

Neater Java

In Java 5, as all good Java developers will know, Sun introduced the enum type. Since I’m sure anyone who is interested in what will follow knows that...

9 replies - 2787 views - 08/14/08 by GaryFleming in Articles

Closures - Breaking the Deadlock

The decision threads about closures are currently in a situation that can best be described as a deadlock. BGGA has the most proponents, but also the biggest...

29 replies - 2573 views - 08/14/08 by Mikael Grev in Articles

On Java Exception Handling

I came across a series of blog posts by Daniel Pietraru that deal with the use of exceptions in Java programming — I love it. The exception framework in Java...

34 replies - 2437 views - 08/12/08 by hchen1 in Articles

Rapid Web Application Prototyping with Maven and Groovy

Utilizing both Maven and Groovy you can rapidly prototype web apps, and in this blog I'll walk you through exactly how to do that. First we are going to create...

0 replies - 2092 views - 08/14/08 by Schalk Neethling in News

Scala Actors 101 - Threadless and Scalable

Application performance is no longer a free lunch, and with current hardware trends of cores-for-the-chores, the search is on for the programming model that...

2 replies - 1983 views - 08/12/08 by Debasish Ghosh in Articles

 
White Papers & Announcements

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

NetBeans IDE 6.5 Beta is Out!

The NetBeans IDE just keeps getting better! New features in 6.5 Beta include support for Groovy and Grails, built-in support for Hibernate, Compile/Deploy on...

0 replies - 1411 views - 08/13/08 by wen1900 in Announcements

Oracle Removes Licensing for Workshop Eclipse Plug-ins

Oracle is delivering the Eclipse tools for Oracle WebLogic Server 10gR3 with a simpler packaging (just one, with all features), and a new price (free!). This...

11 replies - 1338 views - 08/12/08 by Pieter Humphrey in Announcements

Caucho's Resin 3.2.0

Caucho Technology has just released the latest version of the Resin application server, Resin 3.2.0.  If you haven't had a chance to try Resin or haven't...

1 replies - 726 views - 08/11/08 by Emil Ong in Announcements

JECO: Lightweight, Standalone, Spring-based Container

It has been few years now during which I had a constant dream: to have the availability of a stand-alone, easy to use, Java-based container to deploy java...

0 replies - 719 views - 08/13/08 by Marco Tedone in Announcements

Hazelcast 1.1 Released: Http Session Clustering and More

After a successful 1.0 release, Hazelcast, free data distribution platfom for Java, is now helping developers with new tools and features. So what is new in...

1 replies - 625 views - 08/14/08 by Talip Ozturk in Announcements

Podcast Feed for Java Developers Interested in SOA, BPEL, BPMN and CEP

Active Endpoints has a lively blog on which we post a broad range of materials of interest to developers working on or interested in SOA, including educational...

0 replies - 612 views - 08/14/08 by ActiveAlex in Announcements

simject: Simple Dependency Injection

During my private studies on dependency injection (DI), dynamic proxy, remoting, Maven2 and JPA I started to create a small very simple dependency injection...

6 replies - 567 views - 08/15/08 by Simon Martinelli 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 newsletter,

DZone, Inc. - 1251 NW Maynard Rd. - Ste. 300, Cary, NC 27513 - (919) 678-0300