background Layer 1

How to optimize the work of the development team using an internal framework

When a developer is faced with the task of creating a product as quickly and efficiently as possible, it is impossible to do without a framework. This tool not only simplifies the process of creating new programs and applications, but also increases the efficiency of teamwork on projects. 

Andrey Lukin, senior PHP-developer at an international dating startup, tells us how to create and implement an internal framework into the team's workflow so that the results live up to expectations.

What is an internal framework and what is it for

A framework is a set of tools and libraries designed to simplify the software development process. It includes a modular structure that allows developers to use only the necessary off-the-shelf tools and focus on writing code.

Creating your own framework can be useful for several reasons:

Speeding up the development process. If a team of frontend and backend engineers spends a lot of time fixing bugs in the system, it can lead to the fact that every team member has to be a full-stack developer. Creating a framework allows each developer to focus on their specialization and not waste time writing 10-20 line handlers.

Improved code structure. Using an off-the-shelf template and augmenting it with functional blocks helps to create "clean" code that complies with development standards. The framework also allows the developer to focus on the logic of his code without worrying about the context within the operating system. 

Improving the quality and security of the product. Creating your own framework allows you to take into account all common vulnerabilities of the product, which significantly increases the level of protection against attacks. This is especially important for those products that contain confidential information.

Plan for creating an internal framework

Creating your own framework can be a complex and time-consuming process. Therefore, developers should follow a step-by-step strategy for creating a framework to avoid mistakes and achieve the desired result:

Step 1: Define the features and requirements for the framework

Before starting to develop a framework, it is necessary to clearly define the requirements for it and the main functions that developers may need to solve certain tasks. 

For example, in a framework I was involved in, a key function was to ensure that frontend and backend developers were comfortable working together and that the system had a minimal API to reduce communication costs. 

Step 2: Create the framework structure 

To create a framework structure, you need to break it down into small steps and put each step into a separate framework component. Thus, you will get several pages, each of which will have several components. For example, you can divide the framework into the following pages:

  • Creation and basic settings

  • Device support

  • Audience + A/B tests

  • Delivery time

  • Customizing Conversions

  • Testing and shipping

In order to make the developers' work easier, together with the team we decided to rate each component by the complexity of porting for frontend and backend engineers. Thus, we got a total score for each page and started porting those pages that had the lowest number of points. So, by closing those points, we reduced the complexity of the remaining components.

Step 3: Identify key metrics 

Every product - new or existing - has its own goals and metrics. During the period of preparation for launch, certain metrics are important to the team, which may become less of a priority after the release. In my case, the main criterion was to reduce the number of bugs in the code and to enable effective business planning. 

After snacking on the framework, the team also had the opportunity to evaluate its flexibility and customization to meet the needs of developers. Our initial metric was successfully achieved, but it didn't have much value to stakeholder. So we developed a new metric that gave more visibility to the project - we categorized all requests on the Slack platform and collected statistics on them.

How to successfully implement and adapt the framework into the team's workflow

Implementing a new framework is an equally responsible process that requires the right approach. Each team member has his or her own peculiarities, so it is important to adapt the framework for each team member.

To begin with, it is worth holding a workshop where the team can discuss all the details of the new framework, talk about its advantages and capabilities. Also at the same meeting, you can test the first steps of the DoJo method of working with objects and talk about how it works. It is better if the whole team can attend the workshop to make sure that each member understands the importance of the changes and is ready to accept them.

However, it should be taken into account that each team member may have a different attitude to the new framework. As is often the case with the introduction of new technologies into the team's work: some will accept them with enthusiasm, while others will not be happy about the innovations. Therefore, it is important not to overload the latter and give them enough time and support to adapt.

Support can be of different kinds: conducting trainings, creating a manual on how to use the framework. In addition, framework creators should initially monitor how the team performs tasks with new tools. This will allow to adjust the developers' work, identify possible problems and solve them in a timely manner. 

Tips for creating a framework to optimize the developer experience

Decide whether you need a framework at all. If your team is only concerned with fixing bugs and eliminating problems encountered during the development process, then perhaps you should still think about how to optimize technical processes. 

If developers start using frameworks to accomplish even the simplest tasks, however, it eventually leads to confusion with the capabilities of the underlying programming language.

Monitor the speed of the team's work. You should have a system in place to monitor and analyze team performance to determine which tasks are taking longer and which resources can be optimized.

It's also important to get feedback from the team to understand what processes can be improved and what tools and techniques can be implemented to achieve goals faster. 

Think about metrics in advance. When creating a framework, developers often make the serious mistake of not paying enough attention to metrics. But they help to demonstrate the results of work and convince stakeholders in the effectiveness of development. 

Metrics can be both indirect, such as chat requests, and direct, for example, the number of tasks completed over a period of time. 

Metrics make it easier to show that there is a problem and subsequently say what has changed. To track changes, it is also better to set thresholds for each metric so that you can evaluate performance and make decisions to improve the project.

On June 6, 2024, the professional IT community Global CIO held an annual meeting with IT leaders from Uzbekistan. The event named “CIO of Uzbekistan as part of Global IT community” took place at the International Hotel in Tashkent. The meeting was aimed to exchange best practices, experiences and get together IT leaders from Central Asia.

The Global CIO professional IT community has conducted its annual survey of IT executives and would like to thank all the community members who helped realise this work. This survey explores the key challenges that CIOs face from their companies, as well as the CIO's personal view of their areas of responsibility. The survey included 100 respondents heading IT departments in companies.

The events of the past two years have shown how important it is not only to have a long-term strategy, but also to be able to quickly 'reformat' it to new circumstances. The metaphor of the whale and the Strategy methodology were created specifically for this process.

We use cookies for analytical purposes and to deliver you the best experience with our website. Continuing to the site, you agree to the Cookie Policy.