What do you get from it?
- Cutting-edge software — serving your needs, deployed to a production environment.
- Quality reports — (after functional, stress and security tests) proving the result is top—notch.
- Documentation — (use cases, architecture, data flows, algorithms, deployment) to allow everyone to understand how the solution was built.
- Experienced maintenance team — to assist you in operating the system after it reaches end users.
Why is our software engineering process trustworthy?
- Always based on the results of the discovery and design phase to make sure it’s what you really want.
- The technology and development methodology is carefully picked based on the problem we’re solving.
- Optimized for minimizing known risks.
- Progress is based on continuous feedback from you (or your representative).
- You don’t have to take our word for it. We deliver proof in the form of test reports showing that everything is as agreed.
- Progress and budget are carefully monitored based on the project roadmap.
What are the key elements of the process?
During the kick-off meeting, you’ll have a chance to meet the development team members. The meeting is all about figuring out who is responsible for what and how we are going to communicate (when and using what kind of channels). We basically create a “contract“ between the client and the development team that explains what can be expected of us.
This element is very useful for planning the work as well as monitoring the progress and the budget. The scope of the whole project is roughly divided into independent chunks (also called epics).
After each chunk has a known priority and effort it can be placed on a time schedule. While placing it there we take into consideration what is your desired time of delivery, what should be the team size, which chunks can be done in parallel, which are the most risky and should be attacked first, and what are the main checkpoints (milestones).
When done right the roadmap can be then used for planning the tasks for the team and checking where we stand with the progress vs. the budget.
A series of week—long sprints. Think of a sprint as a mini project, meaning the scope and the end result are known, the result must be useful to the client even if it’s small.
Each sprint involves planning the work for this week (mostly picking from the roadmap), thinking in detail about the tasks that come next, delivering the result and presenting it to the client. The scope of a sprint is always aligned with the project roadmap. After each sprint roadmap gets updated and checked if it still reflects reality. The initial plan and process might change as we face obstacles but it’s easier to handle them when you know about them as soon as possible. This rhythm and routine leaves very little space for chaos and works as a well—oiled machine.
This methodology is result—oriented. After each sprint, the client receives a useful software increment. Something that you can see for yourself and is already useful or makes you sure you are one step further into achieving the final goal. For a complete package, the software is also backed by new documentation and test results.
Maintenance or hand—off
After the team is done with implementing all the planned functionalities and the solution is deployed to the production environment it’s time to decide how you want to handle the product in the future.
You might have an in—house maintenance team that will handle the support process. In that case, we can carry out an overtaking workshop to transfer all our knowledge to the new team. We do that by giving them detailed documentation about the project, presenting the development process, presenting the code, and giving access to all the required environments.
If you don’t have your own maintenance team we can provide you with one. We make sure that the team gets all the knowledge to support you. We also always have at least one member of the development team in the support team. We can also pick all the tools required for the effective maintenance of your product.
What do you need to do to maximize success?
It is very important that the client (or his/her representative) is actively involved in the process. Only then we can be sure that the end result is what you intended it to be. We call the person involved a Product Owner (PO).
The PO should be present while planning the roadmap, planning the work for a sprint, reviewing sprint results and analysing the tasks in detail. This basically means that every business decision gets consulted with the client representative, with no surprises.
The PO is also informed about the progress and the budget consumption level. Requirements change and some risks materialise. This all affects the scope of the project. PO should be aware of that for full transparency.