Contact us!

Developing software with Meta Bytes – what does the process look like?

If you work for a company and come to us for help, it is probably – and we’re simplifying it a bit here – for one of the following reasons:

  1. You need/want to build a completely new system
  1. You need help with an existing system (further development and maintenance)
  1. You need an advisor when it comes to digitalization and tech

Developing a completely new system

When we act as advisors to our customers, they often have a desire to digitalize their operations in order to become more efficient in their processes, but they may not have a clear idea of how to achieve that. In those types of cases, we do a thorough analysis of their business to identify areas for improvement.  

When companies need help with an existing system, it often involves us taking over the complete running of the system and being responsible for maintenance, further development, upgrades and documentation.  

However, the most common scenario is that we, together with the customer, develop a new solution tailored to their particular needs and challenges. Below, we describe how such a process can unfold – essentially, how software development takes place with Meta Bytes. It’s worth bearing in mind that the description is somewhat simplified, and the sequence of steps may vary from project to project. Additionally, not everything follows a strict chronological order, as there are often jumps between the different stages.  

Step 1: Solution discussion and definition

At the beginning of our collaboration, we will spend time understanding your business and what you aim to achieve with the solution you are building. We listen to your needs and together we’ll explore and discuss possibilities and solutions that can help you reach your goals. We’ll help you prioritize needs and requirements and create a vision for the solution, which can include everything from a user interface and functionality to system architecture and integration options.  

Project concretization

Before we can start the development work, we conduct a feasibility study to establish all the prerequisites. We will, among other things, specify the following:

  • Purpose and goals
  • Project scope (including potential limitations and future features)
  • Requirement specifications  
  • Budget
  • Technical solution proposal, including design proposals
  • Milestones
  • Data protection and security

Some of the above points will likely be discussed throughout the collaboration. For example, data protection and security are crucial and are addressed early on as well as being considered throughout the journey.  

The project scope and requirement specifications are also revisited during the development work. The customer often re-prioritizes, and features initially considered important (must-haves) may be downgraded to nice-to-haves but not essential. The focus is on identifying the most critical functions to prioritize, minimizing future risks, and gaining a better understanding of what will be most valuable for you as a customer.  

When it comes to budgeting, it’s only after the scope and requirement specification have been clarified that a closer estimation of costs can be provided. However, due to shifting priorities, it can be challenging to create an accurate estimate. Read more about this in the article Why is it difficult to estimate the cost of custom software?

Putting together a team

Our discussions take place during a series of workshops where we together develop a plan for how to take your idea from concept to product in a cost-effective way. As the discussions progress, more of our team members will be included. This includes a delivery lead who organizes meetings, facilitates them and keeps the project on track. You will also meet a solution architect, who ensures that the solution we deliver corresponds to your needs and requirements, and a UX/service designer who is an expert in designing a smooth (and stylish!) user experience. We may also bring in software engineers at this stage, or they’ll join once the actual development work begins.  

Step 2: Implementation, testing and quality assurance

This is where we set up the basic infrastructure and start coding. We always work using agile methodology, following Scrum or Kanban frameworks. We have ongoing check-ins and demos with you to get feedback on the process and we work in so-called sprints, where all work is planned in two-week periods. This allows for flexibility and changes despite the initial requirement specifications. Nothing is set in stone, and we can always implement your desired changes.  

Continuous testing and code review

During this phase, various tests are conducted. These include early user tests, where an internal group at your company tests the nearly finished solution and provides suggestions for improvements, as well as final tests of the completed software. Parallel to both testing and development, quality reviews are also done, where one or more of our developers reviews the code to identify any errors and areas for improvement.

Flexible approach

The implementation or development phase clearly shows how closely we work with our customers. We understand that priorities may change along the way, and we remain as flexible as possible in our approach. It’s worth noting that we often move back and forth between this phase and the first one. This happens naturally as different features and additions are discussed over and over again.

Step 3: Go-live

During the go-live phase, after testing, adjustments and thorough review, the software will become available to all users. This is when your business can start calculating the return on investment generated by the solution.

Step 4: Continuous delivery

We are always there for our customers even after the solution is in place and we usually divide this phase into two parts – ongoing implementation and managed services. Ongoing implementation includes continuous improvements, change requests and the addition of new features. Managed services involve us taking responsibility for monitoring, infrastructure updates, long-term cost optimization etc.

We also offer support to our customers, adapting our support offering to each specific case. Often, we set up a service desk where incidents are automatically reported, and users have the option to manually report problems and deviations.

Software development is a dynamic process that often involves going a lot of back and forth between different stages, and each project is unique. With this article, we hope to provide you with an overview of how it can be done, and we hope that you are excited to get going – because we are! Oh – and if you are ready to develop software with us, you have to be prepared for some bad jokes along the way..!

Block Quote