Mobile and WEB App
Development Services

Our step-by-step process to ensure customized software solutions.

Phase 1

UI/UX

Phase 2

development

Phase 3

maintain

Phase 1

UI/UX

We focus on understanding our clients needs. We learn about your ideas and you learn about our ways. A prototype will be created for you to interact.
STAGE 1.
Design Discovery
STAGE 2.
Technical Discovery
STAGE 3
User Experience Design
STAGE 4.
User Interface Design
STAGE 5.
Prototype & Estimation

Stage 1.
Design discovery

Brainstorming, goal setting and data collection.

The Reunion

Teams come together to set realistic and measurable goals.

James Stuart
Accountant - 28 years old
Defines success by minimizing shipping costs.

Joe Patrick
Sales Manager - 34 years old
Need a better method to engadge customers.

User persona and
Insider Method

We apply the User persona and Insider Method In order to make better product decisions and gain valuable user insights like motivations, behaviors, frustrations, and needs this method gets applied.

Stage 2.
Technical discovery

Many of our projects start with a multi-part technical discovery engagement to either understand and document your existing software stack or research and recommend the right technologies and architecture for your project.

This technical discovery may include conducting a code review on your existing application, researching technology options for your specific use case and more.

Stage 3.
User experience design

Our UX design process ensures that we are solving user’s needs efficiently, and creating an application that is easy to use and understand.

Feature Map

To begin with, we create a feature map, it serves as a starting point for a more detailed examination of how the views will interact, and it is maintained and updated throughout the life of the project.

User Flow

User Flows are then constructed to demonstrate the steps users will follow to achieve specific objectives. These are important because they allow clients, designers and developers to share a mutual understanding of how the functions will work and what the results of the functions will be.

Wireframe

As a final step, we’ll create wireframes of the primary views of the application. Wireframing allows us to create the general layout of the screen without having to decide on the exact text and imagery that will be used in the final designs.

It’s useful for:
Rapid Prototyping
Understanding Functionality
Demonstrating the User Flow
Ensuring a Solid Underlying Structure

Stage 4.
User interface design

We now move on to visual design, selecting a style concept, converting the selected concept into a style guide and, as a final step, creating high fidelity mockups of each view of the application.

High Fidelity Mockups

All this serve as a visual representation of how the app will look. It incorporates the structure of the Wireframes with the visuals of the design. The mockups looks like a photography, illustrations, and icons. These serve as an accurate depiction of how the app will look when it launch at the market.

Stage 5.
Prototype & estimation

Once the high-fidelity designs were completed, we organized them in Adobe XD to create a clickable prototype, which we then used to build a development budget.

High Fidelity Clickable Prototype(s)

Prototypes for user testing allow us to interact with the designs and really understand how the product will work once finished. This allows us to test the application before development and discover things to improve, it can also be a great tool to get budget approval for the development of the application, or to present to investors.

Development Estimate

Our comprehensive design process and the clickable prototype help everyone involved fully understand what will be built, which in turn allows us to create a detailed line-item estimate of the hours required to develop the app, and the associated cost. It’s not possible to accurately estimate the cost to develop an app without first designing it, which is why a systematic design process is so important.

Development Proposal

The Development Proposal outlines the proposed cost to build, development team, and timeline. If your project warrants it, we may also include a plan for phasing out the releases with the expected cost and timeline of each release.

Phase 2

Development

In the development process we show you everything we have learned iOS, Android and web applications.

STAGE 1.
Pre-Development Planning

STAGE 2.
Active Development
STAGE 3.
Launch

Stage 1.
Pre-development planning

To ensure an efficient process we conduct pre-development planning to prepare. This involves assembling the development team, completing a design-to-development handover, establishing project milestones, creating stories and planning sprints.

Assemble the Team

The typical development team includes two full-time senior developers, a part-time project manager, a part-time QA professional and a part-time designer. Our teams are usually comprised of a mix of professionals from our Colombian and U.S. offices. This mixed approach combines the quality and convenience of an onshore team with the cost savings of a nearshore team, and has proven to be very effective, and very popular with clients.

Design to Dev Handoff

Once the development team is assembled, they meet with the original design team for a design to dev handoff meeting. A comprehensive handoff from the design team to the development team ensures that developers fully understand the application and have what they need to build it.

Prior to development beginning, the design team meets with the developers and reviews everything that was created during the design phase, including the market research summary, user personas, user stories, user flow map, style guide, high fidelity designs, and the clickable prototype.

Establish Milestones

As a next step, the project manager establishes the key milestones for the project, which we call version releases. Instead of just having one deadline at the end of the project, we have several version releases along the way that each include a limited version of the app with a limited number of working features for the client to test.

Create Stories

Once milestones are established and agreed upon, the project manager begins creating stories. Stories act like tickets, which are assigned to developers during sprints. They describe what the developer needs to build, and include acceptance criteria, which indicates how the feature should perform in order for it to be accepted by QA. The stories are generated based on the designs and the individual line items from the original estimate, and each story is assigned a number of hours to complete, which ties back to the estimate.

For each sprint, developers are assigned a number of tickets whose combined estimated hours equal the number of hours in the sprint. This allows the project manager to measure the effectiveness and efficiency of each developer, for each sprint.

Sprint Planning

Once the stories have been created, they are bucketed into two week sprints. We try to plan out as many sprints as possible at the beginning of the project. However, the first couple of sprints are planned in more detail, and are more accurate, then sprints planned later in the development timelines.

After the stories are added to the sprint they are assigned to each developer on the team by the project manager, based on the number of hours available in the sprint and the number of hours estimated for each story.

