How to work with a software agency in 2021

Jakub Bem

November 10, 2020

13min read

Image of a man climbing steps

Working with a software agency can be a great way to speed up your product development. However, before you start, it’s essential to understand how the process works. There are many approaches to software development and each agency has its own.

Project types

There are three usual cases of projects and each varies depending on the scale of your solution:

  1. You create a brand-new product from scratch.
  2. You already have a working software solution (or an MVP - minimum viable product) and you need help developing it.
  3. You already have an established product and need help maintaining it.

Depending on your project type, a software agency will suggest going over all or some of the following process steps.

Process steps

We distinguish the seven most important steps of the process to ensure smooth development:

  1. Business idea
  2. Wireframes
  3. Technical analysis
  4. Complete designs
  5. Development
  6. Deployment
  7. Growth and product support

We will explain and talk about each one in more detail. This is based on our own process; however, you will find that most software agencies incorporate similar methods.

#1 Business idea & business workshops

When working with a software agency, everyone must be on the same page concerning the product requirements. The first step is conducted during business workshops, during which the software agency learns about your product and business model. It’s essential for every project and allows software agencies to determine whether they are the right fit for you.

Core concept

At first, we need to understand what the core business concept behind your project is. It’s the fundamental idea behind your product. If you are in the early stage of product development, we can help you put it into words and create a product roadmap.

Value proposition

Once we are familiar with the core concept, we will ask you about the value proposition. What value do you bring to your customers? What’s the biggest gain when using your product? How is your solution better than its competitors? Is your solution the first one of its type on the market? What scale are you aiming for – is your solution crafted for a small group of experts, or is it meant for a wider public?

Asking these questions helps software agencies understand the value you create and provide better technology tools to achieve it. Thanks to our expertise with product development, we can help you navigate these questions. Often in the process, you will learn something new about your product too.

Understanding the functionalities

Once we know what the core concept is and what value your product brings, we can start talking about functionalities (e.g., user accounts, calendar, admin panel and so on). When working with a software agency, defining all the functionalities with great detail is very important. This will allow us to build a solution tailored to what you really want. In addition, a good software agency will help you define functionalities when you are not sure which direction to take.

Result of the business workshops

Business workshops result in a well-defined core concept, value proposition and a list of all the functionalities needed in your project. This will allow software agency to create a comprehensive technical analysis.

#2 Wireframes & UX workshops

Depending on the project type, you might already have everything prepared. Sometimes you can simplify this process. However, If you are in the early stage of product development and don’t have the persona, user journey or wireframes yet, a software agency will help you create them.

Persona

Simply put, a persona is the representation of your user. Understanding who we are designing and developing for is greatly beneficial for everyone involved in the process. When creating a persona you answer questions like:

  1. What is their motivation for using your product?
  2. What do they want to achieve when they visit your website / download your app?
  3. What are their biggest problems with other available solutions?

It’s helpful to complete the persona with information about demographics (like age or location), their tech expertise and attitude towards new technology. Also remember to take into account data regarding other services, brands and apps they might like.

User Journey

User journey represents how user interacts with your product in form of steps they take when using it. It’s helpful to include what kind of device they are using (mobile, desktop, maybe tablet or smartwatch), what functionalities do they expect and how each step of the journey helps them achieve their goal.

Wireframe

Wireframe is a visual representation of the user interface for your product. It doesn’t include any graphics (like your branding, logo, images etc.). The main focus is to represent your functionalities in an easy to understand format without unnecessary distractions. Essentially, it’s the blueprint for developing your product.

The results of UX workshops

At the end of UX workshops, you will have a persona, user journey and wireframes for your product. These tools greatly increase efficiency of the development process.

#3 Technical analysis

Technical analysis is conducted once we have the wireframes and a good understanding of the business purpose and project scope. During the technical analysis, we break down all the functionalities and translate them into the tech proposal.

When working with a good software agency, you might get a number of different technology propositions with different pricing levels to better suit your budget and needs.

