Working on each project in Fresh Design Agency, the first step is to agree on the work format on the project. And while the company has a common approach, which we use for most projects and which allows us to provide the required quality level, there are also projects that require a special approach due to their nature. We want to tell about one of such projects.
fdForge is an internal system, which has been developed in Fresh Design for 5 years and which is the basis for all our web projects, as well as the basis for business process automation projects in the company. Platform Features:
If this project is an internal one (i.e. all project decision makers are inside the company) and it is also integrated into all other client projects of our company, the fdForge project has some features in the development process that we would like to talk about.
We worked on many web projects for 12 years; different directions, but since 2012 we have been increasingly involved in projects related to flexible receipt, processing and distribution of applications for various services - mainly financial sector, as well as insurance, FMCG and web services.
Working on each project, we focused on the common patterns, the functional modules that are available in each of them. So, during the development of the next project, we found a solution that makes sense to combine all the work we had done before into a single technical solution. Taking into account that one of the most important parts of our platform has always been working with personal data, the basis of the then unnamed product was the rights delimitation module. Further, for 5 years we have been complementing, developing and modifying the functionality of fdForge, creating a more and more flexible platform.
Primary reasons for the creation of the platform are as follows:
Based on the specifics of the project, we have developed four main sources of task definition for ourselves, which will be included in the upcoming releases of fdForge:
.
All company employees have access to the fdForge project backlog and can express their wishes. This is how we got so many successful solutions.
This approach allows us to maintain high stability of the system, taking into account the wishes of our existing customers, as well as increase the value of the system for new customers.
Every two weeks we have a meeting where technical experts and analysts discuss the composition of current and upcoming releases. During this meeting we discuss the priority of tasks, make the timing of implementation and update the composition of upcoming sprints, as well as determine the team responsible for one or another release.
Time of two weeks is optimal, because there are enough materials for discussion. There is no need to meet more often, but less often you can't, because you can miss some of the actual “fichas“
With each release, we have a set of rules that we adhere to both within fdForge and most other company projects:
Some of the solutions we came up with as part of our work on the project was the transition to micro-releases. Previously, work on a release could take up to 2-3 months, but with the development of the project, this approach has become impossible, the functionality required for projects should be delivered to the system in a shorter time.
The similar approach allowed us to shorten the period of testing and debugging of the system, as well as to reduce the complexity of updating projects based on fdForge, transitions became more predictable.
After the publication of the new release, we update our customers' existing projects with new functionality. Most projects are updated by us as part of our signed support contracts, but there are cases when a customer enters into an additional agreement with us to update the fdForge version.
In most cases, the update takes 2-3 hours, with system downtime of 5-15 seconds. However, there are cases of major releases where the logic of the app changes with the fdForge update. Let us explain this point by the example of the FinMe project.
As part of release 1.18, fdForge has introduced flexible transaction configuration functionality, where a system administrator with a sufficient set of rights could customize the list of properties that a transaction would have, while different types of transactions could have their own set of properties. The FinMe system is a financial broker that receives, processes and sends requests for microloans from various partners. At the same time, due to the specifics of business, the set of properties in these requests may differ depending on the source of receiving requests.The FinMe team had a choice to develop their own solutions to optimize the set of fields in the request, or to translate the existing logic in the system to the functionality of deals in fdForge and get the flexibility to configure the API based on the system capabilities. The first option was evaluated at 190 hours, while the upgrade could be integrated within 40 hours.
But more importantly, our FinMe colleagues got access to all the functionality that was associated with transactions and appeared in the system in subsequent releases - visualization using dashboards, building statistics, exporting transactions and forming user segments based on their transactions.
Indeed, work on an internal project is very different from external development, but most of the principles and approaches that we apply to work on fdForge are also used in client development.
Checking the experience of the projects we have launched, this approach has proved to be successful, allowing flexibility to change and develop the functionality of existing systems, while at the same time meeting the high requirements of our customers, allowing high-quality and timely launch of new projects.