Categories
Career

Lessons learned in 35 years of making software

Today (3rd July, 2024) is my 35th anniversary working in and around the software industry. All but 18 months of that have been spent on software development teams; those errant 18 months were spent editing technology books. I figured out fast that it wasn’t for me, and came right back home to the software industry.

Me, working infinitely hard at one of my career stops

In 35 years, I’ve learned some strong lessons. Maybe they’re ones you’ve learned yourself already. We all learn at different paces and at different times!

Do things in the most straightforward way possible. It’s easy to fall into the trap of clever solutions, or clever applications of technology, or overbuilding something because you’re anticipating the future. Don’t do it. You will hate yourself for it later when you have to maintain it. Build the thing in the simplest way you can, as fast as you can. You can improve it over time as needs demand.

There is no substitute for working software in Production. I can’t believe now that I have been part of 18-month release projects. This was back in the bad old waterfall days, but even then it was possible to release a lot more frequently than that. The software we build is valuable. It builds the value of the company. When you hold it until it’s perfect, or everything you think it needs to be, you are holding back on building the company’s value. Find the fastest, shortest path to getting the smallest increment of the thing that will work into the customer’s hands. You can keep making it better from there.

Relationships matter if you want to advance. It took me until about ten years ago to start to understand how building relationships across any company I work for is critical if I want to move up, and even remain employed when times are tough. I’ve found that being relentlessly helpful to others, even in things that aren’t strictly your responsibility, keeps you as someone everybody wants on the team. And when you push for a promotion, you have a base of people across the company who think you’re awesome. It greases the skids.

Relationships matter if you want to see your vision come to life. You may have the best vision ever for the product and how it should be built. You may see something that isn’t working well and know just how to fix it. It’s a 90-degree uphill climb to make your vision reality when you aren’t well connected to people with the power to help you. Even if you’re at the lowest level of the organization, try to build relationships with key leaders.

Never be invisible. When I was still testing software for my supper, I’d just quietly work all day and then go home. I’m going to toot my own horn a little: I was fast and good at finding the most critical bugs. Nobody could touch me. But, critically, nobody in leadership knew it. When I wanted to move up, I had a hard time showing that I was ready. I needed to make sure my work was visible, so that leaders could see what I was capable of.

Build and maintain a network of people in our field, outside the company you currently work for. As I write this, I realize I have let my network fall off since the pandemic. I need to rebuild it. My network has saved my bacon more than once when I unexpectedly lost a job. I wouldn’t be at my current company without my network. I got introduced to a particular fellow about ten years ago and we had coffee. We really enjoyed the conversation and committed to coffee once a quarter, a habit we kept for many years. It fell off in time as his life took him in a different direction. He was connected to the CTO at this company, who was trying to figure out how to build out the QA team and test process. My colleague connected me to him, and I gave him some free advice that he used. He thought I was sharp enough that when his Director of Engineering left to start his own venture, he called me and asked me if I would be interested in the job.

Be willing. There have been plenty of things in my career that I didn’t know how to do, but when my boss asked me to do it, I simply said I’d figure it out. As you do this, it’s good for you in two ways. First, bosses like people who accept assignments and figure them out. Second, you then learn how to do the thing and can do it again; you’ve built skill. In my time at my current company, my CTO has asked me to do plenty of things I didn’t know how to do. I simply said yes and got on with figuring it out. Someone who already knew how to do it could have done it faster and better, for sure, but I got it done. We all have to start somewhere when we learn how to do something.

Chase adventure and interestingness, not salary and title. This might be controversial with some, for whom salary and title are critical. So be it. We’re ridiculously well paid in this industry, even at the entry level. I’ve had a varied career, from technical writing to QA to engineering. I’ve said yes to, or chased after, things that sounded like would be challenging and interesting, and therefore fun. The money and positions have come to me in time. I might have gotten them a lot faster had I chased after them instead. What I got was a fascinating career and a great deal of personal and professional growth. I regret a couple choices, and a couple other choices totally didn’t work out for me. But there’s so much opportunity in this industry (even though the downturn we’re living through has tightened that up for now) that you can recover from that.

Challenge yourself to stretch past your natural tendencies. I loved it back in the waterfall days that I could pick up a big assignment and go work on it alone for weeks. Frankly, I still would love to do that. Those days were always so comfortable – come to the office, get some coffee, put on headphones, and chip away at my assignment all day. What I didn’t understand was that it kept me off everybody’s radar. I’m not a highly competitive person. I mostly want everyone to get along and work together. But unfortunately for me, there are times when you need to be competitive to keep your job, such as when a company has a rough time financially. I had to figure out how to show visible value all the time so that the sentiment was, “well, we can’t let Jim Grey go, he gets so much good stuff done.”

Understand that different social classes have different ideas about how the world works. I grew up working class, blue collar. We work in a white-collar industry. Because of my background, I thought that if I worked hard and did good work, I would rise. That was true for my dad, who rose from factory floor, to quality control, to quality manager, and finally plant manager. But in a white-collar world, it’s far more about relationships and power than about your work. I still struggle with this lesson. I still want it to be about my work. But it wasn’t until I built relationships and power that I was able to reach the Director level. If I ever want to make the VP level, I have even more work to do there.

When you deliver work you’re really proud of, you’ve almost certainly done too much and taken too long. I have a bit of a perfectionist streak. I want to do my work well and thoroughly. It took me a long time to learn that when I do that, it’s for me, not for the company. When I’ve reached 60-80% of the thing being as good as I want, I’ve probably done enough.

The software we are building right now will one day be decommissioned and not be used anymore, probably before your career is over. I’ve lost track of all of the software I’ve delivered that isn’t running anywhere anymore. Some of that is because my career is 35 years long. But even some of the software I worked on five or ten years ago isn’t running anymore. This is another good reason to build small increments, just good enough, get them out there, and iterate from there. Anything more and you’ve overbuilt some software that isn’t going to run forever anyway.

