Monthly Archives: August 2013

SyncNorwich Agile August

What is Agile? Such a seemingly simple question can cause a great deal of debate. It’s little wonder then that when you ask three speakers to talk about Agile they answer the question in three slightly different ways.

When I was invited to speak at the SyncNorwich I was very conscious of the fact that I was a relative newbie to the scene and that my team don’t practice a named Agile methodology1. While I could explain our process in detail I’d didn’t think it wild be beneficial as it’s something we’ve put together to meet our needs – it’s tailor made for my team and where they are now.

I could just roll out this “this is Scrum, this is Kanban” talk, but it’s been done to death and I can’t stand there in good faith and tell people to practice something I don’t actually use. That did get me thinking thought. Why don’t I use pure Scrum, or pure Kanban? The reality is that, while both methodologies look great on paper, the real world has a nasty habit on getting in the way. So why not talk about that?

What was really great was the two other talks that night also focused on how two very different companies have adopted Agile to meet the realities of their world. One the one hand you’ve got Aviva with a variation of Agile that may look ponderous and lumbering to much smaller companies, but that is surprisingly nimble for such a massive organisation. On the other hand is Axon Active who are a very distributed company using Scrum as a fantastic tool for communicating between remote working colleagues. By contrast Virgin Wines is a fairly traditional SME with a single dev team located in one office, although we do suffer from our own unique set of problems.

Each talk brought home the core principles of agile with small, iterative steps and tight feedback loops, and then looked at how it applied to the realities faced by each organisation. The purists may declare us to be “wrong“, but I’d argue they’re out of touch. That’s not to say our implementations of Agile are necessarily “right” either, we just believe them to be “right” for where our companies are right now.

1What we currently use is a mishmash of Scrum and Kanban which doesn’t fit into the pigeonhole of Scrumban. We’re also sort of Xanpan like, and we are heading in a more Xanpan direction, but I don’t think we’ll ever end up being true Xanpan. Since names like Scranpan are verging on the ridiculous I would, if I were forced to give our methodology a name, call it Fred. Not that it matters hugely, give it 3 months and we’ll be practicing something slightly different (which we’ll call Steve for arguments sake).

Issues with GlassFish on OSX

I’ve been trying to get GlassFish 4 to install on my laptop on and off for the past two days now. Needless to say, it’s not being going well. Initially I tried the native install (export DISPLAY=localhost:0.0 btw 🙂 ), it hung trying to configure the domain. Trying to configure a new domain from the command line yielded:

./asadmin create-domain --adminport 4848 --instanceport 8000 domain2
You do not have permission to use port 4848 for domain2. Try a different port number or login to a more privileged account.

Nothing on port 4848 and even running the command as sudo root didn’t work. Next up, the zip install. The comes with a preconfigured domain and a new error trying to start it:

./asadmin start-domain domain1
There is a process already using the admin port of 4848 -- it probably is another instance of a GlassFish Server

Resorting to Google and I finally worked out that my hostname wasn’t in /etc/hosts. Being on the work network I’ve been assigned a hostname by the DHCP server rather than the sulaco.local it usually is. A quick google for setting the hostname on a Mac got me [this][] and I was able to run

sudo scutil --set HostName sulaco.local
./asadmin start-domain domain1

Lo and behold, GlassFish has started.

Headless Java Process

Someone1 has updated things on OSX so that when a Java process runs it spawns a little coffee cup icon in the task bar which then steals focus. I’m sure whoever did this thought it would be a wonderful idea which no doubt has some benefits if you think really really hard. If, on the other hand, you’re a dev with a build process that spawns JUnit as a forked process many times during the course of the build, then this new behaviour can be considered a tad on the annoying side. Thankfully a quick moan at Google yielded the following magic:


I’ve added this little gem into our build scripts by using:

<junit printsummary="on" haltonfailure="true" fork="yes">
    <jvmarg value="-Djava.awt.headless=true" />
    :    :    :

And I even hear rumour that you can set export JAVA_TOOL_OPTIONS='-Djava.awt.headless=true', although that’s uncorroborated hearsay at the moment – depends how many scripts I need to update as to whether I go for the global solution.

1Oracle, I’m looking at you… and Apple, don’t think I don’t hold you at least partly responsible.