This is Part 3 of my look back at the technology I used at the start of my career. Part 1 gives an overview of the Pick operating system and database, as well as how I came to work with such an obsolete technology in 1999. Part 2 has my lament about being trapped in Pick jobs and covers English/Access queries and the PickBASIC programming language.
In 2004, I got fed up. I was at my second job in the industry. Taking this job had doubled my salary and allowed me to buy a house, which I appreciated. Yet I was still doing Pick. My employer had announced plans to migrate from our green-screen Pick application to a web-based customer service system written in Java backed by an Oracle database. And instead of re-training their in-house staff, they hired a consulting company, the local Oracle experts.
I spent a lot of time with the new team, walking them through the old code and pointing out bits of ten year-old technical debt they didn’t need to copy in the new architecture. It was gratifying to be working with people who understood modern software development and web technologies, and I wanted to be involved with the new development in any way possible.
So five years after starting my career off on the wrong foot, I stopped at a Borders bookstore and picked up study guides for the Java Certified Programmer exam. I bought a testing voucher and set a date, knowing I was more likely to do the work if there was a hard deadline in front of me. In total, I invested over $1000 in my future that night with no guarantee I’d even pass. But after a month of preparation, my certificate went up in my cubicle right where everyone walking by could see it, so there was no doubt I was ready for new challenges. I got so many high-fives and pats on the back that week, I felt like a celebrity.
Yet I remained a Pick programmer.
There were a few token efforts to get me involved in the Java work, sure, but my experience with the legacy system was just too valuable. What was supposed to be a 50/50 split between new work and legacy code ended up being 20/80 and finally 0/100.
Fortunately, my certification made me worth bringing in for interviews.
Pick and the clones — A “Reality” check
By now, you’ve probably noticed me mentioning UniData/UniVerse and their different names for things like Access and PickBASIC. Early on, Pick licensed the Pick operating system to minicomputer vendors and their software ecosystems. A plethora of Pick variants emerged and evolved their own quirks and subtle differences from the official Pick system. There was Pick D3, UniData, Reality, Ultimate, INFORMATION, Sequoia, jBASE, and others.
They’re like Linux distributions. If you can use one, you can probably learn a different one overnight. But everyone’s got their favorite.
Redback: Pick as a web platform
I’ve probably painted a pretty bleak picture of Pick as this outdated platform that’s completely alien to modern developers. But there are companies trying to keep Pick relevant to the modern world, and my first employer invested heavily in Redback (now part of Rocket U2) as their toolkit for building web applications on top of Pick.
Redback pooled a set of telnet connections to the Pick server so it could run queries and PickBASIC programs. Pick data structures mapped to Redback Objects (RBOs), and different RBOs could point back to different dictionary entries on the same file.
What I learned from Pick
This is probably the hardest part for me to write, because I have so many bitter feelings about the platform and how it affected my early career. But I didn’t want this to just be a technical brain dump, either. So here’s some “lessons” I learned from five years as a Pick developer:
Don’t get pigeonholed
Throw away your old platforms
Though living on the cutting edge is fun, the real value of adopting new platforms is in the wider pool of talent available and the passionate developers they attract. Hiring a good Pick developer in 2004 was nearly impossible. Try doing it now.
While I enjoy tinkering with old technology, it belongs as a hobby or in a museum, not at work.
Strut your stuff
Put code up on Github. Promote yourself on social media. Help people out. Let the world know that you know your stuff. Strut it around, because if you don’t show off what you can do, nobody is going to care. Our industry frowns on self-promotion, but it’s essential.