Archive

Archive for October, 2010

No, I’m not a mason

October 27th, 2010 8 comments

“Danger! Software Craftsmen at Work”

Now that’s a great title! I wish I could have used that for this post. Instead, that’s the title of the QCon 2010 David Harvey presentation that is the foundation of this blog entry.

In his talk Mr Harvey places the “Software Craftsman” ideas and practices somewhere between distracting and dangerous, and claims these ideas builds a wall between developers, organisations and customers.

I claim he exaggerates the dangers, but I welcome the stirring in the pot and I do agree in parts of what he says, mainly regarding the emotional associations of the metaphors used by the Software Craftsmanship movement.

I agree with Uncle Bob‘s views on “The Empty Manifesto“, “Engineering vs. Craftsmanship” as well as “The Craftsman Connotation“, the last one being the one I’m expanding upon here. Plus, he sums the whole thing up nicely, so if you haven’t yet, please read that one first. (Yes, you may read Gael Fraiteur’s post too if you must, but please then leave a trail of breadcrumbs so you find your way back here.)

A masonry brick wall

So, on to David’s talk:

My first issue is with his first analogy; why would wearing a white T-shirt with printed instructions make it any worse walking into the lion’s cage? …ok sorry, that’s not the point. And, to give hime some credit, the print was in fresh blood and lions tend to like that, so fair enough, I’ll let it slide. After all, he was standing inside the lion’s cage saying it.

And thanks for putting yourself in that cage, David. It was refreshing to see an alternate slash controversial view presented on this subject.

My biggest issue

My biggest issue, however, is that he picks on a great movement with the noble goals of achieving a larger recognition of software development as a profession and to “raise the bar of professional software development”. Why would anyone want to do that? That’s just mean.

Or, is it? He is, after all, a developer himself…

Please, let me shine some light on an important point he makes, one that I’ve brought up before: We should be careful with our wording! We are already perceived as loners, nerds, Storm Troopers sleeping in line for Star Wars premiers. We don’t need to enforce that perception.

For me the timing of watching this presentation was great. It aligned perfectly with a conversation I had the other day:

The conversation

I was sitting out on the lawn, (re)reading a book* about apprenticeship and craftsmen, when my neighbour approached me.

-Are you working?
-Yep, reading up on some important professional elements.
He shot a quick look at the cover.
-But aren’t you in IT?

I began explaining, but it wasn’t until I started using words like professional instead of craftsman and mentoring instead of apprenticeship and that the book was really about learning and improving that the coin really dropped and the conversation took off. Turns out he, being an ambulance driver (amazingly enough, the very one that drove me and my wife to the hospital six months ago, when our bub #4 decided he wanted out in the middle of the night), knew and practiced many of these patterns. New ambulance drivers work with experienced ones to pick up on the large part of that profession consisting of working in the field, in an often critical atmosphere.

-They have to. Can’t read that in a book.
-So ok, you do that too, he said, I get it. Cool. But what with all the old guild talk? You’re not a mason, are you?

Touché!

So, why do we fight so hard for recognition?

Well, for one, it’s still a fairly young profession, but I also think some of it has to do with our characteristics. Software developers are smart, analytical people, lacking the social and communicative skills required for many other professions. (Generalising. Trying to make a point here. Moving on.)

I don’t care if you’re socially inept, as long as you can code. It’s actually better that way, since you’re going to spend most your waking hours in the basement anyway.

This has changed, greatly and quickly, and we are now in contact with the users, the business, no longer sitting in the basement. But even so, to the outside world that’s still us, the loners.

We see all that – we’re smart and analytical remember – and we’re tired of standing back to the sports jocks from the school yard, now turned corporate leaders. And we just don’t understand why people have such a hard time seeing the complexity, the necessity, the importance of what we do, just because it’s not tangible.

So, maybe we get a little bit too eager to get that recognition and forget there’s a gap that needs bridging first. (…and now, also a brick wall to tear down. See, we’re not making it easy on ourselves.)

Bridging the gap

That gap will be brigded though, sooner or later, through continously working on doing what we should do and doing it well. I agree with David’s advice; developers, stick to what Kent Beck described as the four basic activities of XP:

-Listening
-Testing
-Coding
-Designing

Do them well and stop worrying so much about recognition and acknowledgement. And by all means, use whatever names and metaphors you want for learning and improving, but do it internally. On the outside, make sure our organisations and customers understand what we’re doing too.

And anyone suggesting writing software is not hard, not a real profession, is welcome to come and give it a go…

* Not just “a book”, ladies and gentlemen. The Book! Apprenticeship Patterns – Guidance for the Aspiring Software Craftsman, by Dave Hoover and Adewale Oshineye. Read it. Please do. For your own sake.

(Photo courtesy of Shutterstock)

Native or X, and native who?

October 1st, 2010 No comments
Update: This just in: "Big Android Market expansion". Thx Jason :)

Last night I attended another YOW! Nights Sydney. This time the title was Mobile Platform Developer Shoot Out! and the battle was between Google Android, Apple iPhone, Microsoft Phone 7 and cross platform.

Here’s my position before:

iPhone rocks! I have one and I love it. My only issue is it’s too much fun – it eats away at precious hours of my days. (That’s why I’m not getting an iPad btw.) I don’t love vendor lock-in and arrogance, but I just can’t not love excellence and beauty.

Android is definitely interesting, but it’s like Linux for me. Great stuff, but too fragmented, too unpolished, demands to much fiddling. But yes, I do welcome competition and I love openness and solid technical groundwork.

