When you see those words output on a terminal screen, in a window or even at the other end of a message queue, then you realise that you’ve taken the first successful step in conquering the unknown. Just output two words and your confidence returns.
Software development tends to be like that. One moment you are full of confidence, and the next moment you are paralysed. That’s when you go back to “Hello World” – to get your confidence back. More importantly, it gives you a huge insight into the simplest next thing you can try to get back on track. When I reflect on the nature of software development, I always see a flow between confidence and paralysis and back again. It happens at various levels: from the small when working at the code face, to the large when working at an application architecture level, even to the humungous multi-enterprise level architectures.
It’s all these levels (and everything in between) that motivates me to get out of my comfort zone and see what it’s like in the big, wide world. My last excursion was in November 2010 when I was invited to speak at the Øredev software development conference in Malmö, Sweden. Conferences like Øredev have no equivalents in South Africa. It is a vendor sponsored conference with the usual precious metal based ranking of sponsors. But, there is no vendor push in the talks. While there is the usual Java and .NET track, there is no content that is pure marketing or product push. It is a learning environment where about 1200 software developers gather to listen, share and discover over the course of a week.
Having been asked to speak on the Collaboration and Agile tracks, I spent a fair bit of time on these two tracks. Not unexpectedly, these tracks had a strong people focus. Extraordinarily, I found this people focus permeated in other tracks also. The most surprising of which was the Patterns track where Jim Coplien went back to original work of Christopher Alexander and highlighted the human element as a necessary part of architectural patterns.
For me, there were many highlights of the conference, but those are narrowly focused on my interests. Maybe it’s not enough to be a trend, but there was a fair bit of chatter on REST as an architectural style, functional programming, software craftsmanship, trust as a personal and team value, lean and kanban, Scrum, a sprinkling of domain specific languages talks, and whole lot of NoSQL too.
At conferences like this, the highlights are actually the conversations that happen in the passage, over lunch and at the pub, where you really get into the details of things. This year, Øredev did something that really encouraged this – chalkboard areas. There was not much Q&A after each talk, but speakers gathered at a chalkboard area and engaged anybody that wanted to know more, in as much detail as needed.
Watching an online video of a conference session may be a cheap way of attending, but the value lies in the dialogue with the speakers and other attendees. Sadly, in South Africa, we don’t have a culture of learning through conferences. We tend to favour vendor-fare above all other learning. Why is it easier to get approval for a vendor marketing-festival than for a pure software development conference? Why do we tend to argue over choice of tools and products instead of exploring the simplest design to difficult problems?
I think we have fallen into a lazy way of software development where it seems easier to try to cherry pick a solution out of a box from our favourite vendor of the moment. Yes, it is scary when you are faced with a tough problem, and these cherry picked solutions seem so much easier; especially if they are sold as best practices too. Next time, face your the fear and try something that will just give you a tiny step out of the unknown. Sometimes, all you need is “Hello World”, and the anxiety dissipates. Even attending a conference like Øredev is a “Hello World” moment at a higher level. You see, “Hello World” is a statement of progress, and a step towards placing value in design over technology. This is software development. It all starts with “Hello World”.
Aslam Khan has spent more than half his life creating software. He still believes the truth is in the code that gets executed, but that belief is soberly balanced by his other core value that people are more important than compilers. As a software architect that codes, Aslam spends his time helping teams to design and build better software, while having fun and making worthwhile friendships. Aslam is part of the Factor10 team, working out of Cape Town, South Africa. You can read his blog at http://aslamkhan.net.