Wednesday 25 February 2009

NHibernate in Action

I just had a copy of NHibernate in Action delivered at work and I felt strangely sad about it. As a Java developer I read Hibernate in Action around 3 years ago and after flicking through the .NET variant I don't see a huge deal of difference. Obviously there will be differences but not enough for me to invest the time in reading the book cover to cover... I'll most likely skim it for some new stuff.

The thing that I find sad about it is, I think it kind of sums what I have learned, in the technology front at least, in the last 9 months. I've learned huge amounts about team leading, agile (in action), manufacturing and after sales. I just don't feel I've stretched myself enough. Maybe sitting next to Ian Davies for 6 months prior to leaving JPM gave me a false expectation as to what I could learn. Or maybe it's just that having tasted life working with Ruby every day (using the wonderful Marjoree and Rails) I don't want to go back.

I had the chance to make my day job an RoR one but I think I made the right decision not going down that road... at least in the short term. It would have been a selfish choice to choose Rails over ASP.NET MVC + NHibernate. Don't get me wrong I'm under no illusion as to what is the better option it's just I don't think it fits where I am at the moment.

Another thing that makes me sad is I can hear what Jim O'Brian said at SoR 2008 ringing in my ears, if you are a Java developer and want stretch yourself then .NET is not what you are looking for. He's right, C# is sooo close to Java. On the up side it has some nice features/syntactic sugar like Delegates, Lambda's, Extension methods. On the down side keywords like virtual and override make it more strict and verbose. However I don't think that's worth 9 months of investment.

Saying all that I am my own worst enemy, after installing ReSharper the first thing I did was choose the "IntelliJ" short cuts option :)

How does Agile cope with chaos?

Does Agile need a business that knows what it needs?

If things are chaotic where does an Agile software development team fit in. How can it help the business meet the expectations of it's clients?

I guess the answer to my first question seems straight forward, what does it matter if you are using an Agile method or not, if a business doesn't know what it needs then how can you ever satisfy it? Maybe you can. If a software development team can take those snippets of requirements that the business has time to give then feedback to the them with ideas and direction maybe it can help shoulder the burden the business finds itself under and do a larger share of the thinking for it.

I think this is possible but I also think it requires a strong, focused team. Without that there is a danger that they get drawn into the chaos and end up thrashing around, never reaching the magical "done".

One way to combat this would be to use a Lean method. At the very least, in a manufacturing environment where I am, terms like kanban are common and the busy guys wouldn't have to invest time learning about and attending iteration planning meetings... yes they are that busy!

But the thing I like about XP/Scrum agile is iterations, they provide a common goal for the team, a time box in which you feel motivated to deliver for the business and your team mates.

Somehow I feel this isn't one that's going to be solved overnight.