You turned to a remote agency to handle your product development needs. However, they don’t seem to be getting the job done the way you want it. You really can’t say what exactly is happening at the project, developers barely talk to you, you fail to reach mutual understanding and it feels like your project development is going on forever.
We call it bad service, something we really hate. Here we’ll talk about what app development process at our agency looks like so that you can see the difference.
We understand our clients’ needs
To be honest, the process of development looks a bit different from the point of view of a client and a product development agency. Not all development teams can put themselves in the client’s shoes to understand what it feels like to own a product.
We are our own client because we build our own apps, My Day — Countdown Timer, for example. What is more, we collaborate with our web development partners on a daily basis. We know exactly what kind of services the clients would like to get. Our experience and style of work allows to look at the app development process from two perspectives, which helps to meet the needs of the customer. Our team and our client are in one boat sailing in one direction. When we develop an app, we vest a personal interest in its success.
We follow Agile methodology
We chose to follow the principles of Agile methodology in our product development for a reason. Most of our clients are startups, and the most fitting for startups model is Agile.
Why do startups need Agile?
There is a hint in the startup definition. Startup is an entity that is created to discover a sustainable, profitable and successful product. They also work to solve a problem, make the world a better place and all that. But the key concept here is to discover a product, not get it fully wrapped and ready for take out. Product discovery is how startups can make a living because they never know if their idea works out, neither do they know how to make it work out until they try.
When a startup turns to us to bring their fantastic idea to life, they can hardly imagine how frequently they are going to change their requirements once the software development process starts. It happens because a startup venture is an experiment per se. The process of programming is going to include lots of assumptions that need to be examined and evaluated. Some assumptions will work and others will fail, which will teach a startup a good lesson but will also lead to inevitable change of requests in the development process.
That’s why we choose Agile, a methodology that makes our work flexible and provides increased visibility for our clients. As opposed to single step waterfall model, where the product is delivered at once, at the very end of the project, Agile lets a startup see how their product is evolving and influence this process.
How do we provide increased visibility?
Since we are a remote team, transparency is our main concern. Our clients always know who we are, what we do, how we do it and why we do it. We make it possible through effortless communication achieved by regular chats, calls, and reports.
Our clients can talk to all their team members as frequently as it is needed. They have access to the same tools we use and communicate daily to review progress, set priorities and come up with new ideas together. There is no language barrier. Everybody at BioCard speaks English.
Every team meeting with the client ends up with a follow-up letter that summarizes results of the negotiations. Recording all the details helps to avoid misunderstanding and ensures all the client’s requirements are taken into account.
Even though our clients can communicate with the team every day, they also receive weekly status reports describing what has been done, how many hours it took, whether the project is following its scope. By the end of each iteration, we provide demo and submit a build for review and feedback.
What our app development process looks like?
We divide our projects into repeated time-boxed development cycles called iterations. Each iteration is usually two weeks long and includes a slice of functionality delivered through collaborative work, from specifying requirements, to design, development, testing and deployment.
By the end of an iteration, our clients get a tangible result. They can make changes, introduce new ideas to the project and control the process in full.
Our work on the project starts with the project planning stage and then continues week after week until the app is launched. Our app development agency also provides support and maintenance of the product all the way until it succeeds on the market.
Project planning stage
Project planning starts after negotiating a rough estimate and signing up a contract and lasts a week or two. At this stage, we discuss all the details of the project including its total budget, functionality, deadlines. We also elaborate early version of the product or MVP (minimum viable product). This version makes the project less costly and less time-consuming and allows to test the idea faster. By the end of the project planning stage our clients receive:
- Product concept or MVP.
- Design concept.
- Project related documentation, such as a user story, detailed estimation, project plan, test plan and technical requirements.
Project planning stage allows our clients to know the results of our development effort in advance. After that we get down to actual development divided in a range of iterations.
Phases of each iteration
- Specifying requirements.
Requirements specification is performed in close collaboration with the client during iteration planning meeting and is based on prioritized product backlog and detailed estimation of the project. We pick out a slice of functionality for the current iteration and break it down into small tasks, including testing and bug fixing incorporated in the project scope. This helps to identify the result of the iteration and outline interaction scenarios with the future build.
All team members including the client collaborate during iteration. The team typically consists of several skilled specialists working under one roof. They are at least two developers, a designer, a quality assurance specialist and a project manager. We also provide a couple of backend developers through our partnerships with top web development companies located in our city. Such a variety of great players putting all their efforts into making a product results in a perfect delivery. Five-seven people on the team is an optimal size for an average project. It dramatically rises effectiveness of communication and coordination.
- Testing and bug fixing.
When some part of functionality is ready, it is passed to the quality assurance engineer. Testing is performed in accordance to test cases documented at the initial project planning meeting. We also do regression testing seeking to uncover new bugs in existing functional areas of the system after modifications, enhancements or new functionality within one iteration have been made.
All results of testing get documented and submitted to the programmers, who start fixing detected faults. After completion of bug fixing, quality assurance specialist does a verification test to make sure all bugs have been fixed and carries out a smoke test as well, to determine whether the process of bug fixing didn’t affect other parts of the software. We make sure no critical and major bugs get into the final build.
- Build delivery.
Iteration ends up with a build delivered to the client. We make demos to get an instant feedback from them. Everytime the build is submitted we report about what the initial estimate of the project was, how much time we spent on development and how much time we still need to finish the project. If any changes in the initial requirements occur, we handle them in the next iteration.
Who manages the process?
We know how hard it is to deal with developers, manage a remote team, run a business with building a product, control time and budget and not miss any detail. That’s why we provide a project manager, whose responsibility is to make our client feel as if we are next door.
The project manager gets into work early, when the process of development is still in the bud. They help to do market analysis, map out product concept, outline MVP if needed and provide a project plan. The project manager divides work amongst developers and other team members and describes their tasks in detail. This allows to streamline the process and coordinate it more efficiently without having our clients spare their time on that.
During the process of development, the project manager makes sure every iteration is completed correctly and on time and the project follows its plan.
Advantages of Agile development model
— Optimal flexibility
Change of requirements doesn’t hamper the process and is less costly.
— Increased visibility
The client gets frequent updates and regularly estimates the results of our work.
— Better communication
Close collaboration between members of the team and the client results in better delivery.
— Greater productivity
More time is spent on designing and less on documenting. This allows to track the issues at the early stages, which saves time and budget.
— Less risks
Agile development model minimizes the risk of getting out of the project scope.
Our project manager is in constant communication with the client, which allows to work on further iterations ahead and prevent unexpected change of requests.
The goal of our app development model is to create a great product which is made possible by providing quality services for our clients.