Thursday, March 11, 2010

Success Story - Using my Own Tool

I’m the founder and lead developer of Sculptor. Why would I write a success story? They should be written by users. Right, I’m a user of my own tool. This is maybe the key to why the tool is working as good as it does.

Since May 2009 I have been working with a customer in the logistics business. I’m involved in several projects but in my “main” project we develop a Track & Trace system. We receive events with parcel state information from several production systems in different countries. Volumes around 500 million tracking events during 6 months, which is the period we need to support track&trace searching.

In this department JEE was greenfield development. They have been using Java before, but not with application servers and modern frameworks. We established guidelines and tools for the new platform.

The introduction of Sculptor started with a technical prototype of the domain model. About 20 entities were developed in 2 days. Test driven. Of course this was only an initial draft, but it was important to quickly be able to try our ideas in practice. We have done a lot of refactoring of the domain model since then and Sculptor doesn’t sit in the way for doing changes. It simplifies change.

When evaluating Sculptor for the prototype my team developers stressed the importance of being able to remove the tool and continue without starting from scratch. It was good to see that the developers were able to quickly grasp the concepts and be able to use the tool immediately without any lengthy education.

When I and the other developers in my team had used Sculptor for a while another team wanted to try it also. I helped with converting existing code. The conversion and initial learning was smooth.

We listed the following benefits of using Sculptor for all new projects at the department:
  • Improved productivity. Generate code from high level description. Less manual mistakes. Relieved the developers from repeating and tedious programming tasks.
  • High quality of generated code. As if written manually, but better. We actually found several flaws in the hand written code when converting it to Sculptor.
  • Consistent design and structure. The department was running several projects in parallel, with different developers, and varying experience of JEE. Consistency between solutions was considered very important from a maintenance perspective.
  • Easy to learn. The developers that tried Sculptor found it intuitive to use. “It’s nothing magic”.
  • Great possibilities for customization. We did some adjustments to fit the database naming conventions.
  • Good design. The design of the generated code match our guidelines, JEE, JPA, DDD.
  • Easy to remove the tool. No dynamic runtime magic.
We have continued to use Sculptor successfully. We use Sculptor for all new projects. Several new developers have joined the teams and quickly learnt how to use Sculptor. We are 11 developers in 4 projects right now.


  1. Hello Patrik.
    Do you have any reference projects from technological upgrates point if view, where Sculptor has been used? I mean JEE tech.upgrades where components like EJB, JAXB, ... were changed using Sculptor.
    Many thanks,

  2. In my current proj we started with spring and then switched to the pure ejb3 implementation, because that was the corporate choosen platform. That was very easy.

    The samples dddsample and library has been evolved from hbm and spring XML config to annotations. that was also pretty easy, since almost all of that type of infrastructure code is generated.