Stage 1.
Active Development

Once pre-development planning is complete, it’s time to begin active development, which includes completing two week sprints, conducting retrospectives at the end of each sprint, and launching version releases based on the scheduled project milestones.

Sprint Execution Begins

Developers are assigned a number of stories for each two week sprint. Each story is assigned an estimated number of hours to complete, and the combined estimated hours equals the number of hours available in the sprint. Each story includes a description of what to build, links to required assets like components and icons, and acceptance criteria.

Test Coverage

As the developers complete stories, they build automated unit tests and integration tests into the code. Test coverage is important as it alerts developers when something breaks as new code is introduced. Without test coverage, each time new code is added the entire application will need to be manually tested to determine if the new code broke the old code. This is time consuming, costly, and ineffective.
Some developers skip testing early on to save time and go fast, but this is costly in the long run. All of our apps are built with robust end-to-end test suites from day one, which saves time and money in the long run.

Unit testing tests code at the unit level (the smallest testable part of an application). The purpose is to validate that each unit of software performs as designed.

Integration testing is a type of testing that combines individual unit tests and tests them as a group. The purpose of this test is to discover faults in the interactions between integrated units.

Continuous integration testing is a development practice that requires developers to integrate their code to a shared code repository several times per day, where it can be verified using an automated build process and an automated test suite.

Quality Assurance

Once developers complete a story and build unit and integration tests, the story is then ready for review by Quality Assurance. If the story passes QA it’s then sent to the Project Manager for further review. If it fails QA it’s sent back to the developer for revision. Quality Assurance checks for a number of factors.

Code Review & Merge to Master

Once the story passes QA it’s sent to the project manager who reviews the actual code to endure a high level of code quality and tests the code / feature one final time. If everything looks good, the lead developer merges the code with master, and the story is complete.

The quality of all of the code we write is judged against our code quality standards. At FullStack Labs, we write clean code. This is what that means in practice:

Sprint Retrospective

At the end of each sprint the team meets for the sprint retrospective, where they determine and discuss if the sprint was completed on time, if the stories were properly estimated, if there were any unforeseen blockers or challenges that popped up, if the project as a whole is on track vs the estimate, and if FullStack’s process is being followed properly.
The feedback from each retrospective informs the plan for the next sprint. We track sprint completion by developer over time to ensure that developers are hitting their sprints consistently. In the rare event a developer consistently fails to complete sprints on time, the project manager works with them to identify and create a performance improvement plan, then measures improvement against the plan going forward.

Version Releases

As sprints are completed, they roll up into version releases which include a limited number of completed features that are ready for UAT (User Acceptance Testing) by the client. Clients are able to test the version releases and provide feedback to the development team.

Stage 3.
Launch

Eventually all of the version releases have been completed and accepted by the client, and the app is ready for beta testing, and eventually, a public (or internal) release.

After the public release the app moves to either maintenance mode or continued development.

Phase 3

maintain

Once the application goes live we can provide ongoing support via a maintenance agreement and/or ongoing active development agreements.

STAGE 1.
Maintenance Agreements

STAGE 2.
Ongoing Development

Stage 1.
Maintenance Agreements

For applications with limited planned future development, a maintenance agreement is all that’s required to keep the app running well. Maintenance agreements cover the following:

Error Monitoring &
Bug Reporting

We use several third-party tools for error monitoring and bug reporting, including CodeClimate, Eslint, Sentry, and bugsnag. These tools alert us when something goes wrong, and help optimize performance.

Performance
Optimization

For applications that manage large amounts of data or which have large numbers of users, ongoing performance optimization may be required. This can include monitoring and optimizing servers, load testing and optimization, crash reporting and response, etc.

Update
Versions

Open source software languages are constantly updated by the open source community. Each update is called a “version”. It’s important to keep versions up-to-date, to ensure performance, security, etc. So all of our maintenance agreements include updating versions as a standard deliverable.

Update Integrations &
Dependencies

Modern applications are built with a variety of third-party dependencies and API’s, but these dependencies and API’s can change over time. So an important part of our maintenance agreements is updating applications to ensure they continue integrate properly with third-party dependencies.

Stage 2.
Ongoing Development

For clients who wish to continue adding features and making changes over time, an ongoing development agreement will be needed, in addition to a maintenance agreement. Ongoing development agreements include the following:

Product
Roadmaps

We’ll work with your team to create a robust product roadmap that outlines which new features will be built, and when. This helps prioritize features, plan budgets, etc.

Design New
Features

After new features are added to the product roadmap, we’ll complete a short design process to demonstrate the new feature and how it will operate within the existing application.

Develop New
Features

Once design is complete, we’ll estimate how much time will be required to develop the feature, then will add it to an upcoming sprint to be completed.

ONGOING

Operations

Wonder how we make this process work? Here’s the tactics and tools we use.

SCRUM Method and Favro

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.

Check in and check out every day

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore.

Engagement
Opportunities

This playbook focuses primarily on development of a new “Greenfield” application. However, building new apps isn’t the only thing we do. We offer a variety of engagement opportunities to clients, including:

New Apps

Technical Discovery & Estimation

UX/UI Design & Prototyping

Custom Development

Maintenance Agreements

Legacy

Ongoing Dev. of Existing Apps

Parallel Design & Development

Version Upgrades

Performance Optimization

Staff Augmentation

We’ll add as many developers, project managers, quality assurance professionals, and designers to your team as needed, to help you level up your team’s skills and go faster.

We are Ready to Take You
to the next Level!
Let’s talk, we want to help you with your project.
Elevvate.co
All rights Reserved.

Leave us the following information to obtain the PDF