Categories
Career

To move your career forward, focus on what your company thinks is valuable

By Jim Grey (about)

Early in my career I wrote thick paper manuals for a company’s highly technical software products. (Paper manuals were still very much a thing 34 years ago when I started writing them.) I really liked the work and dreamed of becoming an independent technical author.

The company lost its biggest customer and that put us in serious financial trouble. We needed to ship the next release of a particular product fast to close some product gaps that were blocking sales. My boss reassigned me from writing to testing.

One of the many books I edited. If you find a copy, look on the page right before the Table of Contents and you’ll find my name.

I was not happy about it. At all. I didn’t hate testing, and I could see that they needed more testers to accelerate the schedule. But testing didn’t move me toward my dreams. So I quit to become an editor for a technology publishing company.

That job turned out to be a meat grinder. And then I learned that authors didn’t really make that much money from their books. I’d have to kill myself working to make a good living as an author. So I quit and went to a different company in the software industry.

But this isn’t really about my dream. It’s about a missed opportunity, which was to make a name for myself with those people in that place, materially helping them save the company by doing the critical job they asked me to do. The company did not need more user manuals right then, it needed working software to sell. I could have helped with that. 

Lots of people left that company during that time and it didn’t make it. In my view, if we had all stuck it out and done the things that were needed, even if they were not things we would have preferred to do, we might have pulled the company through. What a story that would have been to be able to tell!

Even in less urgent times, wherever you work, understand what your company thinks is valuable and align yourself hard to those things. Throw yourself into them. Skate to where the puck is.

First, it helps the company more powerfully achieve its goals. Second, it helps you in your career to be seen as someone who’s seriously in the game. That’s good for you.

This does not mean you shouldn’t advocate for things that you think are valuable. I’m sure you see a dozen things that your company doesn’t pay attention to that it probably ought to. Fight the good fight while you give them what they value.

This also does not mean you should align to things that are illegal or immoral. If your company asks you to do that, obviously you should get out.

As a leader I love it when I say, “I need X,” and my team gives me X in abundance. It’s not because my ego needs that stroke, but because X is highly valuable. You giving me that highly valuable stuff leads me to see you as a highly valuable player. It makes it a lot more likely that I might call you one day after we’ve all gone on to work elsewhere, and ask you to join my team again. I know you to be someone who delivers valuable things in abundance!

Categories
Career

The farther you go up the ladder, the less it’s about your technical skills

By Jim Grey (about)

I just finished writing new job descriptions for the software engineers and quality engineers in my organization as part of a new titling and leveling system we’re rolling out.

Job descriptions are an important part of knowing what skills and experience are expected of you in your role and level, and at levels above you so you can work toward promotion. But they are not meant to be, not able to be, a hard-and-fast roadmap to promotion.

That’s because the higher up the ladder you go, whether as an engineer or a manager, the more you need soft skills that job descriptions aren’t designed to capture.

By soft skills I mean things like:

  • Straight up social skills – being able to build connections with others, to collaborate successfully, even simply to have a human conversation with people (especially leaders) outside your immediate sphere.
  • Communication – being able to clearly and crisply explain technical concepts and implementations so that others can follow you, especially if they’re not engineers; being able to put together a good slide deck and write a good position paper; knowing when and how to escalate things up the chain.
  • Leadership – seeing what needs to be done and getting others to follow you in doing it, taking calculated risks, being comfortable with failure.
  • Power – being able to identify the key people you need in your corner, build reciprocal relationships with them, and use this as your power base.
  • Maturity – managing your time and energy, your emotions, your decorum.

Somewhere along the way I saw a model that describes how hard and soft skills relate as you move up the ladder. Here’s a rough diagram of it:

Credit where credit is due: I searched until I found where I learned this and it was from this article: https://codecapsule.com/2021/07/15/the-skills-map-of-senior-tech-career-progression/

Notice that on this model some people at the Senior Principal level may not have technical skills better than a Staff Engineer. They just have outstanding soft skills that let them have a much bigger impact on the organization. Heck, my technical skills are, at best, on par with a mid-level engineer. It’s been a long time since I coded! Yet here I am, the Director of Engineering. It’s because I’m technical enough, and I’ve learned the soft skills I need. As a result, I can have the impact expected of a Director.

The farther up the ladder you go, whether on the technical or managerial track, the bigger the impact you are expected to make. You can’t make the bigger impacts without those soft skills. It’s because you increasingly need to work with and influence others, and even build a power base, the more you rise.

Learning soft skills has not come easy for me. At all. I have had to learn them all by watching others who are good at them and straight up mimicking them until I could do them easily enough. At my core I’m deeply introverted, probably mildly autistic, reticent and anxious. I’ve had to push myself to take some big (to me) risks, over and over again, to become truly good at leading, and gain confidence.

You can’t quantify soft skills. The people who hold the keys to saying Yes to your next promotion have little choice but to judge your soft skills to the best of their abilities, and compare them to what they see the needs are at the next level.

Ten years ago I was a QA Manager at another company. I badly wanted to be Director of QA. A new executive from outside the company was hired and became my boss. We fit together really well, and after a little while she told me she wanted to promote me. Woot!

But then she was abruptly reassigned to turn around a troubled part of the company, and in time I got yet another new executive as my boss. He soon decided that he wanted a Director of QA, but it was clear that I wasn’t his automatic choice. Rather, he posted it externally. I interviewed for it, but he hired a fellow from outside the company instead.

This fellow didn’t have nearly the QA chops that I did, which pissed me off. Yet within his first 30 days on the job he had built rapport and trust with a whole bunch of key leaders in the organization. I had not managed to do that in four years with that company. Compared to me, he was a master of soft skills.

This is judgment at play. I was the same person under both executives. 

This felt unfair to me at the time, but eventually I came to see that this wasn’t a matter of fairness. Rather, given the new executive’s vision he wanted something different from his Director of QA than the previous executive did. He didn’t see that I had it.

