Navigate back to the homepage

How to work with a software agency

Jakub Bem
February 14th, 2020 · 10 min read

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 their 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 the type of your project, software agency will suggest going over all or some of the following process steps.

PROCESS STEPS

We distinguish 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 of them in more detail. This is based on our own process; however, you will find that most software agencies incorporate similar method.

#1 BUSINESS IDEA (BUSINESS WORKSHOPS)

When working with a software agency, it’s extremely important that everyone is on the same page in regard to the product requirements. First step is conducted during business workshops where software agency learns about your product and business model. It’s essential for every project and allows software agency 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 very 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 agency understand the value that you are creating and provide better technology tools to achieve it. Thanks to our expertise with product development, we can help you navigate these questions. Often times 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, it’s very important to define all the functionalities with great detail. This will allow us to build a solution tailored to what you really want. Good software agency will help you define functionalities when you are not sure which direction to take.  

RESULTS OF 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. There are certain cases when this process can be simplified. If you are in the early stage of product development, and don’t have the persona, user journey or wireframes yet, 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:

  • What is their motivation for using your product?
  • What do they want to achieve when they visit your website / download your app?
  • 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.

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 good understanding of the business purpose and project scope. During 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 a different pricing levels to better suit your budget and needs.

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 know the exact (or estimated) price and time required to develop your solution.

#4 PRODUCT DESINGS (UI)

Depending on the project type you will either have the designs already prepared or software agency will work with you to create them. This step can vary - in specific cases you can adjust your product design during the development cycle. However, often you will want to have a complete design before development process starts.

Here’s a breakdown of our design process at Blazity:

DESIGN PROPOSAL

Based on all the information provided before (including persona, user journey and wireframes) and consultations we deliver a number of basic UI (user interface) proposals. 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 complete design. We deliver all the UI screens that the user is going to be interacting with.

REVISIONS

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

We usually offer two revisions included in the price of the project. 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 times one revision is all that’s needed, let alone two.

RESULTS

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

#5 DEVELOPMENT

Development comes in as 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 develop your product in an iterative way – we plan, develop, deploy and reiterate. Your project in broken down into smaller chunks, which ensures 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 who is 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, develop them over the sprint period and review them during the sprint review. We then go on to with 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 its effects are reviewed by the Product Owner during 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. Good pre-production process (especially business and UX workshops) will drastically reduce the amount of questions, but some will surface anyway.

#6 DEPLOYMENT

When working with a software agency, it’s very important 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. In bigger projects the operational side takes up a big chunk of the total work so it is crucial for it to 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 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 are the official app marketplace rules. To guarantee high quality, the bar is set high for the 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)

Similar to the design philosophy of Apple, the release process aims to be as streamlined and simple as possible, while setting higher-than-average quality requirement of every application.

The release phase is split into two.

Firstly, every application build has to be submitted to the TestFlight distribution platform, where it can be downloaded by internal or beta testers 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).

Secondly, once the build has been processed, it can be further submitted for review by Apple; that’s also the part where all the marketplace information are 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. To ensure high quality, these builds are often verified manually, so don’t expect the progress to be made during bank holidays.

GOOGLE PLAY (Android)

This process offers a lot more 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 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 are 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 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 SOLUTION OR 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 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 fundamentals of your product before starting the development process. Only then you can really benefit and greatly increase your product value.

Would you like to talk about your project and conduct business workshops? Contact us :)

More articles from Blazity

Should you outsource software development in 2020

If you don’t already have a working development team, building one from scratch will cost a lot of money and time.

February 1st, 2020 · 7 min read

Welcome to our blog

We have decided to start blogging because we believe we have a lot to contribute to tech and startup scene.

January 31st, 2020 · 1 min read
© 2019–2020 Blazity
Link to $https://twitter.com/blazityLink to $https://github.com/blazityLink to $https://instagram.com/blazitysoftwareLink to $https://www.linkedin.com/company/blazity/