Krononsoft Development Process
How does an idea of an application become a working tested software? How exactly Krononsoft software engineers work with the customer to build an app?
How much information do our engineers need to start working? What is needed from the project owner? And how is ongoing day to day work on a project organized?
The big picture
Every project has a goal. Every service is targeted for some users. Every application is created to make someone’s life better, to solve some problem for some people.
The first step for the Krononsoft engineering team joining the new project is to talk to the project owner and to listen about their vision. Our engineers need to have a shared understanding with the customer of the project goals. They will ask questions. The customer may answer some of them. There may be questions with answers not yet known, and that’s ok.
Krononsoft engineers make sure that all the possible useful features for the app are written down and discussed, so the overall idea of the development direction is understood and agreed upon. At this stage our team focuses on “Where are we now” and “Where do we want to be”, while leaving “How” for later.
Release goal
Krononsoft engineers and the customer set a goal for the release - a version of the app to be built in the next few months. For each release the customer and the team focus on some particular direction of the app growth. For example some group of users will get more attention, or maybe there is a new service or a product category to be added.
At this stage the big picture becomes more concrete. Out of all the possible features the customer selects those which are necessary for the release. If needed, the Krononsoft UI designer prepares initial mockups of pages/screens. Our engineers put together overall system architecture so they can see how all those features could be put together. The team finalizes the set of technologies to be used as building blocks for the new features.
Weekly cycle
Then the application is built in small steps. New features are added to the app by Krononsoft engineers in one week increments.
Every week the customer decides what should be the next step, which features are the most needed to get closer to the release. And by the end of the week our engineering team delivers a new version of the app with new features added.
When some functionality requires a significant amount of work which is going to take several weeks the team splits it into several week-sized chunks. So after every week the app stays fully functional, with some extra functionality added.
For every feature Krononsoft team goes through аnalysis and planning, development, testing, and аcceptance.
The team picks a feature from the list. While it was already discussed with the customer at the release planning stage, before implementing it the team needs to talk about the feature with the customer once again, but on a deeper level. Our engineers already know “what” needs to be done, so now they can focus on “how” and “how exactly”. There are usually lots of details and interactions between features to be figured out. The input of the customer is necessary to make sure the team gets the details just right.
Then actual development starts. Krononsoft engineers write new code and modify existing code, so the new functionality is added and integrated with the rest of the app.
In a few days the feature is available for testing. After the feature is tested by the Krononsoft QA engineer, the team relies on the customer to look at the feature too, and give their feedback.
After review our engineering team expects the customer to formally accept the completed feature. Of course the customer may also reject the feature if it’s not what they asked for, usually due to some misunderstanding. In that case the team and the customer get back to the drawing board to refresh and rebuild their shared understanding, to learn from the mistake made, and then to reimplement the feature in a way envisioned by the customer.
And then the development goes on to the new feature in the list.
To keep the customer in the loop the Krononsoft engineers have a short meeting with the customer every day to share what tasks are completed and what task each engineer is working on. Also by the end of the day they send a daily report to the customer of all tasks completed.
Engineering practices
Krononsoft engineers put extra attention to keep the code clean so it is easy to extend and maintain.
Every piece of the application code written or changed by one of our engineers is then double checked by another Krononsoft engineer. This code review helps our team to keep high code quality as well as to share the knowledge of the system technical details between team members.
Along with the application code Krononsoft engineers write and maintain a suite of automated tests. These tests provide a safety net to make sure that newly added code does not break any of existing features.
First public release
When the customer feels that the app has enough features, Krononsoft engineering team rolls out a public release of the app. The web app is deployed to a production server and is made available as a website under its domain name. The mobile app is uploaded to the “application store” on the mobile platform.
From now on the app is “live”.
As soon as the app gets real users, Krononsoft engineers dedicate some of their time every week to monitor the live application to make sure it works smoothly and any issues are fixed, so the users are happy.
Feedback and change of direction
When the customer sees the feature working they immediately see how it could be done better. Ideas of improvement come naturally to mind. After a few weeks the app is taking shape and the number of ways of possible improvements grows.
And after the public release the feedback of the users starts coming, so the customer can better understand the user needs and how to make the app more useful.
When the customer sees what is possible, they have new ideas coming to mind, they see new exciting opportunities. The customer may change the release goal, or even radically change the app direction for the next release. The Krononsoft team follows the customer’s vision helping them to build a successful app.