Learning, Life

Meaningful Learning

No Comments

I have twin girls. They’re five years old. They’re learning to read and write. It is a joy and a privilege to witness this stage of their development, especially as they are bilingual.

Many schools across the globe teach children how to read and write phonetically. This technique has many shortcomings, but at the same time it appeals to the child’s stage of development. (Trying to teach children why “ough” can be pronounced at least two ways is very tricky.)

One of my daughters wrote the shopping list above. It took me a few seconds to get them all, but now I know them, I can see why phonetics are popular; they give parents hours of amusement! But what this also shows is that while on a learning journey, you benefit even from simplistic versions of the facts and rules that you ultimately hope to conquer. So in this case, my children can communicate through writing even if every single word they write is wrong!

Learning, Life, Programming

self squared (My Smalltalk Journey)

No Comments

Before Java, before Objective C, before Scrum, before Python, before web 2.0, before #noestimates, before Agile, there was darkness and there was confusion. And then, there was Smalltalk, and the world was bathed in its beautiful light, fleetingly.

A Brief History

My very first full-time position was as a technical support engineer for California-based software house called Software Products International, or SPI. We had our own 4GL environment, complete with a bespoke language and our own dialect of SQL. Ah, the good old days of no standards..

Some years later, the head of SPI created a new company, Enfin Corporation (meaning, “at last” in French, kind of) and Enfin created its own development language called Enfintalk. This was around 1990 and in 1992 I flew to San Diego to join his team. In the early 90s, object-orientation was the new thing. Business problems were getting deeper and trickier, and developers required new tools with which to model the real world and solves these new issues. Several fledgling programming languages were vying for developers’ attention and money, and it soon became apparent that the Smalltalk language developed by Xerox PARC was a natural fit. Smalltalk did OO perfectly and purely.Smalltalk 80 book

Enfintalk was a strange bastardisation of real Smalltalk and didn’t really actually look like Smalltalk. So, we rewrote it. Enfin Smalltalk was born. We competed against the likes of VisualWorks, Smalltalk V, IBM VisualAge Smalltalk and a host of others (imagine if today there was five or six different flavours of Java all from different companies, each requiring their own runtime environment).

A Love Affair

I’d grown up with BASIC, 4GLs, SQL, DOS, CP/M and all those great things and to then be subjected to the strange world of OO and Smalltalk was a headf*ck to say the least. But one sunny afternoon (actually, every afternoon in San Diego is sunny) the penny dropped. In the space of about 30 seconds I just got it. I got OO. I got Smalltalk. I got self. (In Java, it’s called this.)

From there onwards, my career for the next 10 years was centred on Smalltalk. I was doing Smalltalk consulting for large corporations; I was running training classes in Smalltalk and OO analysis and design; I was writing technical articles and even took on the task of writing documentation for every class in the Enfin Smalltalk system. I’m not ashamed to admit that I was in love with Smalltalk. Everything else was inferior.

And then Java happened.

Duke Nuked ‘Em

DukeYes, Java happened. “Write once, run anywhere,” they said. “Applets are the way to go,” they bleated. In the blink of an eye, Smalltalk’s dominance in the OO arena rapidly dwindled. Java ran faster (Smalltalk’s development image model was a memory hog) and appealed to more people due to it’s not-entirely-pure-OO way of handling primitives and coming from the then amazing Sun Microsystems (their hardware was pretty awesome). Smalltalk got pushed out. Smalltalk vendors either disappeared or were bought (Enfin got bought by Easel Corporation which then renamed it to ObjectStudio and subsequently got bought by VMark Corporation who then sold ObjectStudio to Cincom). Smalltalkers, including myself, migrated to Java because, after all, that’s where the money was. Smalltalk all but disappeared. RIP Smalltalk.

Or so it seemed.

detect: reject: collect: inject:

Smalltalk is powerful. Smalltalk embodies OO almost perfectly. A vibrant community of Smalltalkers continued to develop it and make it lighter and meaner and more suitable for today’s web-driven world. Today, it’s still there, working for companies that require that extra level of real-world modelling that Java and many other languages can’t do (well, not without numerous third party libraries and extensions). Squeak Smalltalk is a super popular and OpenSource implementation. There’s Pharo, too, which runs on multiple platforms and has many clients doing amazing things with it. ObjectStudio is still being sold, as is VisualWorks. There’s still life in the old dog. And let’s not forget that languages such as Java, Objective-C and Scala all doff their caps towards Smalltalk.

Why have I rambled on about all of this? Well, I ditched programming two years ago in order to become a full-time Scrum Master. Until now, I haven’t missed launching an IDE, or compiling code, or designing a framework. But something inside me is tugging away at the coder that I buried. And as a Scrum Master, I preach to developers about improvement, and about learning new things so I think it’s about time I practiced what I preached.

I’m waking up the Smalltalker inside of me, and I’m re-learning Smalltalk and I’m excited as the day I finally got self!

Agile, Life, Planning

Life Feels Better When You Have a Plan

No Comments

On my walk to work each morning, I pass a bus stop sporting an advertising hoarding for Scottish Widows’ life assurance products. (The Scottish Widows mascot is such a young widow, poor woman.)
Their strap-line for this current campaign is, “Life feels better when you have a plan.” And on their website, they talk about how having a plan makes life feel “lighter.”

What caught me about this new campaign is its truth; life does feel better when you have a plan. But I suspect that, in an effort to sell more life assurance policies, the campaign managers were hoping readers would interpret this as “Life is better when you have a plan” and therefore, “Life sucks unless you have a plan” and onto the conclusion, “Life follows a plan. Buy yours now. Rest assured.”

Plan To Be Happy, Don’t Be Happy To Plan

When you see detailed plans in software development projects, you can tell that a certain group of people draw great comfort from them. They provide the illusion that a chain of events will happen, culminating in the plan’s ultimate delivery or conclusion. And when these plans are printed large and bold on a massive wall, their impressiveness is hard to resist. They look awesome!

If you’re an Agility fanboy (or girl) like me, and specifically if you’re a Scrum Master, you’ve probably preached to developers and Product Owners and Stakeholders about the need to not have a plan. Or rather, you probably educate them about how plans change and how by not having a firm plan is actually an enabler and permitter of change. It also breeds the ability to cope with change. After all, how many agile projects do you know of that use a Gantt chart to work out what’s happening deep into the future?

Death and Taxes

Life’s two certainties, according to Benjamin Franklin. I’ll add a third: uncertainty. Nature has no plan and has little respect for yours. Making a plan for life is fruitless.

OK, harsh and depressing words admittedly,  but allow me to provide some solace. The journey you embark upon while trying to realise your life plan is likely to be more fruitful than the plan’s conclusion. In fact, I’ll bet it’ll always be more fruitful. This is because life and Nature throw things at you which you never expect, and it’s by coping with those changes, those curveballs, those monumental cock-ups, that can force you to change direction, make a new plan, invest in coping strategies (in case the same thing happens again), run away and hide until you think of a way to deal with it, and the rest. And it’s highly likely that after you’ve made these adjustments, you’ll feel happier or, to quote the aforementioned ad campaign, “better.”

And so it is in software development. And music production. And bathroom installations.

I’ll end with these words from humanistic psychologist, Carl Rogers

The good life is a process, not a state of being. It is a direction not a destination.