When I want to learn something new, rather than just reading or watching a tutorial, I want to accomplish something at the same time. So when I decided I wanted to learn about serverless apps, I decided to work on a problem nearly every worker has: documenting their accomplishments during the annual review process.
What’s your ROI?
Most people dread the annual review process. It is difficult to remember everything you have done over the course of a year and summarize it in a concise, clear way. Engineers have an additional burden: translating technical achievements into a format that their business-focused colleagues can understand. Despite the difficulty, we all need to able to back up our accomplishments with numbers that show we’re providing a good return on the company’s investment, or “ROI.”
I like to use the business term “ROI” because it gets me thinking: Am I making more money for the company than it is spending on me? Am I making them a lot more? Do they know that? If not, I’d better tell them so they’ll give me some of that money.
The formula for documenting ROI—“success statements”—came out of a communication failure. A year after my manager and mentor was promoted, she was called into the vice president’s office and asked what she had done with the last year. While she knew she had grown her team and implemented improvements, she didn’t have numbers to back up her accomplishments. To the vice president, it looked like she had hardly done anything all year, when she felt like she had gone above and beyond. So she developed success statements.
How to write success statements
Success statements are a way to translate your accomplishments into the language everyone in business can understand: money.
There are three guidelines for writing success statements. First, they should be 140 characters or less, just like classic Twitter. You should be able to quickly scan through a list of them, like a resume. Second, they should be written at a high level and easy to understand for someone who might not be familiar with what you do. And third, they should be quantified in money or time. Money is the easiest, but since salary can be one of the biggest corporate costs, time can be translated into cost savings.
Having a consistent format makes a success statement easy to read and keeps you on message. The exact format is:
I “improved this thing” using “this method” by “this measurable amount.”
Here are two examples:
- “I reduced storage costs by archiving data, saving $5.00 monthly.”
- “I reduced manual testing by creating automated tests, saving 60 minutes weekly.”
I decided to make an ROI Tracker app that helps people track their personal ROI throughout the year and create business reports, so when the time comes for performance reviews, they have the numbers to make their case.
Now you might be thinking, “I have learned this great communication method, so why do I need an app to track them?” First, each year, I might have a hundred examples of my ROI, and before I created this app, I had to manually comb through them, figure out which ones to include by date, and calculate the savings. It was a pain. Second, I’m an engineer, so my goal in life is to automate everything. Third, this was a great opportunity to learn about serverless apps.
Serverless computing allows you to build and run your applications in the cloud, with the cloud provider managing and allocating machine resources dynamically depending on the application’s needs.
Before I started working with serverless apps, most of my projects met a dead end at the same place. I was great at designing APIs and functions but had no interest in DevOps. So when it came time to deploy my app, I would see about 20 different concepts I didn’t understand and give up. It wasn’t that I was incapable, it’s just not what excites me, so I did not make the time. Adopting a serverless architecture got me past this blocker.
Here are the services I used to create my serverless app:
- Interface: API Gateway. It handles the routing, views, and schema validation.
- Data storage: DynamoDB. It is a non-relational database. It is more like a dumping ground for data instead of a well-organized SQL database. However, it is easy to set up and use, so it’s great for small apps.
- Algorithm: Lambda. This is the meat of the serverless app. A lambda is simply a function. That’s it. If you’ve written any script or tool before, you can transfer that into a lambda.
- Home: AWS S3. The app needs to live somewhere outside your computer, and S3 is a convenient storage area.
- Deployment: AWS Serverless Application Model (SAM). There are many ways to deploy a serverless app, but I found SAM to be the easiest. SAM uses a YAML or JSON template to tell AWS, “these are the services I want to use, please set them up.” There are simpler ways to do this (such as the Chalice library) and more robust (such as AWS CloudFormation), but I took the middle ground.
A happy ending
So, what happened to my manager? How did using success statements help her succeed? She was promoted and became responsible for multiple departments. And, after she taught her team members about success statements, they were also able to achieve great things. These include:
- 25% of employees in her department are promoted per year.
- 18% of employees receiving company awards are from her department.
- 20% of employees celebrating 15 years are from her department.
- 63% of her interns are hired full time.
I hope this inspires you to build your app, gather your data, and impress your boss! This will show all of your hard work, and your bosses will have no other option but to give all of you a raise. You’re welcome. Feel free to send me a percentage of your newly acquired wealth.
Michelle Brenner will present How to use data to get a raise (and make your first serverless app) at the 17th annual Southern California Linux Expo (SCaLE 17x) March 7-10 in Pasadena, Calif. Hear more from Michelle on her tech podcast From The Source.