How Software Gets Built

The process & the team.

2019-03-19

In order to understand how high-quality apps are developed, we need to learn about who the players are and how they fit into the process of making an app.

The goal of this post is that you can understand this table depicting how the high-level phases of development map to the expertise required at each step.

img

In explaining the process of building the apps we will explain what each role entails, so you can get a full picture of what is going on behind the scenes.

Scoping

In this part of the process the product manager and the app architect work together to balance the following priorities:

  • Creating a great user experience
  • Making the best use of resources
  • Setting up a solid infrastructure

In more concrete terms we are deciding what the highest quality experience we can give users (given our timeline and budget constraints) is while setting up for technical success. We combine the user experience focus of the Product Manager, the technical focus of the App Architect, to create a definition of what goes into the build. To learn more about what goes into the planning of a product check out our tips for before the build.

Visual Design

Taking the requirements from the previous step the Product Manager and the Designer create a visual representation of the product. The most important considerations in this step are:

  • Usability
  • Brand Consistency
  • Alignment

The result of this step is a visual representation of the user-facing parts of the app. Iteration is key in this step as we have the most flexibility to make changes and clarify the requirements and user experience. A few key products at this stage are the wireframes, style guides, mockups, and clickable prototypes. Each has different levels of fidelity and all work as building blocks and alignment tools. To learn more about what goes into the design of a product check out our design post.

Technical Spec or Architecture

With all the functionality clarified with the user in mind, the Product Manager and App Architect reconvene to get specific on the engineering tasks that have to achieve our common goals. A few considerations:

  • Engineering roles and respective experience levels needed
  • Costs of development vs. integration
  • Appropriate tools and technologies for the given task
  • Security

A successful app architecture is one that allows engineers to understand step by step what is expected of them to turn an idea from concept to reality.

Build & Launch

Once everything is defined, we can start building your product. This is typically a more heads-down phase because we’ve already worked through most of the issues together.

Our team consists of frontend, backend, and mobile developers working alongside DevOps engineers, designers, a product manager, and an application architect. We deliver launched products built on a scalable and extensible infrastructure.

Our practices and technologies focus on delivering high-quality software that has long term savings rather than long term costs. Our services are modularized, our architecture is serverless, our development is test driven, our code is peer-reviewed, our development/production environments dockerized, and our changes are continually integrated and delivered.

Once our feature set is done, we put set up the system for launch. There are different levels of deployment: development, staging, and production. A developer using their finished product in their web browser is likely in their development (local) environment. The next level of deployment is the staging server, where we can test the features in an environment similar to production, but without taking the risk of giving users features that haven’t been fully tested. Finally, the production environment is where features go when they are ready to be given to users. If setup correctly this process runs smoothly, with automated testing and continuous integration and deployment. The first time we are launching an app DevOps and QA have to make sure the system is set up correctly for this workflow.

You can learn more about what this means in engineering and technology.


Now, here’s that table from the beginning again:

img

Hopefully, it makes more sense who the players are and how they work together to bring apps to life.

Bonus: Data Analytics

This cycle continues until the app gains traction. Once the product has had a chance to gather information on its usage a Data Analyst can start making use of that data to inform development and business operations. Until then the Architect and Product Manager collaborate to gather smaller scale data to inform improvements.

Conclusion

The process of engineering applications follows a very particular cyclic structure; there can be variation in how phases are divided, how long the cycle is, how many people we need for each role, and how integrated or separated the roles are. A single developer and a team of 20 alike will go through this process of defining requirements, developing, testing, and redefining requirements as outlined above until the app has met the needs of the users it’s being built for. The ideal configuration will vary depending on the goals of the team as well as the development stage, but for successful products, it is imperative that the configuration of roles, cadence, and phases is clear to everyone involved.


Ready for the next steps? Check out how we can help.

Interested in learning more? Check out our post about product market fit and sign up to get more awesome content about building software products.