Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

Estimating Projects

Martin Fowler has a good post on the Fixed Scope Mirage.

Many companies like the idea of writing a contract that fixes scope and price because they think it lowers their risk. The mirage says that their financial obligation is fixed at the price of the deal. If they don't get satisfactory software, then it won't cost them.

I see this often when looking for new projects. The potential client has a project they want done, and they want it done in X weeks/months. Why? Because they're willing to pay X dollars for the software and their next door neighbor (whose in IT) did an estimate for them while they were drinking beers the other day. I've learned my leason with these clients - run! Any client that estimates how long it'll take you to do something is going to be a nightmare to work for. Furthermore, if you get the gig - you've likely told them that you could do it in their timeframe.

Even worse are clients that want you to do a 1-2 week project. These are a nightmare because they tend to want lots of functionality, but don't want to pay for it - hence the 2 week project. From my experience, I've learned to only take clients that allow you to do the estimating and have projects that are a month or longer.

Posted in Java at Oct 11 2004, 02:30:08 PM MDT 7 Comments

I'd be glad if all those clients out there would read this message. It's nothing but the simple truth !
Unfortunately, we never get projects that aren't fixed ...

Posted by Lars Fischer on October 11, 2004 at 03:50 PM MDT #

We used to have fun with this story in our office. Seems fitting.

Posted by Brad on October 11, 2004 at 04:05 PM MDT #

I love clients that want fixed budget/due date. This means that I can pick a price! I require only that I get paper mock ups of screens with all the fields before I give a due date and my price. I normaly get up front retainer if this is a 1st project w/ client.
I think what Matt is saying is that some clients are looking for slaves: they tell hem price, due date, etc. but not the scope. This is a great time to be a finder fee broker for overseas outsorcing, where you as a broker get a precent of all invoices but none of the risk

Posted by Vic on October 11, 2004 at 07:10 PM MDT #

Well, we should fulfill all our clients' needs !
These are the specifications:
  • Build a solid house
  • Build a fence around the garden with old trees
  • Quiet environment, good for playing children
  • Big window to look at the garden
Look at the result:

Posted by Lars Fischer on October 12, 2004 at 12:07 AM MDT #

FYI, the RSS feed link mistakenly goes directly to Martin Fowler's page instead of the blog entry.

Posted by Winston Rast on October 12, 2004 at 09:28 AM MDT #

After working full time in one government department (as DBA), during a long time (3 years), I've lost the notion how to measure my development and how to charge for that development. How do you measure your work? Is it by time? Or by unit of work (like a screen), where suppose we have: simple = value x; intermediate = value x+1; complex = value 2*x; Thanks for advice.

Posted by Gilberto on October 15, 2004 at 06:02 AM MDT #

Winston - this is by design. Roller allows you to enter a "link" for the post and this is the link that'll show up as the link to go to in RSS. Personally, I agree with you and think it's a flawed design. If you don't specify a link, the first link in the post is used.

Gilberto - I usually try to break things down into small features that I can estimate on. I know I can create a DAO/Manager/Action and it's associated master/detail screens in a couple of hours. Double that for issues along the way and it's a about a half-day to add a new screen for different things. Of course, knowing the requirements for the particular screen is also helpful. In a lot of cases, I'll create a static HTML prototype and use that to estimate on. The ability to estimate accurately is quite an art - one that you can only perfect through lots of experience. Using a tool like AppFuse helps you because you know how long it takes to implement certain features.

Posted by Matt Raible on October 15, 2004 at 10:31 AM MDT #

Post a Comment:
  • HTML Syntax: Allowed