When you’re new to a digital company and aren’t on the product team, software development can seem a little like magic: You see the trick happen, but you have no idea how it works and no one seems eager to explain it to you. However, while the software development details are complex, the concepts are fairly straightforward. Having a 30,000-foot understanding is essential for everyone on the team, from the sales executive to the social media assistant.
Here, then, are the SparkNotes (or CliffNotes, if you haven’t been to high school in 20+ years) on what the product team does.*
Identify a problem.
Most successful tech companies are born in response to a problem. And a company’s product reduces the pain caused by that problem. For example, it is burdensome to sift through emails to track conversations with colleagues. Slack was born. Or people use Excel and other platforms for simple lists and other straightforward projects, which creates undue complexity for a simple task. Trello was born.
Design a solution.
Once a way of solving the problem is mapped out, it is made visual in a very preliminary way–usually via wireframes. UX/UI designers use these very rough screen “maps” that show how a user would move through the functionality and screens. It’s a mockup of the basic structure of a website or app. Think of wireframes as digital versions of pencil sketches, which can easily be iterated on. Once the structure is agreed upon, more detailed design is done. Then prototypes are created. In a prototype, you can test the flows before actually building the product. Design tools like Balsamiq are strictly for wireframes, while others offer everything from wireframes to prototypes, such as InVision or Figma. Once designs are complete, the site can be built with code.
Build the bones.
The “back end” is the code below the surface of software, upon which it’s built. This is created via a code language like Java, Ruby or PHP, which runs on the server and does not come in direct contact with the user. A back end developer designs the logics and algorithms behind the site, including APIs, libraries, databases, etc.
Create the skin.
The “front end” includes everything the user sees–the way the site looks and feels. The designer provides the front end developer with specs, which include all the design elements, where they should be located on the screen and how they should function. The front end developer translates these into what you see on the screen via a code language, such as HTML and CSS.
Test the product.
To push an app live without thorough testing is a recipe for disaster. Bugs are a way of life in software development, and squashing as many as possible before the product gets into the hands of users is essential. Most companies use a staging area to do this. It’s a separate “site” where the code can be published, but cannot be accessed by the public. There it can be run through a routine of stress tests, to surface anything that isn’t working right. This is called Quality Assurance or QA testing. QA testers can range from company employees to outsourced resources (QA companies offer these services). After the product is released (or goes live for customers), bugs will probably still be found from time to time. When this happens, the fix is also tested first in staging before it is released.
Develop new features.
The best tech companies keep close to their customers’ needs, which often means paying attention to new features that customers request. This can come through casual or formal customer conversations or requests, from surveys, or from focus groups. It’s the job of the product manager to balance the needs of any customer with the business goals of the software company. For example, features may not be added unless a critical mass of customers would benefit from this. That may mean saying no to certain requests, which is never easy. A plan for when new features will be rolled out is called a product roadmap.
And so…rinse and repeat. The cycle begins again!
The beauty of software is that it can be (and always is) continually improved. The product team stays in constant motion from idea inception, to launch, to iteration–again and again.
*It should be noted that what’s presented here is in very broad brushstrokes that don’t necessarily occur sequentially.