The Soft Side of Software

  Download PDF version of this article PDF

Fresh Starts

Just because you have been doing it the same way doesn't mean you are doing it the right way.


Kate Matsudaira

I love fresh starts. Growing up, one of my favorite things was starting a new school year. From the fresh school supplies (I am still a sucker for pen and paper) to the promise of a new class of students, teachers, and lessons, I couldn't wait for summer to be over and to go back to school.

The same thing happens with new jobs (and to some extent, new teams and new projects). They reinvigorate you, excite you, and get you going.

The trouble is that starting anew isn't something you get to do all the time. For some people it might happen once a year, once every two years, or once every four years. Furthermore, learning something new isn't always in the best interest of your employer. Of course, great managers want you constantly to be learning and advancing your career, but if you are doing your job well, they also probably like the idea of keeping you in that role where they can rely on you to get the work done. Putting you into a position where you will have to work hard to learn new skills isn't always best for your company—and so it probably doesn't happen often.

Wouldn't it be great if you frequently were in a position where you were pushed to grow outside of your comfort zone? Where you had to start new and fresh?

Well, the good news is that you can. In fact, you can make your current position one that focuses on your growth and extends the boundaries of your knowledge—and that is all up to you.

In technology and computer science, almost more than any other field, a growth mindset is mandatory for success. In this field the tools and best practices are constantly evolving—there is always something new to learn. For many people this high rate of change can be overwhelming, but for the right person this can mean opportunity. When you are willing to dive in and learn new skills, it puts you ahead of the game; and when you are strategic about what skills you learn, it can help you grow your career even faster.

No matter where you are in your career, there is more to learn. All of us can always use an excuse to get more invigorated and excited by our jobs. Here are three steps you can take to develop your current role and make tomorrow (or even the rest of today) a fresh start.

Create a learning plan

When you have been doing a job for a while, there isn't as much for you to learn in your day-to-day. Sure, there are always opportunities to improve little things, but your rate of knowledge acquisition slows down the longer you have been in a position. This makes it even more important to have a learning plan. You should have a list of things you plan to learn with some concrete tasks associated with each. If you need some inspiration on what should be on this list, here are some questions to ponder:

• To be promoted to the next level in your job, what do you need to accomplish? Are there any skills you need to acquire or improve?

• If you think 10 years into the future, what do you want to do? Do you know anyone doing that now? What do they know that you don't?

• Look back over your past performance reviews. Are there any areas where you could continue to develop and improve? If you ask others for feedback, what would they say and how can you do better?

Build better relationships

Most of us spend more time with our coworkers than our families. When you have great relationships with the people you work with everyday, you tend to be happier—and you tend to be more productive and collaborative. Also, when people like you and want to help you, then you are more likely to get promoted and discover opportunities. Here are two ideas for improving your working relationships:

• Improve your communication skills. When you get better at writing emails, or verbal presentation, you help share information, and this creates better decision-making across your whole team.

• Take someone to lunch. If you work with someone you don't know very well, or haven't had the best working relationship with, make the first move and ask this person to lunch or coffee. This is a great way to get to know people and understand their points of view. Working relationships are usually strained because two sides are making incorrect assumptions, and the first step is opening the lines of communication. Be open, practice your listening skills, and offer to foot the bill—for the cost of a lunch you would be amazed at how much that gesture can improve your work life.

Make better use of your down time

One of my favorite time-management tricks is using spare minutes to maximize your learning. When you can make the most of the small moments and learn things that help advance your career, then you will be one step ahead. This can be as simple as nixing social-media checks and replacing them with 10-15 minutes of reading articles or websites that help increase your knowledge. Here are some other ideas to get more out of those little moments:

• Be on time. When you can start on time and end on time, you make the most of meetings (plus it is a sign of respect when you show up when you say you will), and you will have more freedom to do what you want to do.

• Keep a reading queue. Whether you use bookmarks, notes, or some other tool, keep a list of items you want to read. These can be articles, whitepapers, or books—but when you have a list it is much easier just to go there to fill 15 minutes with useful learning than to spend those 15 minutes surfing the web looking for something interesting.