The results of technical analysis

Technical analysis will provide you with a proposition of technologies which are going to be used in your project. At this point, you should also learn the estimated price and time required to develop your solution.

#4 Product designs

Depending on the project type, you will either have the designs already prepared, or a software agency will work with you to create them.

This step can vary - for larger projects, you might want continuous design development during the development cycle. For smaller-scale projects, you will often want to have a complete design before the development starts.

Below is a breakdown of our design process at Blazity for building complete designs from scratch.

Design proposal

We deliver several basic UI (user interface) proposals based on all the provided information (including persona, user journey and wireframes). Usually, that includes 2-3 different versions or the number we agree on with the client. Then we work together to decide which direction will be the best fit for your product.

Full design

Once we have the UI proposal chosen, we determine the look of the complete design. Then, finally, we deliver all the UI screens that the user will be interacting with.

Revisions

Once we have a complete design, we present it to you and discuss necessary changes. Providing feedback is an essential part of this process. When working with a software agency on product designs, you need to be engaged and actively voice your needs.

We usually offer two revisions included in the price of the project. So the process looks like this:

  1. We deliver a complete design for your product.
  2. You carefully revise it and provide us with feedback on what should be changed.
  3. We deliver a revised design.
  4. You once again provide feedback.
  5. We deliver a final design.

Usually, we charge for additional changes after that; however, we found that most of the time, two revisions are more than enough.

Results

At the end of this step, you receive a full design of your product UI, and everything is ready for development to start.

#5 Development

The development comes in as the fifth point. This is an important thing to understand – if you are building a product from scratch, it’s essential to really prepare before the development starts. Starting development without all the pre-production work can lead to troublesome cooperation and will cost a lot more money and time in the end.

Many of the software agencies work using agile development. This topic deserves its own article; here, we will go over the most important aspects for you, a client, to understand.

Agile

Agile development means that we iteratively develop your product – we plan, develop, deploy and reiterate. Your project is broken down into smaller chunks, which ensures a fast development and delivery of prototypes.

Scrum

Scrum is a framework for agile software development. In scrum, we use sprints to determine the chunks of work that are going to be developed. This method allows clients to review the work often and provide feedback. In scrum, you, as a client, assign a Product Owner from your organization.

Product owner

Product owner is a designated person in the client’s company responsible for making all the product decisions and works with the development team answering all their questions.

Sprint

Sprints last anywhere from one week to one month. Most of the software agencies, including Blazity, work in two-week sprints. This means that during sprint planning, we agree on the features that we want to implement during sprint planning, develop them over the sprint period, and review them during the sprint review. We then go on planning the next sprint and iterate until the project is done.

Sprint planning

Each sprint starts with sprint planning. Its purpose is to determine what the development team is going to work on during the upcoming sprint. It’s an internal process in the software agency, and the Product Owner reviews its effects during the sprint review.

Sprint review

Sprint review happens at the end of the sprint. It’s designed to review the work completed during the sprint and talk about potential changes, challenges and improvements. That’s when your Product Owner provides feedback.

Be available

When working with a software agency to develop your product make sure to be available for any questions regarding the product which may come up. A good pre-production process (especially business and UX workshops) will drastically reduce questions, but some will surface anyway.

#6 Deployment

When working with a software agency, it’s essential to discuss the details of your application’s operational side. That means setting up servers, cloud services, databases etc., to ensure that your app works and scales properly.

Depending on the size and nature of the project, this process can take as little as few hours or as much as a couple of days or even weeks. The operational side takes up a big chunk of the total work in bigger projects, so it must be set up correctly and efficiently.

Deploying web solutions

Web solutions often take considerably less effort to set up and deploy since most of them focus on the data presentation layer. When working with a software agency setting up simple web solutions shouldn’t take more than a day.

Deploying mobile apps

