Finding a competent technical vendor who can solve your business challenges is only half the battle. If you want your product to be developed within strict deadlines and be of high quality, you should also care about the development process.
When you contact a potential technical partner, you should make sure they have a streamlined process and guarantee the continuity and stability of development.
In this article, we introduce our approach to developing technical solutions for your business challenges.
What does our app development process look like?
We’ve combined ten years of expertise in app development with time-tested development methodologies to create a new agile approach. In addition to offering visibility, this approach makes development predictable and easy to manage.
According to this approach, we first select one of four software development lifecycle (SDLC) frameworks and then adjust it to the project based on the type of company and your business needs. SDLC is a term used in the software development industry for a framework that defines tasks performed at each step of the software development process.
This is the initial phase that precedes the start of the project.
We care about the intellectual property of our clients, so we’ll send you an NDA right after you contact us and will sign it before we start negotiations.
During this phase, we hold several calls with you and gather the information that will help us choose the right technology stack, team structure, and technology solution for your specific business challenge. We also define possible risks that can slow down development or cause issues and search for ways to eliminate them.
On the basis of this information, we create a personalized offer. This offer contains all information about your project, including the tech stack and team structure. Upon your request, we’ll also make a rough estimate of the project. These deliverables will help you understand how we’ll solve your specific business challenges and how much time and money you’ll need to build your product. After that, we sign a contract.
Our SDLC starts after signing all required documents.
[We use Scrum in our project]
The first phase of the SDLC is discovery. This phase consists of several stages:
Our business analyst conducts a detailed analysis of your company and business niche. They gather business requirements, conduct market and competitor analysis, and define buyer personas.
After that, the business analyst creates value stream and business objective models. These deliverables are the grounds for further research by our solution architect and UI/UX designer.
On the basis of this information, our solution architect analyzes the architecture of the project and searches for the best technical solutions to solve your business problem. As a result, they come up with an architectural vision for the product.
At the same time, our UI/UX designer creates the first drafts of the product’s design. Having discussed the look and feel of the product with you, a designer conducts UI and UX research, creates UI concepts, and picks a color palette.
Our business analyst prepares a design backlog, functional and nonfunctional requirements, and product roadmap. After getting a design backlog, our designers start to turn your expectations into a beautiful user-friendly design. They create wireframes that show how different elements (buttons, menus, etc.) are placed on the screen. When wireframes are ready, it’s time to breathe life into them by designing the product.
Meanwhile, our solution architect creates software design and DevOps design documents. These documents contain API documentation, database architecture, technical requirements, nonfunctional requirements (platform restrictions, technology stack, infrastructure architecture, etc.), and quality metrics.
Requirements for the development team
At this stage, we present the scope of work to our team members. A business analyst creates a product development backlog based on functional and nonfunctional requirements and business needs. This formalizes the product vision into the project scope for the development team.
Meanwhile, our development team prepares for the actual development. This includes transferring technical knowledge from the solution architect to the development team, creating a testing strategy, reviewing technical documentation, and performing initial project setup of all required environments.
Each feature passes through two stages of development:
At this stage, the design is turned into code and other artifacts (database, automation tests, etc.). We keep an eye on the quality of our products. So in addition to implementing the UI design, our developers conduct regular technical audits and test developed functionality.
When developers implement a feature, we test it, validate it, and register defects. After getting a QA report describing all defects, our developers fix them until the product meets the requirements and works smoothly.
Read also: Testing and Quality Assurance at Yalantis
To be sure everything will work smoothly after deployment, we move to stabilization. At this point, we make a backup so we won’t lose data in case of an emergency. Then we conduct verification testing.
An integrated development and testing environment, as well as a production server, are crucial for successful stabilization and deployment. Our DevOps engineers set up this environment. After that, developed and accepted functionality is sent to the integrated development and testing environment.
Finally, the moment has come – your app is ready to meet its end users. Sometimes, a product may first be released to a limited audience for beta testing and be tested in a real business environment. This is called user acceptance testing, or UAT.
As a rule of thumb, we apply the Scrum methodology to our development process, which divides the whole scope of work into sprints. Sprints at Yalantis last two weeks, during which time we develop the particular part of the application defined in the sprint backlog. So instead of deploying the whole application at once, we work iteratively. At the end of each sprint, we deploy features developed during the sprint.
Thanks to this approach, you can see the results of our work every two weeks instead of waiting till the end of development. This helps us get feedback on developed functionality and correct the project plan to be sure the app meets your expectations.
Post-release support phase
We offer post-release product support services that enable you to enhance and upgrade your web or mobile app after its official release. With this service, you’ll be sure you can quickly make changes to your product if you suddenly come up with a great new feature or start receiving feedback from users on how to improve your app.
Development lifecycle adjusted to your needs
There are four SDLC frameworks at Yalantis:
This is the most widely used model and is ideal if you want to release your product as fast as possible.
The BABOK Guide by the International Institute of Business Analysis states that adaptive approaches focus on rapid delivery of business value in short iterations in return for a higher degree of uncertainty regarding the overall delivery of the solution. This SDLC framework is useful when taking an exploratory approach to finding the best solution or for incremental improvement of an existing solution.
With an adaptive SDLC, the development phase can start before the end of the discovery phase and happen in parallel with it. All functionality is estimated in small portions and taken for work after your approval.
For this framework, completing the project within the budget and timeline is crucial, so we take responsibility for delivering the project on time and fitting in the budget.
This approach allows us to make changes to the project in case your requirements change or you want to alter existing functionality. But if there are significant changes to the product, we determine which functionality can be replaced to fit the budget.
According to the BABOK Guide, predictive approaches focus on minimizing upfront uncertainty and ensuring a solution is defined before implementation begins in order to maximize control and minimize risk. This SDLC is ideal when requirements can effectively be defined ahead of implementation, the risk of incorrect implementation is unacceptably high, or engaging stakeholders presents significant challenges.
With this model, you’ll know the exact cost of development for the whole product. There are several things you should be aware of:
This framework freezes the backlog of tasks before the start of the development phase. If you want to make changes after that point, we’ll negotiate an additional budget with you.
The development phase starts only after the discovery phase. Our developers wait for an accurate estimate of the whole project and get started after that.
This type of SDLC is used in several cases:
You have a high-level vision of the product but have clear requirements and design only for part of it.
You already have a team of developers and need only one particular service (for instance, backend development or design).
The product already exists and your main goal is to make changes, adding new functionality or improving existing features. In this case, additional technical research will be included in the discovery phase.
The budget is formed for each individual functionality and may be revised in case of changes to requirements. With this model, changes will be added to the scope of work for the next sprint.
Outstaffing model (staff augmentation)
This is a common model that’s used when you already have a streamlined development process and want to extend your existing development team with a couple of our professionals. In this case, we fully integrate into your SDLC and implement the technical solution proposed by you. This gives you the flexibility to work out the requirements for your product.
We also use this model for post-release support. In this case, the whole scope is unknown and will be formed on demand.
Who manages the process?
We provide a project manager whose responsibility is to make you feel as if we’re next door. The project manager organizes development teams and collaboration between developers and describes developers’ tasks in detail. This allows us to streamline the development process and coordinate it efficiently without your having to spend time on that.
During development, the project manager ensures successful implementation of the project in each of its phases, follows the plan developed in terms of timelines, deliverables, budget, and risk, and manages communications and day-to-day operations.
Your project manager is your single point of contact. You have no need to get into the details of the development process and worry about how the project runs. At any point in the SDLC, you can ask your project manager for a project plan document. It will show you when the project will be completed, what part of the scope has already been done, what development risks exist, and how they can be eliminated.
How we ensure visibility
There are three pillars of visibility at Yalantis:
Communication. We provide our clients with deliverables to ensure constant communication during the development process. The first is a kick-off meeting where a sales representative introduces team members and their roles. During this meeting, we also discuss project tasks, expectations, and aims. In addition to regular calls, you can request a call whenever you have a question about the project or want to make some minor changes.
Progress tracking. Your project manager will document our progress in detail in a project plan document. Thanks to this document, you can always know what possible risks may stall development, how to eliminate these risks, what part of the project has already been developed, and what features are still waiting to be developed. Typically, we send a project plan at the end of each sprint, but you can request it at any time.
Full access. We give you access to the tools we use, and you can always talk to our developers via several communication channels.
The goal of our app development models is to create a great product by providing quality services to our clients. Thanks to our SDLCs, we can provide visibility over development, predictable delivery, and highly organized processes. All these factors are essential parts of a high-quality technical solution.