NetBeans 6.7 beta

After having used NetBeans 6.7 Milestones for a while, I was very happy when the beta was released yesterday. I immediately installed it and started trying it out. The milestones had a tendency to use a LOT of cpu, but so far I have not experienced this with the beta. Maybe since I was stuck up in meetings yesterday and did not have time to code. Today will be better 🙂

Some Highlights

  • Connected Developer (Kenai)

    Create Kenai-hosted projects from within the NetBeans IDE
    Locate and open sources for Kenai-hosted projects in the IDE
    Full integration with Bugzilla

  • Maven

    Support for Web Services creation and consumption and J2EE
    POM Editor and Navigator enhancements

  • PHP

    Code coverage and Selenium support
    PHPUnit output improvements

  • C/C++

    Support of popular Qt library and tools

  • Groovy and Grails

    Out-of-the-box support for Grails 1.1

  • Profiler

    Enhanced Self Diagnosis (“Profile Me Now!”)

  • Java ME / Mobility

    Full support for SVG Rich Components in the Visual Mobile Designer

Kenai

Kenai is Sun’s connected developer destination. It is a integrated suite of developer services where you can host your open source projects. Currently the following features are supported:

  • Source Code Management (Subversion, Mercurial, and Git)
  • Issue Tracking (Jira and Bugzilla)
  • Wiki
  • Forums
  • Mailing Lists
  • Download facility for documents
  • Evolving integration with NetBeans

When you create an account at Kenai, you can host up to five projects for free. I imported two of my hobby projects to try it out, and I liked it. See wikipedia for a comparison of open source software hosting facilities.

JUnitMax

Kent Beck has released JUnitMax.

“JUnit Max is an Eclipse plug-in that helps programmers stay focused on coding by running tests intelligently and reporting results unobtrusively. Every time you save a Java file, Max will run your tests and report errors like compile errors. In addition, Max runs the tests most likely to fail first, so you only have to pay close attention to test results for a second (literally) before getting back to coding, even if you have a long-running test suite.”

Running tests in the background is nothing new. A continuous testing plugin for Eclipse has existed for a while. What is new here is the logic deciding in which order the tests should run. But I am not sure people are willing to pay $2/month for it. There are too many free tools out there… I will be waiting for the NetBeans plugin before i give it a try anyway…

Integrating with ScrumWorks

In an earlier post, I wrote about ScrumWorks. After having used it on a couple of projects I have gathered some thoughts here.

I usually prefer the good old whiteboard with post-its or an Excel sheet to track progress and generate burndown charts. But ScrumWorks has proved to be an excellent alternative to these old techniques. Developers find it pretty easy to use, and ScrumMasters get a pleasent user interface and a nice burndown chart almost for free.

So what is the downside? Well, sooner or later you will be asked by management to report progress. And managers are usually not willing (or capable) to using any unfamiliar tools, so you end up exporting the data to make some burndown chart or excel sheet available for them. This type of status reporting is overhead (or waste in lean terminology) and boring.

Luckily, ScrumWorks has a decent Web Services API which makes it fairly easy to extract the information you want. For example generate live burndown charts automatically on a wiki, or use the task information in ScrumWork to verify valid commit comments in a Subversion hook script. Imagination is the only limit…

Value Stream Mapping

Value Stram Mapping has been around for years, but it is only recently that I started hearing about it in the context of software development. Maybe the renewed attention can get us to focus at the whole process rather than only the development part?

Nearly all projects I have either been involved in or heard of that claim they are using Scrum, are only using it for the development part of the process. The total process from an idea is born until it is in production usually consists of a gazillion boxes and arrows where the development part is one of the boxes. By optimizing this little box (for example by introducing Scrum), the process efficiency (if you are lucky) maybe increases from 4.0% to 4.1%…. Is this what we call sub-optimizing…?

Value Stream Mapping can help us optimize the parts that really gives impact and is an excellent tool for removing waste.

NetBeans 6.5

NetBeans 6.5 is now available for download at netbeans.org. I have been using the beta and release candidates for some time now, so there should not be too many surprises. The feature I am happiest about right now is that it is possible to configure projects independently. This enables me to push out code conventions in the root pom.xml file for the entire project. Hence there is no excuse for not following the conventions 🙂

Download NetBeans!

Mockito

If you are going to set up a completely new greenfield project, I would definately consider using Mockito as mock framework. It expressive and very intuitive, and results in less boilerplate code in your tests than for example EasyMock.

Very few of us are so lucky to be setting up a completely new project, but are stuck with legacy code that probably require more advanced features than those offered by Mockito. In this case I would probably go for a combination of EasyMock and PowerMock.

PowerMock

The last couple of weeks, I have been testing a mock framework called PowerMock. See The PowerMock website for more information and download.

The short version is that this framework extends Easymock and lets you mock static methods, private methods, construction of new objects, bybass encapsulation and more to enable testing of code that used to be considered difficult (or impossible…?) to test.

JAVA+YOU

Java+You is the theme of JavaOne 2008. No question about it! The feeling I have after day 1 of this year’s JavaOne is that the focus is on the integration with the consumers as well as the developers in all daily-life situations. Rich Green talked a lot about the “Screens of you life” in his keynote today. Whether you read a book, check you bank account statement, chat with friends on you mobile phone or navigate in you car it is all Java… it is the consumer that drives the change…!

This year they even brought Neil Young on the stage to talk about his new interactive blue-ray disc and the way Java technology has enabled him to produce his memorabilia in a format that he feels is what his fans wants – an interactive history of his musical career.

All in all a more or less typical JavaOne day one show. This is my ninth time at JavaOne, so I think I am entitled to say that 🙂

Java+ME