Thursday, January 28, 2021

25 years in software development


A few months ago, in 2020, I realized something. I started my first job in software in 1995. I've now been a computer programmer for 25 years.

My first job was with PRIOR Data Sciences in January 1995. I was a co-op student from the Technical University of Nova Scotia (TUNS) on a four-month term with PRIOR in the Halifax office. The pay was based on annualized $25,000 a year. it was the highest pay I'd received anywhere. yay good start. Working in software has always paid well with good benefits.

The project, PLAN CSCI at the time, was part of the Iris radio program for the Canadian Army. PRIOR had this small piece of a big program, which was a big multimillion contract to PRIOR, and created a job for me. We were actually a sub-subcontractor, working for EDS in Hook, England, who were working for CDC in Calgary.

It was a good work term. I worked on Oracle Forms and some Ada. I wrote the original forms manager module which continued into the final completed system. I learned a lot.

I guess PRIOR was happy enough with my work. They invited me back for two more work terms, then when I finished at TUNS I joined as full time in January 1997. PRIOR was a fine company, a good place to work, with talented individuals throughout. In 2000, xwave bought PRIOR for $15 million as part of an acquisition spree.

I joined xwave with the acquisition. They were okay, benefits weren't as good but they treated me well and I can't say anything bad. xwave had the bad luck to hit the tech crash of the early 2000s. It was a different feel with xwave. For myself I made my first job change, joining Core Networks in July 2001. The pay was 8% higher.

business cards
business cards from over the years. developers were last issued business cards about 15 years ago

Back then, working in software development was in three broad areas
product based companies
consulting and systems integration
corporate and government IT departments

I've worked in all of these environments at different times over the years. My IT department time with the Department of Fisheries and Oceans (DFO) around Y2K for about two years was as a contractor from PRIOR/xwave. Showing that there is some overlap between them.

This is still pretty much the same today a generation later, the three areas where developers work. Some of the details are a bit different. Products then was shrink wrapped consumer, and enterprise software discs for corporate servers. Today it is websites, web-based applications, and app store apps.

Consulting has seen the rise of outsourcing and offshoring.

In enterprise IT, more servers and corporate applications have moved to the cloud and AWS.

I started as a software developer in 1995. In 2020 I am still a computer programmer. That's not entirely unusual. it's a good job, the pay and benefits are good. Indoor cubicle work (from home) with free coffee. Like everyone in tech, a good number of evenings and weekends, with a few death marches and all-nighters over the years. 

Some who started as programmers have moved on to other positions. The main areas people branch out to from development are management and architecture. as for everyone, there were opportunities where I could have moved things in those directions. meh I've always been happy enough to be a developer.

I think about it like an electrician. If someone is an electrician for 25 years that's considered good, an accomplishment, a winning career. Nobody would question why an electrician didn't seek to become some kind of manager or start his own company or whatever. He became an electrician to work as an electrician. He was good enough at it to stay employed and had a long prosperous run doing it. A success.

When I joined PRIOR full time PLAN CSCI had expanded into the Communications Management System (CMS) Segment, which included PLAN. My contribution was the Offline Storage Media (OLSM) Computer Software Unit (CSU). OLSM was a good piece, well received by the Army in testing I was told. I'm pleased to have written it and be associated with it. OLSM was written in the Ada programming language, now known as Ada 83. I was on the Ada team for CMS. That was a very strong team, certainly among the best teams I've been on over the years.

Ada is a good programming language. It can be enjoyable to work with on a good software system. At the time I thought I wouldn't mind doing Ada maintenance on a large, well-designed system for a number of years as the rest of my career. That statement remains true today.

At this point it's likely I'm closer to the end of my career than to the beginning. 25 years ago I was close to the start with years ahead as it has turned out. There's no guarantee of course I have 25 years left to live, and retirement is a real thing for some people. So who knows? Unexpected events, major upheavals for better or for worse, periods of prosperity and struggle, can and do happen. The world of professional software development has changed in the last quarter century, and I expect change to just continue. For myself I'm definitely in the "danger zone" of the middle-aged tech worker. As far back as the 1980s the unemployed 40 and 50 something technical worker was a thing, an issue in tech. I used to see articles about it in high school. We don't hear about that as much today, but I'm not sure I'd want to be out of work and seeking to get back into software.

I've worked for 7 different companies. So about 3.5 years average. That's not bad in software. Some of the changes such as PRIOR to xwave were due to my company being acquired. I switched jobs on my own three times. Luckily I was only laid off and out of work once in all these years so far. In 2014 as RIM was going from 19,000 to 2,000 employees I got severenced when the BlackBerry ID (BBID) server team in Halifax was laid off. A couple of months after RIM I caught on with CGI.

lapel pins
lapel pins from along the way. TUNS, PRIOR, and Core Networks no longer exist

Final thoughts. I've been on a number of teams with a number of companies over the years. There have been many theories and methodologies including: personal offices with doors that close, pair programming two people at one keyboard, shoulder to shoulder and across from each other at long desks, work from home, Booch notation, Unified Modelling Language (UML), stick figure men, user stories, scenarios, design patterns, Microsoft Word design documents, MS Project, Jira, waterfall, agile, scrum, SAFe, kanban, Toyota, Spotify, probably other stuff and fads I've forgotten.

What makes a successful software team? From the above, it has been thought about and many ideas have been tried. In my early years as a developer I came up with a theory. I've stuck with it ever since. My theory is there are two factors that define a successful software team

  • outstanding individual talent. exceptionals and solid individual contributors
  • stability and continuity

With those two things the team will be successful whatever current design methodology or way to organize people and work is used. Without these two things, especially talented personnel, no amount of software design or organizational fads will overcome it; the team will struggle.

That's it. twenty-five years in the books. it was a good choice for me getting into this business. hopefully I have at least a few good years left.