Repeat Post: Smalltalk Jobs

Posted by steve | Smalltalk | Wednesday 29 October 2008 2:41 am

There are choices when it comes to finding Smalltalk development work in today’s world.  What is an appropriate choice for a grey-bearded seasoned Smalltalk professional?

I was thinking about the Smalltalk jobs market again recently.  And it occurred to me that I may have the wrong perspective.  Consider that there are only a few real options.

The first option that comes to mind is to find a team that is already developing or has developed a Smalltalk application.  Another option is to join a development team at one of the Smalltalk vendors — improving the product for everyone else to use.  You could also do this by contributing to open source efforts such as Squeak, but I did say this was about work that pays bills.

The trade offs are stark.  In many cases the existing Smalltalk teams are merely “treading water”.  They develop valuable software for their employers, but are often faced with the constant pressure to move to something “more modern”.  Remember when everyone was moving to Java?  Still goes on in some places. Maybe it’s now .Net and C#, or Ruby or something else that’s “this decade’s Hoola-Hoop.”  If you choose this path you have found useful work applying your skills.  But is it the best choice?

If you join one of the Smalltalk development teams, a rare opportunity when it happens, you rub shoulders with other accomplished Smalltalk leaders and make the products better for all of us.  However, they have their own unique pressures and conflicts.  And in a way, that’s reducing the number of Smalltalk developers out there in the real world.  Kind of the opposite of what a Smalltalk Evangelist should be doing.  (Although one of the best jobs I ever had was when I was developing Internet Banking Frameworks with Rebecca, Alan, Dilip and Chris at Digitalk).

But here’s the thing.  These options don’t grow the market.  If you’re a long time software evangelist seeking to increase the market visibility for Smalltalk everywhere, there’s another much more difficult option.  Create something new using Smalltalk, and do it where it’s never been done.

It’s a lot like “inventing the future”.

So I’ve been wondering how to accomplish this.  And the truth is I’ve done that before and it was remarkably successful.  Maybe a little revisit to how that happened will help chart out a path for an equally successful future.  I don’t have an answer other than to say out loud, “The right thing to do is create the jobs.”  At least right this moment.

I’ve been writing Smalltalk for 20 years now, in lots of interesting situations.  Here’s the story as best I remember it for one of those cases where Smalltalk was applied for the first time and led to a big success.  Forgive my little journey into the past here.  I’m hoping something comes out of writing this and sharing it.  Maybe something all of us can use.

It was in 1990.  At that time I was employed in the Engineering Department of a small manufacturing company in Ohio.  We were developing software for embedded process control systems.  It was all assembler and some PL/M stuff and a development product from DEC called MicroPower Pascal which could be ROM’d.  A since it was PROM-based, it wasn’t easy to change the software.  

I’d already been with the company 10 years and was writing software and managing a small team of 5 other developers.  In those days The Wall Street Journal was occasionally publishing articles about the next perceived wave of software development using Object Oriented Programming and something relatively new called C++.  The President of our company and my boss, the Vice President of Engineering, were reading these articles (and probably some others).  At that time we were all feeling the pain of high software maintenance costs and long development cycles, with the often missed project deadlines.  So I was asked to look into the new C++.

After playing around with it some and reading what other development teams had tried, I discovered that the biggest “trick” was to get the developers to “think” OO.  Not just use C++ to write C code.  This issue may sound familiar for companies that foolishly thought they could adopt Java and get OO development, since Java was a lot like C and easy to learn.  Little rant there.

I concluded that we should prototype our next product using Smalltalk.  We’d end up with better models and we could then rewrite in C++ when we needed the speed and professional quality that this “C-like” language was supposed to have.  And at that time I really believed that we would “port” to C++ when we needed the speed.  What made the choice of Smalltalk work was a number of factors.

First, we were already expected to be using some kind of OO tools.  And Smalltalk was at least heard of.  Second, I’d already been using Smalltalk/V Mac on my desktop computer at work for odds-n-end tasks and was quite familiar with how productive the environment was.  And third, the VP trusted me.  So we embarked on a project to create something totally new, in the process control industry too, using inexpensive 386 Intel machines running OS/2 and Smalltalk.  We had a mechanical engineering team work on enclosures to make this hardware feasible and my little software team embarked on a totally new idea.  To be fair about it, it helped that I already had Smalltalk exposure and I was able to develop some core frameworks the new application would be structured around, as well as the fundamental designs for user interface and communications.  So when the team got ramped up on Smalltalk, enough pieces were in place that made it easier for everyone to see where they could help.

The remarkable thing we did was develop a totally new product for the market in record time.  We went from concept to working demo, which was unveiled at a trade show, in 4 months.  We had software delivered and running on factory-floor systems 3 to 4 months later.  And the really awesome feat was that the development team started to roll out unheard of powerful new features for our product very quickly.  We took the market by surprise.  And the interesting thing was that we never had to “port” to C++.  Smalltalk was fast enough and very stable.  We did get one lucky break.  Intel had made the 486 processors available just a few months before we went to production and any lagging performance issues we were seeing were improved.  I remember the President coming to see me one afternoon to share how he could see everything had changed.  We used to take weeks to respond to problems, and he was amazed by how the folks on the assembly like were telling him how we made updates sometimes daily.

From a product success point-of-view, the previous product we had developed using Pascal and PROM based deployment, sold and shipped maybe 2 or 3 systems per month.  It was enough business for our small company.  The new product, with lower cost and real high-end displays and capability (all developed using Smalltalk) sold like crazy.  They started producing 2 or 3 systems per week.  When I left the company, a few years later, they were producing 2 or more systems per day and the product was the most successful in it’s market.

That’s the trick that needs repeating.  It needs to be done in several places.  And, as tough as this seems to do, I think the experienced Smalltalk developers out there need to promote and initiate this sort of activity whenever we can.  I’m not sure how to do that right now.  Truth is I’ve had my head down coding a lot of interesting projects for my existing employer, and so my tendency to see marketing is not what it used to be.

It’s just speculation.  But I still have a lot of optimism about ways we can leverage the excellent Smalltalk development world to make new and exciting products.  We can create Smalltalk jobs both for ourselves and others.  Maybe that’s our best purpose.

Share

1 Comment

  1. Comment by Vlastimil Adamovsky — July 31, 2009 @ 1:38 am

    I am an “old” Smalltalker as well. Right now I am out of work and I would love to get a Smalltalk job. I think, partially, Smalltalk vendors are at fault for not sufficiently agressive marketing. I mean, they are not at fault that I am out of work, they are “guilty” of not promoting Smalltalk hard enough (Cincom does very good job though)
    I am out of work, because after 20+ years of me Smalltalking, IT industry discovered, that Smalltalk is not good enough…Now C# is “in”….It has “reflection”, it has generics…..it is so “cool”….The truth is, C# can only remotely do what Smalltalk can do…..
    By the way project managers don’t like Smalltalk, they love to manage lot of people (C++, Java and C# comes to mind) and if they managed a Smalltalk team, maybe, they would not be needed…
    My son is doing Javascript and making tons of money….I was until recently doing Smalltalk and ….now I make nothing… I was “forced” to master C# but there are armies of cheap season C# workers , so I would prefer to get possibility to be working with Smalltalk again…It is fun and guess what, Smalltalk supports reflection :))

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.