I had to leave that company to finally get the Director title. There I found I needed to work on some soft skills pronto, as it didn’t take long before I struggled to move ideas forward. I just didn’t know how to build that power base I needed.

Where I work now, the CTO gave me a terrific development plan in January that is helping me build the soft skills I still need to succeed at a higher level here, should one ever become available. To be a viable candidate for promotion, I need to gain certain soft skills at the next level — not technical skills, at all. The higher up the ladder you go the less often promotions come around, so who knows if it will ever happen for me here. Fortunately, I really, really like being Director and can keep doing this job indefinitely. And I’m enjoying the growth my development plan is driving.

The moral of this story for you is that if you want more out of your career, lean into soft skills at least as much as you lean into technical skills.

Categories
Career

Surviving the downturn

By Jim Grey (about)

For years there have been more jobs than people in our industry, and supply and demand kept driving salaries up. But now across the industry there have been layoffs. I imagine you are feeling uncertain and insecure now. That’s normal and natural. I feel it too.

In our industry, security is illusory. Every software company is always one or two bad quarters away from a layoff, or worse.

A photo of me on the job at the ERP company

Here’s a story of this in the extreme. In 1997 I joined a software company that made an ERP system for small and mid-sized manufacturers. It was a wonderful place to work. Sales were fantastic, and we grew enough over the next three years that we IPO’d. I was granted 30,000 stock options and dreamed of an outcome that would pay off my house.

Then the dot-com bubble burst, and September 11th happened. The bottom fell out of the entire software industry – nobody was buying software. That company had layoffs every quarter, and my turn finally came. My stock options had become worthless. 

But worse, I had kids to feed and a mortgage to pay. Industry jobs were scarce. Through a lucky break, I landed an individual contributor role on a software team at a very large health insurer. The culture there was terrible, but the pay was surprisingly good and I could take care of my family.

The last time I found myself involuntarily without a job was in late 2018. I saw signs it was coming, and I was worried and anxious. I wasn’t even happy there! But when it happened it was still a loss, and nobody likes to lose. Also, I’m not wealthy; I needed those paychecks. 

I had been Director of Engineering there, and the best job I could find in time was an Engineering Manager for a large, slow software company with a bad culture and ancient technology. I gritted my teeth and got on with it, for my bills weren’t willing to wait for me to find a better job.

What I’ve had to do – and what I encourage you to do – is become comfortable with the uncertainty inherent in our industry. But also, know that the overall trajectory of the industry is strong. It has recovered powerfully from every dip – we are in the third one in my 34 years in the industry – and is very likely to keep doing that.

If you just can’t find a way to get comfortable with our industry’s inherent instability, consider finding work at a big insurance company or bank. A whole bunch of developers and testers I worked with at the health insurer 20 years ago are still there. 

To make yourself more able to pull through downturns, focus on things you can control. A long time ago I learned about The Three Freedoms, and leaning into them has helped me find a new job faster when I was out on my ear:

  • Freedom skills – Make sure that you can do things for which there is demand. I know an engineer from that ERP company who never moved off that company’s core technology, which was a language called Visual FoxPro. Never heard of it? That’s because nobody’s used it in 15 years. He has made himself irrelevant. 
  • Freedom contacts – Build your network in the industry. I could write a whole article about this one topic. But in short: Stay in touch with good people you’ve worked for and with in the past. Ask them to introduce you to people they know but you don’t. Make a regular habit of having coffee, lunch, or beers with these people. Then when it’s time for you to find a new job, you can contact all of these people, who can keep their ears to the ground for you.
  • Freedom money – Save powerfully. If you have six or 12 months of living expenses in the bank, losing your job is not a crisis. This also lets you quit a situation that is bad for your mental health.
Categories
Work Life

Working in the software industry, circa 1989

By Jim Grey (about)

Indulge me today as I tell a story. It’s a long one, so strap in. 

My 33rd anniversary in the software industry was the Sunday that just passed, July 3. I remember the date because my second day on the job was a paid holiday!

I want to show you just how far our industry has come and how much we’ve learned.

The logo of the first software company I worked for — it’s a low-res copy because the company has been gone since 1996 and this is all I could find on the Internet.

The first software company I worked for was Applied Computing Devices in Terre Haute, Indiana. That place was filled with wicked smart people, and it was a joy to work with them. We made software that managed telephone networks. Our customers were AT&T; US Sprint (now called just Sprint); GTE (now Verizon); and several Regional Bell Operating Companies (landline phone companies) including Ameritech (which served Indiana), BellSouth, and Pacific Bell. These companies provided primarily landline (“wireline” in the biz) telephone service then but some were beginning to branch into mobile service. This was complicated stuff to manage, and our software products were correspondingly complex. I needed my 400-level college mathematics classes to understand some elements of our software.

I wasn’t a software engineer – I was a technical writer. I wrote huge paper manuals we shipped to customers that explained to them how to install, configure, and use our software. The software industry was very small then, and as I graduated with my Math/CS degree the economy was in a downturn. I wasn’t getting many interviews for coding jobs and the interviews I did get didn’t lead to offers. 

I lived on campus that summer while I looked for work, but the summer would soon end and I’d have to go home and live with Dad. I had zero interest in doing that, so I decided to pivot to just getting any job at a software company – QA, support, IT, janitor, anything. I’d figure out my way from there. 

A professor at my school knew people at ACD and introduced me. They needed a technical writer. I said I’d happily do the job, and they hired me at $23,000 a year (about $54,000 today). To my astonishment I discovered that I loved to write, even more than I enjoyed writing code. I became very good at explaining that deeply technical software to users.

The ACD building, which is now home to Rose-Hulman Ventures

What I really want to tell you about is what working there was like, aside from being in awe of my super smart co-workers. The software industry was very different then!

