February 2009


I can see one potentially good thing coming out of this global recession – every night when I go to bed I pray that it will once and for all drive the bullshit out of the software industry.
Unfortunately, for a number of years, shadier sides of the industry, including big consultancies have thrived on bullshit, buzzwords, waste and intellectual intimidation. Buzzword after buzzword has been paraded across the industry: 4GL languages, Case Tools, MDA, SOAP, SOA, ESB, garflaffetyfloff oriented architectures et al.
Sometimes there has been a grain of usefulness in all this, but most of the time it has been drowned out by the general noise of salespeople trying to make a buck, consultants trying to make their name on the latest hype and clueless managers buying into it out of fear of looking stupid for not “getting it” (there was nothing to get!).

I’ve forgotten the amount of times I have gotten unsolicited phone calls and e-mails from salespeople from different “enterprise software vendors” who I have had to fend off.
Sometimes just for the hell of it, I have looked up their websites, and quite often I have spent 10-15 minutes reading their websites without being able to work out what the f*** they actually do if my life would have depended on it!
I’m a reasonably intelligent guy, and I’ve been in the industry for over a decade now, if I can’t even understand what problem they are trying to solve, how would anyone? They are, to put it simply, just buzzword peddlers, nothing else.

I have often argued that the software industry could work more efficiently if it cut out half of the people in it, if the decision makers could just work out which half was the deadwood (hint: don’t be biased by “cost”, up or down). This recession is an opportunity to at least go some way in doing that: cut out the buzzword peddlers for Gods sake!
If someone comes in spouting buzzwords, but can barely put together a “Hello World!” program in any programming language, show them the door and make sure it hits them on their way out.

If a software vendor can’t quickly describe what they do and why in less than 20 words and one sentence, they probably do nothing useful whatsoever.

identity2

No it’s bloody not!

Should I be worried that iPhoto ’09’s “Faces” face recognition keeps suggesting my dads name for pictures of me? It happened a dozen times, even though it should have already been well “trained” at recognizing my face from previous pictures..

Things are bad. I am more bearish than most, and I don’t think we are out of the woods with this recession by a long shot. We might be looking at a depression on a scale not seen since the thirties, or even eighteenhundreds.

But in that lies opportunity, just consider the giant leaps forward that have been taken since the thirties. As painful as social and economical upheaval is, it is also transformative, old structures and resources get torn up, rejigged and challenged. New things take their place.
Old, moribund companies fail, their resources get taken over and get better utilized by new people and new companies, often in novel new ways.
“Necessity is the mother of all inventions” – well, you can bet your bottom dollar that in these troubled times, a lot of people feel the pressure of necessity. It is almost inevitable that some of them will come up with brilliant new ideas and inventions to get out of their trouble.

Uncertainty is all around us, people are understandably scared and unsettled – but we should not underestimate human inventiveness, sooner or later a new dawn will arrive, driven by new smart people.
This is the period of cleansing, out with the old, in with the new.

This week has been busy to say the least, and today was no difference. This is a short summary of what I’ve done:

  • Gotten up to speed on deliverables for performance testing and approach with my primary consultancy client.
  • Done some support for Wicket RAD questions on forum.
  • Started fleshing out outline for AWS training (in partnership with jWeekend)
  • Spent an hour running on the treadmill while watching Family Guy (my only “indulgence”, if you can call it that).
  • Done some routine maintenance work on SVNsite.
  • Put together a short proposal outline for a licensing/partnership agreement with an established startup around a software product I have written.

There’s still a lot I would have liked to have had time for. I would really need a 30 hour day instead of 24. I’m seriously considering ways of improving my time management and perhaps outsourcing at least some of the more mundane admin type tasks.
From todays “Todo’s” only the SVNsite work could have been outsourced though, as most of the rest is in my head.. How do I lessen my dependence on, er.. me?

With any process there is always the risk of allowing process trump common sense, Agile methodologies are no different in that respect, even though the Agile world often ridicules more traditional software development approaches for their “process over people” approach.

I think this risk is even bigger in organisations that are just adopting and getting to grips with Agile – there is a risk of “overdoing it” in the drive to adopt all practices and adhere to them.
The thing is though, common sense should always trump any process or practice.

I have noticed these tendencies on several projects in the past, and noticed them yet again today on my current project: I realized that we had about 15 user stories on our immediate backlog, but we actually only needed 3 or 4, and none of them where actually on the backlog!
When I pointed these things out, a few faces where slightly uncomfortable with it until we all came to a conclusion on the approach to take forward.

I think it is important to realize that a product backlog or user story is never “the ultimate truth”, you cannot blindly follow the tasks and stories written in the hope of reaching and end goal when they will clearly not lead there.
Personally, I like to know what the tangible end game is for what I am doing, and find very clear, concrete things I need to do to get to that end goal. If that means scrapping a bunch of user stories, I don’t care.

Never loose track of the end game, never do things blindly for the sake of chalking of hours on pre-defined tasks, and always use common sense. Common sense trumps process every time regardless of your process.

I’ve been thinking about what sort of recovery we might see from this recession once it comes (I don’t believe we will see growth until some time in 2010).

Unfortunately I see two primary scenarios, both of them negative – the most likely is a pro-longed period of stagflation, high inflation combined with weak, pathetic growth and high unemployment.