Often the biggest hurdle in deploying mobile apps is the official app marketplace rules. To guarantee high quality, the bar is set high for application approval. Processes differ between vendors, and the app often needs to be tested (either automatically or manually) in a production-like environment before it’s officially released and available for download.

App Store (iOS)

Like Apple's design philosophy, the release process aims to be as streamlined and simple as possible while setting higher-than-average quality requirements for every application.

The release phase is split into two.

First, every application build must be submitted to the TestFlight distribution platform, where internal or beta testers can download it to garner feedback. These builds need to be first processed and verified by Apple and it takes no more than a couple of hours (often even as fast as 30 minutes).

Second, once the build has been processed, it can be submitted for review by Apple; that’s also the part where all the marketplace information is filled, like the app category, age rating and so on. The first submission takes significantly more time and can take up to a couple of days, whereas subsequent updates often take no longer than a day on average. These builds are often verified manually to ensure high quality, so don’t expect the progress to be made during bank holidays.

Google Play (Android)

This process offers many tweaks and knobs but can be harder to navigate if it’s your first time deploying your application there.

Since there are literally thousands of different Android-powered devices (in contrast to a handful of iOS-powered ones), the stats dashboard reflects that. It’s easy to diagnose any potential problems such as crashes or versions depending on the device.

Another main difference is tracks – you can create separate internal/alpha/beta/production tracks and promote them accordingly. These also offer features such as percentage rollout or specific region availability.

The entire production release process takes less time, and often it’s possible to release your application under two days, with subsequent updates taking as few as a couple of hours to be published.

#7 Support and product growth

The only time when you can stop actively maintaining and growing your software is when you don’t intend to use it anymore. Because we serve our apps on so many different devices and setups it’s bound to require updates and bug fixes.

Support

There are two main areas of support - security and updating your application to match system updates.

Security

Security maintenance is one of the most important topics, especially in JavaScript ecosystem. Packages that your project uses are constantly updated and good software agency will keep track track of that. This way they can implement necessary changes to ensure that your application security is always top-notch.

Updates and bugfixes

No one has ever produced a perfect software solution in terms of online apps. It’s necessary to constantly keep fixing new bugs, increase application stability and keep it updated.

Web software we build has to work on evergreen browsers, which are constantly getting upgrades. As a result, runtime environment changes and we have to make sure that our application always keeps up.

Growth

As your company and idea grows so must your product. That’s why it’s a good idea to discuss after-deployment-cooperation details when you first start working with a software agency.

Most often, when your product starts reaching wider audiences you will start getting questions about new features - it’s good to interact with your users and constantly adjust your product to their feedback.

It’s usually a good idea to keep the same software agency to work on adding new features, because they already know your product and you have a set workflow between companies. As a result, implementation is smooth and your users are satisfied.

Process vs. Project types

Now that you understand what each of the steps means, let’s talk about which ones are going to be necessary depending on your project type.

Brand new product (starting from scratch)

When you have a new product and no design or programming work has been done, you will need to go over all of the steps in the order provided above. That way we can guarantee that the whole development process will be well put together and your solution will be much better suited to your users.

You have a working product or an MVP

If you already have a working solution or an MVP of your product, you will probably want to expand it or add new modules.

In this case you probably will not need full business workshops, a project scoping session will be enough in most cases. We will work with your team to determine the necessary technical solutions. When that’s done, we can jump right into development.

You have an established product

If you already have an established product with a customer base and you need to maintain it, working with a software agency can be very beneficial. That way your core development team can focus on your main features, while software agency can ensure the smooth process of fixing bugs and maintaining your existing solution.

This step is mostly dependant on your development team. Software agency will consult with your CTO and programmers to learn your exact needs.

Summary

Summing up, when working with a software agency, it’s very important to establish the fundamentals of your product before starting the development process. Only then you can really benefit and greatly increase your product value.

Browse categories

Subscribe for news

Share this article

Stay connected with us, sign up to our newsletter.

Similar read

Tell us more about the project you want to work on