New Year New Goals - Eyes on the Software Landscape
Jan 6, 2022 | Last edit: Jan 6, 2022
New year, new goals. The coming of January often inspires us to seek out changes for the better. Better habits, healthy eating, a more fulfilling job, a plan to travel somewhere exciting.
This year especially has been hard, as we struggle to emerge from an ongoing health crisis. In the workplace, we're calling it the Great Resignation as more people than ever quit to find a better job or simply quit in search of happier living.
The software industry has its own notoriety for frequent job changes. One reason, I think, is that it's still a pretty young space and evolving very rapidly. Another reason is that career paths aren't very rigid, offering a wide variety of opportunities for change, which can easily lead to confusion or choice overload.
Aspiring software developers complain that it's hard to get a foothold in the industry because so many open positions demand a minimum level of work experience. At the same time, it's common to hear mid-career professionals ask "what should my next move be?" Among senior career people, the phrase is burnout.
It's hard all over! For me, one thing that has helped make sense of it all is to focus on what sort of patterns are common to an industry. What sort of tasks are common? What sort of contributions are needed, like are workers asked to generate creative output or analyze complex sets of data?
Software discussions often focus on what is the best language to learn, or what job titles earn bigger salaries. I recognize there is a connection between those things, but not always in the ways we expect.
Marianne Bellotti has written a wonderful book called "Kill It With Fire: Manage Aging Computer Systems (and Future Proof Modern Ones)." She unpacks some fascinating history about how computer languages became associated with certain professional groups.
"The design of the language is never what's important; it's the people. The type of people who would have become COBOL programmers before are now becoming Java programmers, making Java the natural choice, despite that it was not designed to handle the use case for which COBOL was optimized.
Perhaps that's why so much COBOL remains in place, having resisted all attempts to eliminate it."
Source: Bellotti, Marianne. Kill It With Fire
In my limited experience in software, I have identified some of those connections. And that has helped me think about future career choices, and provide some context for newcomers to the industry.
The question "what computer language should I learn" can be met with: "well, what sort of work do you want to do, and what industry do you want to do it in?"
It's easier for most of us to answer questions like "do you want to work in the banking or finance industry?" Sure, there's some math and counting that happens, but also there are lots of rules and regulation, controls and security. To some folks, that constraint seems horrible; to others it's ideal to have a lot of clear guidelines. But answering the first question can make it easier to arrive at suggestions on what type of software engineering is best suited to a person.
I've done a lot of work in the communications and media sector. We use a lot of PHP, platforms like Drupal and Wordpress. To some degree, PHP is great because it works easily with forms to collect data and templates to layout data -- things that were important to print media people. And yet, there is a history that brought those tools into the industry with some amount of fortune and chance.
I don't pretend to know the history as well as Ms. Bellotti. But looking around the field, some of the connections start to emerge.
Banking, for example, is a sector where I have seen a lot of job openings for Javascript front-end and document-database developers. No doubt, banks were among the early adopters of big computer systems to manage their data many decades ago. Migrating all of that to some new software system in the cloud is almost impossible to imagine. But it is possible to design and build new user-interfaces that connect to those systems, and platforms like Angular are great candidates.
Data science is a relatively new field. Naturally, there is a community of academics and scientists who are involved, but it's also prominent among large consumer brands and retail. The popular tools to use are R and python.
That's just a tiny window into the landscape, based on my experience. While it's a confusing and demanding place to work, it's one that also offers a lot of opportunity for those willing to invest in it.