• Listen to audiobooks or smart podcasts. Whether it is on your commute or when you are working out, if you can't sit and read, try listening to your lessons. There are so many great options here, and it is a great way to maximize time and knowledge.

Of course, there are lots of other great ways to make your old career new again, but these little ideas could give you inspiration so that when you come to work tomorrow you can be excited.

If you have any other thoughts or suggestions, feel free to leave them in the comments on the website. And if there is a topic you would like to see covered in this column, let me know.

Kate Matsudaira is an experienced technology leader. She worked in big companies such as Microsoft and Amazon and three successful startups (Decide acquired by eBay, Moz, and Delve Networks acquired by Limelight) before starting her own company, Popforms (https://popforms.com/), which was acquired by Safari Books. Having spent her early career as a software engineer, she is deeply technical and has done leading work on distributed systems, cloud computing, and mobile. She has experience managing entire product teams and research scientists, and has built her own profitable business. She is a published author, keynote speaker, and has been honored with awards such as Seattle's Top 40 under 40. She sits on the board of acmqueue and maintains a personal blog at katemats.com.

Related content at queue.acm.org

Lean Software Development - Building and Shipping Two Versions
- Kate Matsudaira
Catering to developers' strengths while still meeting team objectives http://queue.acm.org/detail.cfm?id=2841311

A Conversation with Matt Wells
When it comes to competing in the search engine arena, IS bigger always better?
http://queue.acm.org/detail.cfm?id=988401

Cherry-picking and the Scientific Method
- Kode Vicious
Software is supposed be a part of computer science, and science demands proof.
http://queue.acm.org/detail.cfm?id=2466488

acmqueue

Originally published in Queue vol. 14, no. 4
Comment on this article in the ACM Digital Library





More related articles:

Nicole Forsgren, Eirini Kalliamvakou, Abi Noda, Michaela Greiler, Brian Houck, Margaret-Anne Storey - DevEx in Action
DevEx (developer experience) is garnering increased attention at many software organizations as leaders seek to optimize software delivery amid the backdrop of fiscal tightening and transformational technologies such as AI. Intuitively, there is acceptance among technical leaders that good developer experience enables more effective software delivery and developer happiness. Yet, at many organizations, proposed initiatives and investments to improve DevEx struggle to get buy-in as business stakeholders question the value proposition of improvements.


João Varajão, António Trigo, Miguel Almeida - Low-code Development Productivity
This article aims to provide new insights on the subject by presenting the results of laboratory experiments carried out with code-based, low-code, and extreme low-code technologies to study differences in productivity. Low-code technologies have clearly shown higher levels of productivity, providing strong arguments for low-code to dominate the software development mainstream in the short/medium term. The article reports the procedure and protocols, results, limitations, and opportunities for future research.


Ivar Jacobson, Alistair Cockburn - Use Cases are Essential
While the software industry is a fast-paced and exciting world in which new tools, technologies, and techniques are constantly being developed to serve business and society, it is also forgetful. In its haste for fast-forward motion, it is subject to the whims of fashion and can forget or ignore proven solutions to some of the eternal problems that it faces. Use cases, first introduced in 1986 and popularized later, are one of those proven solutions.


Jorge A. Navas, Ashish Gehani - OCCAM-v2: Combining Static and Dynamic Analysis for Effective and Efficient Whole-program Specialization
OCCAM-v2 leverages scalable pointer analysis, value analysis, and dynamic analysis to create an effective and efficient tool for specializing LLVM bitcode. The extent of the code-size reduction achieved depends on the specific deployment configuration. Each application that is to be specialized is accompanied by a manifest that specifies concrete arguments that are known a priori, as well as a count of residual arguments that will be provided at runtime. The best case for partial evaluation occurs when the arguments are completely concretely specified. OCCAM-v2 uses a pointer analysis to devirtualize calls, allowing it to eliminate the entire body of functions that are not reachable by any direct calls.





© ACM, Inc. All Rights Reserved.