Laying down the requirements
A great web app starts with a well-conceived idea or arises from the need to modernize your everyday business. The clearer the vision, the better the outcome. We will gather and organize your wishes to form a comprehensive requirements specification. Documenting your needs will also help eliminate any grey areas.
When your idea is not quite nailed down yet then we can also proceed with agile development process, gradually specifying and adding new functionality. While such approach is more flexible than traditional development methods, it often leads to increase in duration and cost of development. Moreover, with agile methodology it is more challenging to predict time of delivery and the budget required to finish the product.
In order to achieve mutually satisfactory results, it is important to document the terms of reference. We need to specify clearly what functionality will be provided by the app to end users. It is also necessary to agree upon which browsers the app must be usable with, whether it should be multilingual and other properties. Once the requirements are agreed upon, we shall provide an effort estimate and provisional deadline for delivery.
Architecture, design, user flow
Once the desired functionality of the app is decided, it is time to dig into the details of how the website will look like and how its different functions are presented to users. We describe the actions that users are presented with and the contents of the pages that are displayed to them along the way to reach their goals. This will result in website architecture and user flow description.
For customer-oriented websites, esthetic appearance is essential. In order to achieve that, we engage a designer who shall come up with page layouts, color schemes, images and other visual aspects. Normally, different designs are created for different screen sizes – computer, tablet, smartphone.
To better understand the behavior of a complicated application, it may be helpful to develop a prototype. A prototype is an incomplete piece of software that demonstrates the usage of user interface components in the context of specific user workflows. It may be created with a fraction of the effort that would be required to develop complete website.
Work plan with effort estimates
Software development is often done in increments to provide earlier access to the website and keep you better informed of the progress. Before starting with development, we establish a work plan outlining the functionality that will be implemented and the date when that functionality is delivered. After the work is completed for the increment, we make the app available to you for evaluation and accept your feedback. Required changes or additions will be planned for following phases.
If you are on a limited budget or have a strict deadline, then all desired functionality may not be attainable. To help you decide what will be implemented and what will not, we can provide you detailed effort estimates separately for each feature. Such analysis will increase the time and effort required to create the work plan.
Development and QA
Development takes place behind the scenes according to specifications and workplan. If we discover that some task takes longer than expected, then we will consult you about further steps. During the development we document the source code and other technical properties of the website. The extent of the documentation depends on the peculiarities of the app.
Our developers are expected to thoroughly test every new feature that they implement. However, to ensure proper functioning of all features in different environments and browsers we engage a specialized quality assurance (QA) team. The scope of functional testing is decided based on the complexity of the website. We also consider the potential impact of any undiscovered errors on your end users or business process.
Review and feedback
The features implemented during an increment will be deployed to a test environment for review and approval. This gives you the opportunity to verify that the website functions as expected and give us specific instructions for improving the design or functionality. It is usually possible to enrich the testing environment with real-life data, if available, to provide a realistic user experience.
The goal of the evaluation period is to discover any issues or miscommunications as early as possible to avoid costly rework down the line. Make sure you reserve some time for the reviews in your calendar.
Deployment and maintenance
Deploying the website to live server requires greater effort than setting it up in the test environment. In addition to installing the software, the activities include arranging the domain, setting up automated backups of the environment and databases, configuring certificates and other security settings. In case of larger user base, it is also necessary to set up load balancing and other performance related optimizations.
For public websites, we will take care of the SEO (search engine optimization) – we will make the pages visible to search engines and propose a strategy for increasing your online visibility considering your business goals and competitors. Upon request, we can analyze users’ behavior on your website and suggest ways to improve user experience.
After the active development is finished, we shall agree on the conditions of maintenance and the procedures for adding new features to the website.
Rest assured, our development team will be devoted to the success of your business.