Jakub Bem
November 10, 2020
13min 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 its own.
There are three usual cases of projects and each varies depending on the scale of your solution:
Depending on your project type, a software agency will suggest going over all or some of the following process steps.
We distinguish the seven most important steps of the process to ensure smooth development:
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.
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.
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.
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.
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.
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.
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.
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:
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 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 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.
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.
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.
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.
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.
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.
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.
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:
Usually, we charge for additional changes after that; however, we found that most of the time, two revisions are more than enough.
At the end of this step, you receive a full design of your product UI, and everything is ready for development to start.
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 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 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 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.
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.
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 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.
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.
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.
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.
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.
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.
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.
Let's talk about your project!
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.
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.
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.
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.
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.
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.
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.
Similar read
January 01, 2021
9min read
Software outsourcing is a practice of contracting another company to develop your software solution. You can outsource complete applications, hire a software house to help your in-house dev team, build a supporting solution for your existing software or even order a tech audit. However, the most important question is should you do it?
Tell us more about the project you want to work on