Lots of things we all take for granted didn’t exist. The Internet existed but not the Web. Software was delivered to customers on tapes or floppy disks. The CD burner was still a few years in the future. Java didn’t exist, JavaScript didn’t exist, .NET didn’t exist. Languages commonly in use then were C/C++, FORTRAN, Pascal, Ada, Perl, Tcl, and Lisp. Oh, and of course COBOL. I had a summer job in college as a Pascal programmer! Object-oriented programming existed, but was niche. The leading OO language then was Smalltalk. One of my college roommates became very big in the Smalltalk community, and even wrote books about Smalltalk

Finally, software subscriptions were not a thing yet. Companies paid for software entirely up front and got to use the release they bought forever. They had to pay again for major upgrades. Some smart companies spread their payments out over a period of years, but the license was still perpetual.

When you mailed customers the new version of your product most of them wouldn’t install it right away and some would never install it. “The version we’re on works just fine for us.” It was a nightmare in support. We finally decided to support only the last four versions, to our customers’ extreme frustration but the support team’s undying gratitude.

The best SDLC available was waterfall with all of its problems that were not lost on us even then. The whole industry did very long release projects, such as two months of requirements gathering and design specification followed by nine months of coding and then three months of testing. Even if we did see then (and we mostly didn’t) that small, frequent releases were better in a whole bunch of ways, we couldn’t really do it. It was expensive to ship on physical media, and disruptive to our customers to have to do frequent installs.

We thought back then that software development projects should be managed like manufacturing or construction projects. That led us to create enormous Gantt charts (printed dot matrix) that we’d tack onto a huge wall, and use them to track plans and work completed. It never failed that during the first week of coding we’d discover something that we didn’t think of in the design phase, and we’d have to replan the entire project and print all new Gantt charts. We did this over and over every project. 

When the code finally reached QA, the testers would find hundreds or thousands of bugs. They had hardly seen the software before it reached them, and were only barely involved during the construction phase. Because of sheer bug volume, the test phase always needed to go way longer than planned. But by then we’d promised a delivery date to customers. So we could hit the promised date, every release went out with a whole bunch of known bugs that we’d fix in what we called a “fast follower” release several weeks later. Smart customers learned not to install the release until the “fast follower” was available.

Because of all this, projects always turned into awful death marches with lots of late nights and weekends in the weeks leading up to the release date. Burnout was high. But few people quit over it because we thought it was just how it had to be. There weren’t many other software companies to defect to anyway, and the ones that existed had death marches too.

ACD’s tech stack (which was a term we didn’t have then) was C++ on two flavors of UNIX: Digital Equipment Corporation’s Ultrix and IBM’s AIX. Our software ran on DEC and IBM RISC-based minicomputers, machines that were about the size of a bar fridge. We had a whole bunch of them in a big, cold server room. Because we were on the outskirts of Terre Haute our power was supplied by a rural power cooperative and wasn’t terribly reliable. I don’t know why we didn’t have uninterruptible power supplies or a generator, but we didn’t. About once a month we had a short power outage. The minicomputers were chained in sequence and had to boot in order. It took about 10 minutes for one machine to boot. It took more than three hours for all of the computers to finish booting. If the power flickered after about 2 pm, we all just went home for the day.

There was no working from home. The minicomputers were available only on the in-office network. I think it was not technically impossible to connect them to the Internet, but at home we all had only dialup access. Not only would speed have been a concern, but the family wouldn’t enjoy having the phone tied up for hours while you worked.

Everyone had a terminal on their desk on which they did everything. At first all engineers used the venerable VT100 terminal, but later they bought them all these huge $2,000 graphics terminals so they could build the UI in X Windows. UX design wasn’t a thing yet. For that matter, neither was the distinction between front end and back end engineering. Our software engineers designed our user interface, and most of them weren’t good at it.

As a technical writer, I had a Macintosh II computer on my desk running System 6. (System is what MacOS used to be called.) It had 8 MB of RAM. That was a screaming machine in its day. I wrote manuals in a program called Interleaf. I used a terminal emulator on the Mac to connect to the minicomputers.

There was a holy war over text editors. IDEs weren’t a thing yet, so we all coded in a text editor. I was firmly in the Emacs camp, but most of my co-workers loved vi.

Our terminals were on a token-ring network linked back to those minicomputers. Token-ring networks don’t function unless the chain of nodes on it is complete, as information flowed through every node on its way around the network. I did not know this the day I decided to rearrange my cubicle. When I unplugged my terminal to move it, I took half of the network down. I was not anyone’s favorite person that day.

AIX and Ultrix and their underlying hardware were different enough that our code was a mess of IF AIX and IF ULTRIX statements. Sometimes we had to write separate AIX and Ultrix versions of entire subroutines and functions. We had to compile the code twice, once on AIX and once on Ultrix! Java was a total game changer when it came out in 1995. You mean we can write one codebase with no OS- or hardware-dependent IFs and no separate routines, and run it on any machine that can run the JVM? Voodoo!

The software industry was a far less diverse place then. The strong majority of engineers were men, largely white, most of them younger than 35. Two of our engineering managers were women, I recall. We did have a few engineers who immigrated from elsewhere. There were no people of color. It was not safe to be out at work (or anywhere, really) then. I knew that one of the technical writers on my team was gay, but that’s only because we’d become friends and he decided to take the risk and come out to me.

The software engineering team had two titles: Software Engineer and Senior Software Engineer. This was typical in the industry. You had to have at least 10 years of experience, but more likely 15 years, as a Software Engineer before being considered for promotion to Senior. The bar was higher for Senior then, too. I’d say a Senior engineer back then was skilled and experienced more like a Staff or Principal engineer today.

I was very happy at ACD. I loved working there. Because there were only so many telephone companies then, however, we had maybe a dozen customers. Our relationship with US Sprint was always iffy, and one day we pissed them off one time too many and they canceled their contract and dared us to sue them over it. The loss of that revenue crippled us, and was the beginning of the end for ACD. The company started to circle the drain. I did not want to be unemployed in Terre Haute, so I took a job in Indianapolis and moved. Then as now, most Indiana software development happened in Indianapolis.

