Ever since I read Mike Cohn's book Agile Estimating and Planning, it has been a great help in doing Agile projects. One of the ideas that I like very much is to estimate user stories on a product backlog in an abstract measure: story points. Story point estimates only need to be correct relative to each other. Having such estimates allow you to monitor velocity: how many story points can be done in an iteration. Based on velocity and an estimated product backlog, decisions about scope, schedule and budget can be made and continuously refined a very informed way.
The most common way to estimate user stories on a product backlog is by doing a planning poker session. However, in my experience it is pretty hard for a team to do this effectively for a big list of user stories. Therefore I tried out another approach.
(more...)
Filed under Agile | 4 Comments »
By Jeroen Borgers
Last week I instructed an in-house performance tuning course and explained the participants about the threading optimizations in the Java 6 VM. We run the exercises of the course on Java 6 update 11 and when I told them that Escape Analysis did not work properly yet, I realized I did not really know this for a fact for this update of Sun’s Java. So, it is time to re-run the benchmark and find some unexpected results. (more...)
Filed under Concurrency Control, Java, Performance | No Comments »
A colleague asked me whether jconsole could connect to a running IBM Webpshere 6.1 instance. This way you could gather performance data and work with Mbeans like with any other 1.5+ JVM. I had never tried this, but I quickly saw that jconsole is provided with the websphere jvm, so I said I would give it a try.
The forum posts all complained that it wasn´t possible, but I combining several entries I got together a working solution. This is typical of websphere, it´s a little harder, but in the end you can get there.
(more...)
Filed under Java, Middleware, Performance | 6 Comments »
When you use Hibernate for ORM and come across some functionality that requires multi threading, there are many pitfalls that might make life difficult for you. This blog will focus on those problems. Conclusion is: don't use hibernate managed objects in multiple threads.
(more...)
Tags: lazy initialization exception, lost update, multi threading, transaction
Filed under Hibernate | 7 Comments »
I was writing my n-th Dao implementation, this time using JPA.
I (and probably a whole lot of others) usually create a DAO per entity, parameterizing the entity type.
Specific DAO instances for entities implement the generic DAO using their entity type as type parameter. One generic DAO implementation exists, containing common operations like findById, persist, remove, etc. This generic DAO uses the class type specified by the implementing DAO classes (e.g. a Person) to manipulate or query the entity specified by this type. The (slightly) annoying problem for me has always been to instantiate that entity type in the generic DAO superclass. I've always done this by just creating a constructor in the generic DAO which takes a class argument containing the required Class of the entity. However, there's a better way, which I'll show in this post.
(more...)
When developing an AJAX application you often end up with some data interchange format, like XML, plain text, or, in my case: JSON. The trouble with JSON, however, it that's it's quite hard to read. Not because it's so complicated, but because it has been optimized for network communication, which in this case, means: all the whitespace has been stripped. Wouldn't it be nice to have an integrated JSON formatter in your IDE to handle this? Well, now it possible!
You have opportunity to work on an Agile Offshore project. It simply means now your project can be delivered faster and cheaper if you get it right. I would like to share some tips with you that have helped Distribute Agile Offshore projects become successful:
Before I write about 11 tips to make a Distributed Agile project successful, I would like to start with Tip #0.
Tip #0: You should have technically bright people in the team. This is a prerequisite to make a Distributed Agile Offshore project successful. My other tips will not make technically dull programmers deliver a successful project.
(more...)
Tags: Agile Offshore Distributed
Filed under Agile, offshore | 1 Comment »