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
Audience + A/B tests
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.
Artificial intelligence technologies have been developing for decades, but only in the last few years have neural networks "smartened up" to a level that allows them to be used as assistants or even to replace human labor.
The beginning of the year was marked by a flurry of activity by various legislators to deal with artificial intelligence. The New York Times filed a lawsuit against OpenAI and Microsoft, and the UAE created an AI council to accelerate the adoption of AI systems in critical sectors of the economy.
What should a business solution be, so that it is chosen by young people, but at the same time not rejected by older professionals? Maybe beauty will save the peace in the team, because everyone wants to work in an application that looks beautiful? It is true, but User Interface (UI) is good when it is based on User Experience (UX). If harmony between UI and UX is achieved, the product will be both beautiful and user-friendly.