Let me tell you one last story from ACD, and it involves US Sprint. They were angry with us over one too many buggy releases. They sent us a list of all of the bugs they wanted fixed, and they wanted them fixed by Monday or they would buy a competitor’s product and move on from us. The Engineering team worked days and nights trying to fix those bugs. They worked into the weekend, but by Sunday morning they still had not licked a couple of particularly thorny bugs.

Remember that we had to ship code on physical media. We used tape cartridges, which were smaller than a VHS tape but way bigger than an audio cassette tape.

The Federal Express deadline was approaching on Sunday and the engineers still weren’t done. (Federal Express wouldn’t be renamed to FedEx for many years yet.) Then someone had a brilliant idea: we would ship US Sprint a blank tape with our usual letter listing the changes in the release. And so we did.

Monday we got a call from US Sprint: no matter what they tried, they were unable to load the software from the tape we sent them. Support was prepared: “Oh! We are so sorry. We can’t imagine what must have gone wrong! We will send you another tape today.”

By that time the engineers had fixed those last two bugs. We wrote the actual maintenance release to a new tape and sent it to US Sprint. The company lived to fight another day!

Categories
Work Life

The hidden reason companies want you back in the office

By Jim Grey (about)

It’s all over the news: workers are quitting their jobs instead of giving up working from home.

Who blames them? So much work can be done from wherever there’s a good Internet connection. Your commute is a quick trip downstairs or down the hall. You have fewer interruptions. You can much more fluidly blend work and life.

Yet many companies want people back in the office. It defies logic — until you consider that company leaders are sick of Zoom. They are ready to meet in person again.

Think about it. What do your managers do all day? If they’re anything like me, they sit in a lot of meetings. On a typical day, I have six hours of meetings. During the pandemic, I’ve spent a lot of time on Zoom — and it’s exhausting. I’m spent at the end of each day like I never was before. I think many people in leadership have the same experience.

The Pyramids
The Pyramids, distinctive office buildings here in Indianapolis

This could be driving us to want people to come back to the office, and to think that working together in the office is better. It is, for us leaders. We would do well to remember that most people in our companies are doing just fine at home.

I’m sure that if I were doing the kind of work I did before I moved into leadership many years ago — coding, testing, writing — I would not want to return to the office with all of its noise and interruptions. But as a leader, absent a radical shift in how the kind of work I do gets done, I will prefer to talk with people in person, which means being in the office.

I went to the office on Tuesday for a big group meeting. Leaders in Product, Engineering, and Architecture met to figure out the platform and architecture work necessary to support the product roadmap. We met all day, and then we went out for dinner together.

I normally hate all-day meetings. But Tuesday was glorious. Our discussion was fluid; we even bantered. Nobody froze because of Internet problems. During breaks, we talked casually. We accomplished a great deal and we built camaraderie. And, critically, I had energy to spare at day’s end.

The next day I worked from home. One of my meetings was with the CTO and the VP of Product, both of whom happened to be in the office. They were able to talk easily and I struggled a little to get a word in edgewise via Zoom. I regretted not driving in!

There are real disadvantages to going back to the office. I’ll gain a long commute back. I’ll no longer be able to throw in a load of laundry, or ride my bike over lunch, or even start dinner immediately at quitting time. Heck, during the pandemic there were even a few afternoons when, after a rough night’s sleep, I took a 30-minute snooze. That was amazing — and impossible in the office, as there’s nowhere to do it, and it’s generally frowned upon anyway.

But I will happily trade those things away to regain good, fluid, personal conversations with people, and be less drained at day’s end.

Many people I work with will keep working from home. That’s fine; I can Zoom with them from the office. But most leaders at my company will return to the office four or five days a week. Most of my meetings involve them anyway, and we will meet in person.

Companies will be wise to remember that experiences vary depending on the nature of the job and role, and work to find compromises that give people as much of what they want as possible, in terms of where they work.

Categories
Career

Nine tips for interviewing over Zoom

By Jim Grey (about)

I’ve been hiring engineers and testers lately. Even though pandemic restrictions are starting to lift, most of us are still working from home. So are the people I’m interviewing. That means I’m interviewing over Zoom.

I care a lot more about a candidate’s qualifications than I do about how they present on Zoom. I hope it’s true of all hiring managers. However, good presentation removes any subtle biases and barriers to your success.

What I look like on a Zoom meeting