The second scenario I see as a potential is is a “double dip” recession, one where all the government and monetary stimulus actually will give the false impression of a real recovery. In this scenario the stimulus enacted would be that of temporarily restarting the heart of someone in cardiac arrest, a false dawn with seeming growth and re-employment, but shortly after followed by another recession when the temporary and unproductive effect of the stimulus wears off.

I would probably put the odds at 50% for stagflation, 30% for a double dip recession and 20% for a real, sustainable recovery once the first signs do arrive. I really, really hope the 20% case is the one that happens, but as is implied by the odds, I don’t see it as likely.
The leadership of the US, UK and other nations are taking similar steps to what Japan did in the early 90′ies, and we should not be surprised if we too suffer “a lost decade” as a consequence.

During the fall I started looking into Objective-C and Cocoa programming for the Mac, but after only a few evenings I got sidetracked. I’ve made a new effort and spent a lot of evenings the last week getting up to speed.

I’d say my impressions are mostly positive: I’m starting to get very comfortable with the Objective-C syntax and navigating around the Frameworks. I don’t know them too well yet, but I am not having any trouble finding what I want when I want it.

Objective-C is definitely a different beast from Java, and whereas I miss the compiler checking, roundtrip compilation of Eclipse and better code completion in XCode, I am finding lots of aspects of Objective-C and Cocoa very pleasant. The dynamic nature of the language takes some getting used to, but has its benefits (and drawbacks).

My biggest complaints yet are probably around Interface Builder – when you use it heavily, some things become too “magic” and obfuscated. If you make a wrong step it is hard to backtrack and find out where you went wrong. I’m definitely still more comfortable doing “backend” programming compared to the UI elements of Mac applications.

All in all, I think I will stick with it – I am actually enjoying Cocoa/Objective-C more than Java at the moment, not necessarily because I think it is any better (or worse), but purely because it is a new and different experience. After 10 years with Java with only fleeting brushes with other languages, it is nice to be back learning something from scratch.

It looks like we may be entering the third leg of the financial crisis: the bond bubble popping, making future hyperinflation almost inevitable.

What do I base this on? Well, the ten year treasury yield has gone from 2% to 3%, reflecting that buyers want higher premiums to buy US treasuries, which in turn is a reflection of the fact that former net buyers of government bonds like China and other Asian economies have become net sellers.
In a world where most governments are running deficits for the sake of funding their “fiscal stimulus” and private investors are short on cash, the government bonds cannot be sold. There is a glut of bonds, but no buyers.

This means that to fund their deficits, central banks such as the US Federal Reserve will need to start printing money aggressively to buy up their own bonds. In the short term, it seems central bankers are more than prepared to do this based on their tunnel vision on current liquidation based asset- and debt deflation. But economics is not only about the immediate effects, it is also about the knock-on effects, something that has been lost on most in the last 12 months.

Aggressively printing money can only lead to one thing: rampant inflation. And it seems to be what central bankers want.

Over the last month and a bit, I have discovered that providing services for software developers is very hassle free. Sure, I have to respond to the occasional support e-mail, and I try to answer as quickly as I can with as specific an answer as I can, but generally this tends to be easy.

Developers are simply the perfect low-maintenance customers. Why? I could mention a number of reasons:

  • They are smart and educated – you don’t have to tell them to plug-in the power to their computer.
  • They are used to problem solving – software development is essentially problem solving. Point a software developer in the right direction when it comes to a problem and most of the time they will work out any potential gaps on their own with ease.
  • They are not afflicted by learned helplessness – whereas some people will by default throw their hands up in the air as soon as they don’t know something, developers approach problems with curiosity, they will try to solve it on their own before they even ask for help, and when they ask for it they tend to have specific, informed questions to ask so that answering is very easy.

Whereas a lot of people will have horror stories to tell about product support, personally in the last month and a bit, I have enjoyed every single customer interaction I have had, and I have learned a fair bit through them as well. Being a developer dealing with developers is great!

Since the internet broke through, I have noticed a peculiar thing: a lot of tech entrepreneurs and companies seem to be afflicted with tunnel vision and only think about the web, more specifically the web inside a browser (“inside the box” if you will).

If you think outside the box (browser), there are still a lot of very good opportunities, and in some cases opportunities that have been neglected in attention: just look at applications such as iTunes, Spotify, Skype and various Twitter desktop applications – would you sniff at their achievements in terms of market penetration, revenue and/or revenue potential? Hardly.
I believe as bandwidth becomes less and less of an issue, new opportunities will arise by integrating the desktop with the “cloud” in a seamless manner – effectively give consumers and businesses the feel of working/using applications locally, but syncing, storing and sharing information and communication in the cloud.

Personally I have found in the last year, year and a half that I spend more and more time online, but ironically enough less and less time using a browser: I use Mail, TweetDeck, NetNewsWire for RSS, Adium and a number of other internet enabled applications more on aggregate than I use the browser, and I’m quite happy to do so.
There is a very good reason for me doing so: despite all the Flash and AJAX in the world, the browser is still a limited client experience, it is still bound by the limits of http, html and javascript – the web for me has become a mode of discovery, while the experiences after the discovery are often achieved in other apps.

“There’s still gold to be found in them there client applications!”

Next Page »