What is custom, bespoke web-based application and how is it developed?
Custom or bespoken web application is an online based system planned and build for a specific organization offering specific functionalities to solve a specific problem or create specific value. It can be a public application, like a website, e-commerce store, SaaS platform or a simple dashboard for your clients or it can be a closed, business system for your warehouses, accounting, HR or anything else. Or it can be both. The main idea of the bespoke web-based application is that it is built specifically for each client and it's accessible using the internet. The development process of a custom system always starts with a proper planning stage, understanding the development scope and the desired end result. If its a simple website or mobile application, then what are our main user base, what is our core message to them and what actions we want them to take? If its a business tool, what is the problem we are solving? What are our KPI ’s? In most cases you as the product owner don't know these questions at the start, together we identify them, document the needed solution and developers can do their magic (aka turning coffee into code).
Development framework and its stages
Over the years while the industry standards were just shaping each project manager had a bit different opinion on how to structure the processes, the team and other aspects of development. But as the demand for software development kept growing, so did the industry and with the introduction of different frameworks, both for management and code, we now can lay out needed development steps pretty easily.
1. Project planning
First and most important step! The overall project development success is very dependent on how well the project is understood, thought out and documented. As mentioned before in most of the cases the product owner has a concept, a requirement or an idea. It's in the planning process where we turn that into an action based plan and understand the needed product. Different project types require different levels of planning but every development must have at least short written documentation detailing overall architecture, technical solutions used and the project goals. If a custom design is needed overall UI needs to be laid out in wireframes. Once the documentation is created it then can be used to precisely estimate all costs, create a full development quote and set timetables.
After all necessary documentation is created we know what to build, its time to decide on how it will look. You should always start by creating overall brand identity and style guidelines which then can be wrapped in a pixel-perfect web or mobile designs. What is important in this stage is to always keep in mind best UX/UI practices, always remembering that functionality and accessibility is the key for a successful project. The result should always reflect your business identity.
3. Front-end development
4. Back-end development
This is the step that separates men from boys in our industry. After the planning process is finished, all the needed technical functionality gets split into multiple sprints, with precise deadlines and testable milestones. To avoid crucial mistakes in the development phase or the end product each milestone gets delivered and shown to the client. How you manage these deadlines, and how bugfree is the product delivered to the client on each milestone is our agencies main KPI. This is how we measure our success, always trying to overdeliver and exceed the clients' expectations. All the steps before this are more visual, so it tends to have a couple of revision before the client likes it 100%. Not with functionality, it either works, or it doesn't. Simple as that.
The solutions created by our Agency are fully scalable, based on a modular system which allows us to easily scale it and add new functionalities. The code is written in most popular PHP framework “Laravel”.
5. Mobile application development if needed
Hybrid technologies are the way to go, and yes, I am well aware that this is a touchy subject for native mobile developers. In all honesty, native is just too expensive for most of the application on the market. If you can't afford a dedicated developer for each of the big platforms (iOS and Android), that will not only develop the application, but maintain it and, sort of, work in tandem so both versions are always up to date, then native will most likely fail you. With hybrid technologies, it's much more simple. After the planning process, one source code gets created and then compiled for both platforms. In this way you only have to maintain and update one code, making the whole process understandably cheaper and more efficient.
6. Project testing and QA
After the development is done, the project gets retested from A-Z. There are multiple types of testing usually performed on a project, it involves functional testing, code review, stress testing, automated tests and other, but the main idea of the step is to assure quality over the product created. From my perspective this process is for everyone - the client gets assurance about the software, and we as the developers have the option to once more go over everything, and make sure everything is in the final order.
Historically testing and bug fixing is the most hated stage of all, but our mantra is that the time needed for bug fixing is a direct reflection on the development quality. And yes, I am a big believer in automated tests as they reduce manual workload at least for 60%, those can be weeks saved in bigger projects.
7. Setup of server environments, project deployment, and launch
Setting up your production scheme in a correct way is vitally important not only for development and launch of your project but for its future. You should always have at least 2 environments available - staging environment to test the new updates and production environment for the Live project. Developers work on the project locally, uploading their new code and merging it using code versioning(we use GIT to manage our code). Also, database migrations between these environments should always be in order, so you can perform live updates without losing any data.
How to get started?
Ok, so I think I have covered most of the basic information regarding the development stages and costs, now how can you get started? Well, it depends on the materials you have prepared. If you already have gone through the immense planning process, maybe detailing software for investors or your board then all you have to do is create a tender and ask companies for quotes. From there is pretty smooth sailing - select the development partner with the best offer and let them take care of everything. Now the tricky part is if you are still in the idea, concept phase. As laid down here, at this stage it's possible to explain how development is done, and we can give you some ballpark timetables and project totals, but to create the precise development quote the planning process is a must-have. So how much the typical project planning cost? Well that depends on the project size and complexity, we at Netcore usually offer three options to our clients:
||For small to medium projects with no complicated custom functionality. The document just details overall project structure, base user stories and technical solutions needed.
|Base project planning
||Everything included in MVP documentation, but with additional wireframes for every user interface section. The wireframes are already linked as the project will be, allowing to experience the project before the first line of code is written.
|Full technical planning
||Everything included in Base project planning, but instead of MVP documentation, a HLDD (High-level design document) is created, detailing in-depth every project aspect, including database and server architecture. This is needed for only really complex projects, usually finance and security systems.
After the planning process, you will always receive a quote from our agency, always giving you the perspective of costs from our side. Want to know more or your ready to start on your project? Contact me directly at email@example.com and lets schedule a free consultation in upcoming days.