Here are a few tips from the trenches that can help you present well.

  1. Video and audio quality need only be adequate. You don’t need pro equipment. The camera and microphone in your laptop are sufficient. A webcam from a major manufacturer will be fine. A headset might reduce ambient noise; try one and see.
  2. Test the videoconferencing platform before the meeting. A few times, candidates have struggled to get Zoom to work, and we lost the first five or ten minutes of the interview. If you know what videoconferencing platform the interview will use, install it on your computer well in advance and make sure your camera and microphone both work with it. Also make sure you know where the mute button is and how to recognize when you’re muted. Know where the app’s audio settings are, in case they say need you to turn up the volume on your end. If you don’t know what videoconferencing platform will be used, record ten seconds of yourself reading something into your computer’s video app. Play it back to see how it looks and sounds, and adjust settings in your computer accordingly.
  3. If you can, do it in a quiet place. I got to listen to loud sirens in one interview, as fire trucks rumbled by on their way to a call. I am embarrassed to admit that one interviewee got to listen to our microwave oven roar and beep while my son heated up a burrito, as my home office is just off the kitchen. Neither was the end of the world, but it would have been nicer not to have those interruptions.
  4. If you must use your phone, set it steady and level, in portrait orientation. One candidate used her phone, and turned it sideways so I appeared larger on her screen. But Zoom didn’t correct the orientation of her camera, and she appeared sideways on my screen. Another candidate held his phone in his hand the whole time, and it was a jerky experience. Get a stand for your phone.
  5. Face the camera. I know a lot of people place their laptop to the side and their main monitor in front of them. But then they appear in profile on camera, as if they’re speaking to someone outside the frame. If this is you, use the laptop screen for the interview. Or do what I did, buy a USB webcam and set it on top of your monitor.
  6. Position your camera so the top of your head is near the top of the screen, and you are centered horizontally. I spoke to one candidate who I could see only from his nose up, his head at the very bottom left of the Zoom window. I got a great view of his ceiling above. Another candidate appeared to tower over me on screen, as his monitor was somehow above his camera. When you are front and center, it’s far easier for the interviewer to connect with you. You may need to elevate your laptop to achieve this; a stack of books may do the trick.
  7. Consider how much or little of your body you want to show. My camera’s position and field of view reveals my torso from the sternum up. I’m good with that, but perhaps you prefer to show less of yourself. You can move closer to the camera, or buy a camera with a narrower field of view. Alternatively, for some cameras (like my webcam) Zoom lets you turn off HD, which will make you appear closer on the screen and show less of your body.
  8. Make sure the room behind you is tidy. In one screening call, I got a great view of the candidate’s unmade bed and some dirty clothes piled up on the dresser behind it. Tidy up behind you! If that’s not possible for some reason, consider using a Zoom background (but know that some people find them to be distracting). To use a background, you need to download Zoom in advance.
  9. Pay attention to clothes and grooming. One fellow appeared on my screen looking like he just crawled out of bed. You don’t need to dress formally for a Zoom interview, but do make sure your hair is in order, your face is clean, and your shirt is fresh.
Categories
Career

Fortune’s careless aim

By Jim Grey (about)

It’s the American mythos: if you work hard enough, you can accomplish anything. But I no longer think it’s true.

Mind you, I’m all for hard work. But I think success also requires good resources and good luck. Actually, I think resources and luck are more important than hard work. They make hard work gain solid traction. Without them, a lifetime of hard work usually yields very little.

I see it all the time in the inner-city church I attend: teens struggling to make a viable life as they enter adulthood, adults working hard only to barely tread water. Many of these people are bright and capable and have dreams they’d like to achieve. Few of them make a stable life, despite their best efforts.

In contrast, I’ve done well in my life. I make upper-middle-class money — not so much that I’m free from financial worry, but enough that the wolves are so far from the door that I’ve pretty much forgotten what they look like.

What has brought my good fortune? Hard work has certainly been important. But I’ve also had resources that my inner-city church friends simply lack, and those resources and my willingness to work have let me capitalize on the luck that has come my way.

My story illustrates my point very well. So I’m going to tell it three times: first through the lens of hard work, then through the lens of resources and luck, and finally through the lens of some of the difficulties I’ve faced, some of which were severe. As you read it, think of your story. How hard have you worked? What setbacks have you experienced? How have your resources and luck enabled — or lack thereof limited — success?

My story through the lens of hard work

Here’s the version of my life story, from the perspective of the success I’ve found in my life. Told this way, it looks like hard work really pays off.

I applied myself in school and got good grades. I also learned how to program computers. These things got me into a top engineering school where I worked harder than ever before or since. I got a degree in mathematics and computer science. I moved into a career in software development, where I’ve worked hard for more than a quarter century now and have risen through the ranks. Today, I’m a director in a software company. I have an upper-middle-class job and I’m doing well.

My story through the lens of resources and luck

I have worked hard. But when you look at my life through a wider lens, you can see how many resources I had available to me, and how good luck at key moments led to important opportunities.

I was born in 1967 to working-class parents who had high-school educations. We didn’t have much for a long time, but my parents were frugal and we never went without. Manufacturing jobs were reasonably plentiful then and Dad worked steadily. He was smart and capable, and in the 1980s was promoted to management.

My parents deliberately created a quiet, stable environment for my younger brother and me. We were well cared for and loved. Education was everything to them. Homework came first. They praised and rewarded our scholastic achievements. They always spoke of college as something we would do as if it were the natural next step after high school.

I was intelligent. I taught myself to read by age 3. And then I turned out to be well-suited for school — I was naturally well behaved and liked the rules and structure. I did the work and got excellent grades. In high school, I was accepted into all the advanced-placement classes, and I liked the challenge.

As I entered high school, the then-new home computers were just becoming affordable. I’d shown aptitude so Dad, flush with a new management-level salary, bought me one. I taught myself to write code on it. I spent hours mastering programming and really loved it.

I started writing programs to illustrate the concepts I was learning in my advanced-placement geometry class, and the teacher learned of it and had me demonstrate them to the class. He was impressed. “Jim, you could do this for a living.” That was a revelation: I had no idea people made careers out of programming computers. “You’ve got talent,” he continued. “You should study at Rose-Hulman. You have what it takes to make it there.”

I’d never heard of Rose-Hulman. It turns out it’s one of the nation’s top engineering schools, and it’s here in Indiana. I thought surely I couldn’t get in, but I applied anyway. To my astonishment, I was accepted.

MeAtRose1987
In my room at Rose in 1987

Rose is expensive, and was out of my family’s reach. But the Lilly Foundation, the philanthropic arm of Indiana pharmaceutical giant Eli Lilly and Company, was at that time helping bright first-generation college students go to private colleges. Their grant paid for a large portion of my college expenses. I also got a federal grant and a couple smaller scholarships. One federal program let me borrow some money, and another paid me to work part-time on campus. A state program helped me find summer work to earn more money. My parents were left with about 1/3 of the bill, bringing Rose just into reach. They lived on next to nothing while they paid for it.

Rose was enormously challenging — I never worked harder before or since. But I made it through, with a degree in mathematics and a concentration in computer science.

At graduation, the country was in a recession. Like many of my classmates, I had trouble landing a job. I wanted to be a programmer, but those jobs were scarce. But I had taken a technical-writing course as an English elective, and the professor connected me with a local software company that wanted to hire a technical writer. The company was founded by a Rose grad who liked to hire other Rose grads. I got the job.