Windows? On a phone? No thanks…

X platform sounds really interesting. I wonder, is there more to it than just packaging and touchifying websites?

When it comes to developing for mobile (which I have yet to do first hand, native that is) I’ve since long been a proponent for native for apps requiring anything beyond the most rudimentary touch based interaction. For pure info, adaptive websites will do fine.

And after last night? Pretty much the same, only now I’m a wiser man. Read on…

Doing such a session in a little over an hour, with four speakers taking turns, you know you’re in for merely a scraping of the surface. Sometimes that’s a good thing though. Like when you want to merely …well, scrape the surface. What’s out there, where to start?… And I think that’s pretty much what most of us wanted, or at least expected, this evening.

Some quick notes from the session:

(I’ve provided some links, but to find out more about the program, speakers and their background, check the itinerary.)

Android

  • XML/Java and Eclipse IDE. Familiar stuff.
  • No. of apps per day to Android Market catching up, but Apple’s still way ahead.
  • Bad :(
    • Piracy, viruses and malware! Major issues. Google are taking actions against it, but haven’t been all successful so far.
    • Developers in Australia can’t sell apps on the Android Market! Didn’t go home well this evening. (The ones in Norway – my professional home country – can’t either, if that’s any consolation.)
    • UPDATE: Yes, they can! (ref. article)
    • Fragmentation. 25% of Android handsets run OS v. 2.2 (the latest) and about 45% v. 2.1 and the remaining 30% was a jungle of older versions. And then there’s the hardware…
  • Good :)
    • Choice! You’re not restricted, not even to one Market. There are already more and rumour has it Amazon’s up to something here…
    • Extremely fast cycle! Push to market and it shows up instantly. First download after 20 seconds and another 20 seconds later you get your first bug.

iPhone

  • Ten different devices spread across different screen sizes. However, Apple’s hide that diversity very well for developers.
  • The toolkit (XCode, Interface Builder, Simulator and Instruments) is great says Nathan de Vries.
  • (The Simulator’s fast. Don’t forget to check devices too.)
  • The documentation is really good. And check the sample code; lot’s of useful examples.
  • An initial hump to get over.
  • Get over it by reading a good Objective-C book and another one on memory management. After that, it’s all fun. Again, according to Nathan.
  • (Quickly mentioned Blocks (closures or lambdas for obj-C). Check it out if you will. And while you’re at it, check out Grand Central Dispatch. Not new, but exciting stuff still.)

Phone 7

Harder to bullet point this one, because Dave Glover was so eager to show us their new phone that I think he forgot he wasn’t a salesman. (To his defence; he was the only vendor representative up there.) So, did he sell?

  • Well, no but I’m quite impressed with the UI. He let me play with his phone after the session and it was really snappy; the closest I’ve seen to iPhone’s superior touch feeling. Not bad.
  • The UI’s different, with hubs, tiles, panoramas and some-other-fancy-name, and different’s good. Considering how late they are to the party, choosing the same path they would never catch-up, but this? I don’t know, they might just have found a shortcut through the woods.
  • But with no copy-paste and only 1st party multitasking they have to step it up a notch…
  • It’s Visual Studio (for Windows Phone) and Silverlight, so it should be honk and go for .NET devs.

Cross platform

Hard to get where he (Julio Maia) was heading (and what he was saying) due to some basic presenting issues, but basically:

  • jQTouch for UI. (jQuery-ish, pretty good, fast learning.)
  • Phonegap for packaging (fairly straight-forward).
  • Used Agile Australia conference app (http://aa2010app.com) as PoC.
  • Don’t trust simulators. Try every phone out there. Browser testing anyone?!…

Ok, so the questions are:

  • Do you go native?
  • With whom?
  • Or do you go X?

My combined answer is simple: Go native for (mobile) apps and cross platform for websites. (And make sure your website adapt to whatever client.)

As for whom, do iPhone first, then Android. If Phone 7 turns out to be a success, you’d better have a look at C#/Silverlight too…

Then again; interesting to see what HTML5 will do for X platform. Thanks André (Heie Vik) for queuing me in on that thought. Still think it won’t keep up with a native experience (without wizard’s magic), but still…

Why native?

Basically: Experience and performance of the app. After listening to Nathan and his iPhone talk (which, in my opinion, was the most convincing and credible) and talking to a couple of great people afterwards, my own thoughts and views found new strength.

It does really make a bunch of sense utilising all the specialised, built-in magic, or as Nathan said it (ca): The frameworks are great, especially on the UI side. Stay at the highest possible level and let the existing frameworks do the heavy lifting.

And on a final note

I had a great time. Again. Always a pleasure hooking up with the YOW! crowd. Lisa Cumes and Dave Thomas are doing a fantastic job on both these YOW! Nights and the upcoming, great looking conferences in Melbourne and Brisbane.

It was really interesting talking to Dave about what’s going on behind the scenes of YOW!/JAOO/QCon; the branding, the marketing, the speaker selection and the great focus they have on delivering quality form one end to the other. I went to JAOO in Århus in 2008 and had a great time, learning tons. This year I’m going to Brisbane in December, expecting nothing less :)

And had a nice talk to Tim Lucas too, before he had to run out to look for some stolen bikes. Thanks Tim for sharing your thoughts on the native/cross issue. (…and for sponsoring YOW! of course!)

(And thanks to Nathan for the tweet reply. Helpful.)

Tags: