By Josie Gillan (Director of Quality Engineering, Salesforce)
There are many different career options in technology, and it can be overwhelming to figure out what the differences are among those options and what might be the best fit for you. In addition, there are many different types of technology companies out there, including software companies, hardware companies and biotech companies.
Today, we’ll focus on some of the typical careers in software companies.
Consider an example of a hypothetical mobile phone application, “FashionWithFriends,” that allows you and your friends to borrow and lend items from your closets. Let’s imagine a small product development team that is responsible for creating the app. The team is made up of employees in the role of product manager, UI designer, developer, quality engineer, technical writer, and program manager.
We’ll go through each role below and outline what kind of activities people in that role would do to deliver the FashionWithFriends application. In addition, sales, support, and marketing staff, although not discussed here, are essential to ensure that the application finds and keeps an audience.
About the FashionWithFriends application: a small startup company has decided to build the application that will make it easier for friends to find items to borrow and to lend out their own items. The idea behind FashionWithFriends is that girls (and some boys!) would like to extend their own wardrobes by borrowing clothes from their friends (or even friends of friends). For the first version, the application (or “app”) will allow users to sign up for an account using an email address, and after that they can enter details about themselves including their name, size, and preferred style of clothing. Once they are signed up, they are able to post pictures and details about their own items of clothing that they are interested in lending out as well as browse other users’ clothing (narrowing their search by location and size, if desired).
Let’s now take a look at some of the career options in more detail:
A product manager is responsible for defining exactly what the application is and for providing details about how it will be used. Her job is to imagine what it is like to be a user of the application and to ensure it meets the needs of those users. For FashionWithFriends, the product manager will conduct market research, and competitive research to find out if there are other apps out there like it.
She is responsible for determining what features are the highest priorities for the user. For example, she may decide that, for the first version, the highest priority is a search screen that allows the user to search for available items based on size. She may also decide that searching by location is not an absolutely necessary feature and that it is fine to release the first version of the software without it. Prioritization is important because the team will not be able to build all the features for the first release, and to be successful the features that are built first need to be the ones that are needed most.
A product manager is responsible for defining exactly what the application is and for providing details about how it will be used.
As a product gets more and more users, it is essential that the product manager understands what extra functionality the users want, as well as what the users don’t like about the app. Checking out the reviews of the app that may be posted online, as well as reaching out to specific users to get their input, are important parts of this job and can often determine whether or not an app is successful. If it weren’t for the product manager, FashionWithFriends could be a pretty application but just not provide the functionality that a user needs.
If you enjoy solving common problems people have, making decisions, defining what a product should be, and working with a team, product management may be a good career for you.
The “look and feel” of an application is very important. “Look and Feel” refers to the way that an application appears to users and how it acts (for example, what happens when a button is pushed). If users don’t have a good experience with the application, they could decide not to use it or, even worse, write bad reviews about it! The UI Designer’s job is to design the overall experience for the users when they are using the application. The application needs to be easy to understand, fun to use, and aesthetically pleasing. For FashionWithFriends, the UI Designer would determine what the layout of each screen is, what fields go where, and what happens when the user taps or swipes different parts of the screen.
If you love design, solving problems, have a sense of aesthetics, and like to understand how humans interact with computers, you might want to consider a career in UI Design.
Developer (Software Engineer)
The developer actually builds the application, writing software code to implement the design. She works closely with the product manager, UI designer, and quality engineer to ensure she is building the right functionality and that the application works as expected. Being a developer is like being an architect or a car designer. She takes input from the customers and product manager, and figures out how to make it work in the code. She will discuss with others what can be done and why; she will figure out all the details in the design; and she will determine how to do it elegantly and efficiently.
Being a developer is like being an architect or a car designer. She takes input from the customers and product manager, and figures out how to make it work in the code.
If you really like to be “hands on” and love programming and creating things, a career in development could be for you.
The quality engineer is responsible for ensuring that the application works as it is supposed to, and she must be passionate about ensuring there are no weird errors (bugs!) in the application. A good quality engineer knows the best way to test the application and can come up with test cases to make sure that the app acts as expected. For example, when a user searches for dresses that are size 12, does the app actually return dresses that are size 12? In addition, she may come up with all kinds of crazy test cases to make sure the application can handle odd things that might be thrown at it – for example, what happens if someone enters a string of nonsense characters in the size field?
The quality engineer could also ensure that the application honors quotas (how many items a user can check out at a time) by trying to add more items than the user is allowed. While some testing can be done manually (where someone literally enters details on each screen and acts as if they were using the application), most companies now invest heavily in quality engineering automation. Automation allows quality engineers to write code and create automated tests so that the computer effectively mimics what the user is doing, performing sequences of tests to run thousands of times without involving human intervention.
If you are passionate about making things work properly, like to “break” things, like to find mistakes in applications, and like to have a good overall understanding of how an application works, then quality engineering may be a good role for you.
Most applications have some kind of documentation that helps users learn more about the application and how to use it. A technical writer creates this documentation. She must have a thorough understanding of what the application does, and she needs to be skilled at writing to make sure the instructions are clear. Users often refer to the help provided by an application, and if the documentation is confusing it could result in a negative experience for the user, and it could reflect poorly on the company.
If you love to write, enjoy understanding how to use applications, and have good communication skills, technical writing could be a great career for you.
A program manager is often described as the “glue” that holds everything together. She is always keeping an eye on the big picture and the overall goal of the project. Her job is to make sure everyone is aligned and focused on the same thing, to ensure that every member of the team knows exactly what they are working on, and to see how everyone’s individual work fits into the overall product. She is responsible for removing any blockers that the team might experience — for example, the quality engineer may not be able to complete testing due to an issue in the automated testing system, and the program manager would be on top of that issue to make sure it got resolved. In addition, she reports status to the company’s executives so that they know what is going on and are kept up to date on any significant issues or delays.
For FashionWithFriends, the program manager would not only work with the team mentioned here, she would also be working with people in marketing and sales so that everything is in place to get the application launched into the market.
As you can see, it takes many different people in different roles to build an application. A common theme among all of these roles is that they require a love of problem solving and an ability to put yourself in the user’s shoes. Regardless of the role, all employees must be able to work as part of a team, and they must understand that it takes people working together and great teamwork to successfully build an application.
If you like working with a variety of different people, love the challenge of solving problems, and have great communication and collaboration skills, the program manager role could be a good one for you.
A common theme among all of these roles is that they require a love of problem solving and an ability to put yourself in the user’s shoes.
This discussion is only a small sample of the different career options in software development, but hopefully it has demystified some of the more common jobs that are available in the industry.
This post was originally posted at Technovation Challenge.
About the guest blogger: Josie Gillan is Director of Quality Engineering at Salesforce. She has held a variety of different positions in technology, including developer, database administrator, development manager and technical program manager before finding her niche as a quality engineering manager. She leads the Salesforce Women in Technology Outreach team whose charter is to promote STEMs to girls. Follow her on Twitter at @JosieGillan.
Women 2.0 readers: Share your own experiences of extreme feats of work-life juggling in the comments.