I wrote and edited technical materials for a dozen years at several companies. At one company, my boss saw something in me and promoted me to manager. And then it turns out I had an aptitude for leading people, and liked it. After completing a successful and important project, he gave me a new opportunity to lead software testing, and mentored me as I learned the ropes.

A burgeoning software industry has formed in central Indiana, and I’ve ridden the wave, moving every few years from company to company to take on greater responsibilities and new challenges. Along the way, several people have mentored me or taught me a skill I lacked. It’s enabled me to deliver well everywhere I’ve worked.

It’s been enough to impress corporate CEOs and Vice Presidents all over town enough that I can call them up and meet them for coffee. Several years ago I reached out to them all in search of a new challenge. With their help, within eight weeks I was in a new role at a company with a bright future.

My story through the lens of life challenges

You might now think that I’ve lived a charmed life. But I have had some deep difficulties and stunning setbacks.

I’m not going to air my family’s dirty laundry here, but suffice it to say that there were challenges that led me to enter adulthood with difficulties forming healthy relationships, and that held me back for a long time. I lived with major depression and anxiety through my 20s and 30s. I was abused by someone who was supposed to love me and was left with PTSD. I endured a terrible marriage and, inevitably, a brutal and expensive divorce. I live with a chronic health issue that, for a while, I worried would leave me disabled. I’ve been let go twice by companies that couldn’t afford to pay me anymore, and I was fired not once, but twice.

These things have, point blank, held me back from greater success.

Yet they didn’t crush me. They could have; I’m not made of rock and titanium. I see people at my church struggle with many of the same challenges and it devastates their lives, leading to bankruptcy and homelessness, or severe chronic mental and physical illness. Sometimes they never recover.

The major difference, and the reason I’ve come through all of that okay, is because I’ve had good resources: family and friends who offered support, and money (and good insurance) to get help when I needed it.

Key themes in my story

Several key themes are woven through my story.

Timing. That I was born in 1967 is very important. I was about the right age for all of these things:

  • When I was a teenager, home computers became affordable to a family that had just emerged into the middle class.
  • When I entered engineering school, the Lilly Foundation was actively helping people in my situation pay for it.
  • When I entered the workforce, software companies were just starting to exist in quantity, creating demand for talent even during the recession we were in then.
  • When I began to mature in my field, the dot-com boom was forming and software companies were desperate for talent. It gave me the opportunity to move into leadership, which springboarded my career and, eventually, my income. That bubble burst, but another, more sustainable boom followed, and has created endless opportunity.

If I had been born a few years before or after 1967, I would have been the wrong age to fully enjoy most of these advantages.

Family. The family in which I grew up wasn’t perfect, but my parents loved me and raised me well overall. They didn’t have much money, but they were hyperfocused on making sure I got a very good education. They have been a source of support and encouragement throughout my life, especially during the most difficult days.

Natural abilities. I’m intelligent and intensely curious. My brain is wired just right to understand and enjoy technology.

Working/middle-class life skills. I know how to get to work on time and how to please my boss. I have good life-organization skills: there’s always enough food in the house, I pay my bills on time and have good credit, I keep my car and house well maintained (and do as much of the work myself as I can).

Willingness to work hard. I like to work. Look at me today: director in a software company, finishing raising my children, president of a nonprofit, elder in my church, publishing in my personal blog six days a week.

Good people. Just look at all the people who have helped me: The geometry teacher. The English professor. The boss who promoted me to management and taught me the ropes in software testing. The other mentors and colleagues I’ve alluded to who have elevated my abilities and helped me find new opportunities. Friends who supported me through difficult times and connected me with professionals who could help me.

Money. Just look at all the places money came from. My parents’ labor and sacrifice. A philanthropic organization. Federal and Indiana governments. And now, a healthy salary thanks to being a reasonably talented person in a booming field. Funds have been available to pay for college, for lawyers through my expensive divorce, and for healthcare professionals.

These incredible resources have provided a solid foundation on which I’ve been able to build a pretty good life — and recover from setbacks and difficulties.

My story through the lens of great wealth

Let me try to tell my story through one more lens, as best as I can: from the viewpoint of someone who was born into far greater privilege than me.

One of my college roommates was from a very wealthy family. To give you an idea of just how wealthy, he grew up in his own wing of his family’s mansion. Given my working-class roots, we were an odd pair of friends. I had no real concept of his reality, and he had little concept of mine, but we had Rose-Hulman and computer programming in common and it made our friendship work.

He could see that I had no clue about what success looked like in his world. Sometimes he gingerly offered me advice from his perspective. More than once, he coached me hard to save money and build capital. “When you get your first job, save up $10,000 as fast as you can,” he said. He detailed some ways I should invest it. “And then save another $10,000. And keep investing. It won’t take that long, really, for your money to grow to $50,000 or $100,000 or beyond — and then you’ll have money you can really work with.”

I couldn’t get my head wrapped around it. I came from a mindset of working to pay the bills — and if you had any left over, it went into a fully liquid emergency fund. And $10,000 was an unimaginable sum to me then. Even if I could save it, why would I tie it up in investments? What if something went wrong and I needed it?

He also talked to me about the importance of building relationships in my career, especially with VPs and CEOs. But to me, people with such lofty titles might as well have been 25 feet tall. Who was I to them? Why would they want to even talk to me? What did I have to offer them anyway? I’d rather let my hard work and eventual accomplishments speak for themselves.

That friend and I slowly drifted apart after college, I think in some part because he was living in his upper-class reality and I was living life according to my working/middle-class rules. From my perspective, I’ve done something remarkable: moved up one socioeconomic class. I am living successfully! But I think my friend was frustrated to see me squander my resources and not build a good network.

With my success of about the last 15 years and the world to which it has introduced me, my mind has slowly, finally come to see where my wealthy friend was coming from. You see some of it towards the end of my resources-and-luck story: how I do have VP/CEO contacts now, and I maintain those relationships. But even then, I did it the working/middle-class way: by proving myself through my work first.

– – –

So consider your story. What time in the world were you born into and how did that play into your success? Were you born into poverty, the working or middle class, or wealth? What life skills did your upbringing give you or not give you? Was your family emotionally healthy and a source of strength in your life? Did you have any major setbacks in your life? If so, were you able to recover from them? Why or why not? Do you have good friends, good colleagues, good professional contacts? Where has money come from in your life and how has it helped you get ahead?

Because no matter how hard you’ve worked, without those advantages you would be nowhere near as successful as you have been.

Categories
Career

Changing jobs during a pandemic

By Jim Grey (about)

Even as I approached the building, all was strange. The front was still boarded up after last summer’s Black Lives Matter protests, the only such building on the block. My key card let me in the front door. It was irrational, I’m sure, but I thought it might not still work after not having used it in ten months. The lights were off in the lobby, as they were on my floor as the elevator doors opened.

My desk was as messy as I’d left it. I didn’t know when I took the week off in early March that I’d never use it again. The company ordered us all to work from home starting the Monday I was to return.

Fast forward to December. I received a fantastic offer from another company, one I would have been foolish to ignore. I took it. On my last day, I drove to my soon-to-be-former office to clean out my desk.

I’ve left jobs before, a dozen times. I have it down. I take stuff home little by little during my last two weeks so my desk is clear on my last day. After lunch I walk around and say personal goodbyes to everyone I can find who I ever worked with, wrapping up with my boss. Not only will I miss the people, who I genuinely enjoy, but also I want to leave a good final impression. The market I work in is small enough that I’m likely to work with some of them again. When I’ve said my final goodbye, I slip out the door.

This was all different. There had been a Zoom happy hour in my honor, which was a nice gesture. I said goodbyes in my normal meetings all during my final week. Anyone I didn’t see, I Slacked. But it all felt so disconnected.

Stepping off the elevator, the floor was silent but for the whoosh and hum of the HVAC. The last time I was on this floor it buzzed with such activity that I needed noise-canceling headphones to be able to focus. I sorted through my things, leaving a healthy portion of it in the wastebasket. I left my laptop and my key card on my desk, picked up my box, rode the elevator down, and walked out for the last time.

Monday morning I started at the new job. My commute didn’t change a bit: I came downstairs, sat at my desk, and started Zoom. But the faces I saw on the screen were all new.

The new company did a terrific job of onboarding, easily the best experience of my career. They committed to everyone’s first full week being nothing but group meetings with various people in the company telling us the company’s history and mission, how we make money, how administrative things work, and what our product looks like and how it works. We got to meet all of the executives.

Yet I kept wishing to see my old team in those little boxes. I really missed them! I always miss the good people I worked with when I leave a job, but never this acutely. But then, I didn’t get to say a proper goodbye.

Categories
Project Management Quality

Ship Mode: Recognizing when it’s time to stop polishing your work and just ship it

By Jim Grey (about)

Every creative project has three phases: make the thing, polish the thing, deliver the thing. The polish step is where you remove errors through testing, editing, inspection, or other review. The deliver step is where you put your work in people’s hands.

It’s so easy to get stuck on the polish step. You keep checking until you’re sure it’s perfect! This is all about fear. When your work is in the world, they can judge it. They can even ignore it. We want to avoid how bad that feels.

Also, perfection is expensive. You can spend as much time rooting out every tiny flaw as you did making the thing. Those tiny flaws will be embarrassing. But they won’t really hurt anything, and they won’t keep anyone from clicking Buy Now. Crucially, eliminating every last minor flaw keeps you from working on new projects that create new value.

When you’ve applied reasonable polish, when you feel the fear of rejection, it’s time to enter Ship Mode.

In Ship Mode, you single-mindedly do the tasks that put the work in people’s hands. You’re not looking for problems anymore. You choose to think of your work as a finished product. You might notice an error while you’re in Ship Mode, but unless it’s truly egregious, you keep shipping.

My new book was good enough to ship — but it’s not perfect

I write in my spare time, personal stories and essays. I’ve done it for years. I recently self-published a book of some of my earliest work. (Scroll to the bottom for more details!) I did the whole job: writing, editing, creating the print-ready and e-book files, and (now) marketing. I saved money doing it all myself, but I’m skilled in only some of these tasks. Also, there came a point where I’d looked at my book so much I had become blind to it.

I’m a recovering perfectionist and I’m mildly OCD (officially diagnosed). It was hard for me to learn to let go and enter Ship Mode. But I’m glad I learned it many years ago, or I would still be making myself nuts perfecting my book. I have a day job. There’s only so much time to work on side projects. If I polished this one to perfection, it would not be available for several more weeks yet.

Curse you, Page 50!

I saw it only in the last step of the submission process to Amazon: this ungraceful flow on page 50. No publishing company would allow a paragraph on one page to spill three words onto the next right before an illustration.

When I saw it I gritted my teeth. I probably said a four-letter word. But not only is this problem not egregious, but most readers won’t even recognize it as a problem. Nobody will demand a refund because of it. I clicked the Approve button to finish the submission. That’s Ship Mode!

I edited every story as I assembled the book, and then made two proofreading passes. But when my author copy arrived I found two typos in five minutes. How frustrating!

But I will be shocked if you find something really messed up, like garbled sentences or missing paragraphs. During the polish phase I sweated out everything that would have seriously damaged your experience with the book.

And then I got on with shipping it so you could read it and, I hope, enjoy it.

Ship Mode! Because there’s a point past which polish doesn’t pay.


My new book, A Place to Start: Stories and Essays from Down the Road, collects early work from my personal blog. I had just come through a great difficulty in my life, a real setback that left me reeling. Through writing my stories I was able to make sense of what had happened so I could move on. My book captures those stories and shows a way to find your way through hard times to a better future.

Here’s how you can get my new book: