Documentation
Table of Contents
What is FLEXIN?
FLEXIN is an agile methodology oriented to the technical leader.
As is already known, agile methodologies allow us to adapt the way we work to the conditions of the project. They also allow us to present the project in stages that contain functionalities so that in the short term you can start using the application.
FLEXIN has been created for software development. It has not been tested in any other area at the moment. We can only apply FLEXIN if there is a person with the capacity to fulfill the role of leader. In our methodology, the technical leader is a person with knowledge of the business area for which the application will be developed and with the technical ability to enter the programming code to the point of evaluating or modifying it.
Starting
FLEXIN KANBAN OR FLEXIN SCRUM?
To start working with FLEXIN we need to know what type of project we are in.
When projects require quick responses to incidents, such as a project in maintenance, the best thing is to use FLEXIN CANBAN; We can also use it for short projects towards closed or very specific applications.
If the project has many functionalities and you have a team of more than 3 people (including the technical leader), you should use FLEXIN SCRUM.
To summarize, here are some project variants for your reference.
Documentación Flexin
FLEXIN KANBAN
Projects:
Under maintenance.
That have support tickets.
Mientras los equipos sean de menos de 3 personas.
Projects with very specific functionalities, provided they are of short duration.
Documentación Flexin
FLEXIN SCRUM
Projects:
Whose teams are made up of more than 3 people. (Required)
Projects with many functionalities.
Technically undefined projects.
Projects of indeterminate duration.
Documentación Flexin
FLEXIN KANBAN
Description
If you already know KANBAN it will be very familiar to you. What we do in FLEXIN KANBAN is to identify through a board the steps through which a task must pass until it is finished.
Roles are not defined in traditional Kanban, but in FLEXIN we will. The only role that we will define is that of the technical leader, who will perform fundamental tasks to optimize development and analysis times.
Documentación Flexin
How does it work?
The first step to follow is to create a digital dashboard. In this case, we recommend the use of JIRA, which is a tool that allows you to manage projects and create boards for them. Additionally, JIRA integrates seamlessly with our FLEXIN Teams platform.
The board that we are going to create to work with FLEXIN has 6 columns. If any team needs an additional column it can be added. These 6 columns will indicate the flow through which the tasks must pass in order for them to be completed. Below we detail what these columns will contain:
Documentación Flexin
Backlog:
In this column the tasks will be created based on the functionalities that the system needs. These tasks have to be divided into small functionalities, but it is important that each of them can fulfill one of the following concepts:
Add a functionality to the system.
Modify a system functionality.
Solve a system incident.
Documentación Flexin
To develop:
The task can go to this column once it has been estimated by the technical leader and the client has approved its completion.
It is very important in this column that the tasks are ordered by priority of completion. This means that the one at the top is the first to be done and the one at the bottom the last.
Documentación Flexin
In Progress:
This column doesn’t have much explanation – it basically shows the tasks that are in progress.
Documentación Flexin
Code review:
When a developer finishes programming their task, it goes to this column and that is where the technical leader will be in charge of doing the validations on the code carried out together with some manual tests to ensure that the functionality is correct .
Documentación Flexin
Customer approval:
It is very important that the client is the one who approves the task as completed, to make sure that the functionality is correct, but until then this column will have the tasks that the client has not yet approved.
Documentación Flexin
Completed:
Where are the completed tasks and approved by the client.
Documentación Flexin
Recommendations
Visual alerts can be created on digital dashboards: we will put an alert in the column “Lists to develop” that will be displayed when this column has fewer tasks than twice the number of people working. This will help the technical leader to see that he has to estimate more tasks so that they can be developed.
On the other hand, it is recommended that a person does not have more than 2 tasks “in progress”. We will also put an alert when the number of tasks exceeds double the number of developers. We also recommend that all participants and stakeholders in the software project have access to the dashboard visualization.
Estimating
As a technical leader, you have to take care of estimating and analyzing the tasks to be carried out, for that we will stop at the tasks created in the backlog column and we will estimate how we can provide new functionalities to the project, but also always prioritizing what the client needs most.
When we begin to estimate a task, the first thing to recognize are the acceptance criteria. These are the essential functional characteristics that must be performed to complete the task.
Once we have the acceptance criteria defined, we must estimate them. For this we will use the following table:
This table will serve to indicate the effort of the acceptance criteria based on SIZE (number of things that need to be done) and COMPLEXITY (the difficulty of those things).
For example: if we have to create a new table in the database, we assume that we have 1 SIZE (only one thing to do) and the difficulty will depend on how this new table affects the database: if it were simple we say that COMPLEXITY is 1 and the result of the effort would give us 1. Once we have estimated the acceptance criteria, the total effort of the task will be the sum of all the efforts.
In our FLEXIN Teams platform, the system allows, through artificial intelligence, to know how long it can take to do a task, taking as an example tasks previously performed with the same efforts in the acceptance criteria.
Calculated
This section is specific to FLEXIN, since normally, in agile methodologies, the real time that a task may take to complete is not usually calculated. This is a great advantage that can be used by any freelancer to calculate any budget or to large companies to evaluate their costs in advance. The way we calculate time is based on previous experiences from previous tasks.
This functionality is already integrated into our FLEXIN teams platform thanks to artificial intelligence, so it is highly recommended to use it. If this is not possible, what we do is the following: we look for previous experiences that have had estimates equal to the task we are estimating, but not based on the total effort, but comparing the estimates on each acceptance criterion (number of things + difficulty ). For example: if we have a task with an acceptance criterion of a COMPLEXITY of 2 and a SIZE of 3, we will not look for a task that has a total effort of 6, but we will look for a task that has an acceptance criterion with the same COMPLEXITY and SIZE than this one.
Once that task is found, we will see how long it took to complete and we will use it as an approximate completion time for the task we are estimating.
Meetings
Daily
It is a daily meeting of no more than 15 minutes in which all the team developers have to be and each of them has to answer three questions:
- What I did yesterday?
- What will i do today
- Do I have any impediment or difficulty?
Demo
All those interested in the project participate. Generally, this is where the functionalities developed in the last period are presented. The more people participate, the better it will be, as there will be more opinions and proposals for improvements. This meeting is for product deliveries. They can occur when a milestone determined by the client is reached or deliveries can be agreed every certain time.
Technical leader
In FLEXIN Kanban, the technical leader will perform the following tasks:
- Analyze the necessary functionalities for the application and pass them on to tasks on the board: It is recommended to do this by sections or by small parts of the application, since a descriptive analysis of each task must be carried out in a technical way. For example: if the task consists of creating a table in the database, indicate the name of the fields and their types. Thanks to the technical description, the developer will be more clear about what he has to do, leading to much less confusion.
- Create the acceptance criteria of the tasks: This is the most important part of the technical leader, since we not only have to create the acceptance criteria for the tasks, but also estimate them to be able to pass the task to the column of «Ready to develop».
- Lead daily meetings, if possible involve the client so that they have a daily vision on development.
- Develop together with the programmers if required.
- Review the task once it is completed by the developer: Verify that the acceptance criteria are met and that the functionality is as requested. If you have a QA team, try to get the new functionality as quickly as possible, regardless of whether it is in the same development environment.
- Deliver the new functionalities to the client: Always through versions so that the client knows what is being presented. If you have a DEVOPS team, the technical leader has to give you directions on how to deploy the application.
QA
If you have a quality team, it is best to create a column between code review and customer approval. It is important to have the QA team as fast and accessible as possible to new functionalities, so that when the client sees them they are already tested. It should also be noted that the QA team should be able to test functionality in the development environment and do regression testing in the pre-production environment.
DEVOPS
If you have a DEVOPS team, it is advisable to have two pre-production environments. A development environment, which should not have continuous integration so that each developer can upload what they need to test, and a pre-production environment that continuously uploads the latest version generated.
FLEXIN SCRUM
Description
FLEXIN Scrum is an optimization of the traditional Scrum, which has a radical change, removing the scrum master and giving a lot of responsibility to the technical leader to take charge of applying the work methodology and also to support the development team. That is why it will NOT be easy to find a professional with these well-developed disciplines. What is usually done is to prepare the technical member with the greatest capacity for analysis and technical skills and instruct him on the methodology, if he is not familiar with it.
In FLEXIN Scrum all Scrum meetings are respected, but modifying the participants and the ways of carrying them out.
How does it work?
In FLEXIN Scrum we have a backlog, which is where the tasks to be performed will be, a cycle where tasks will be placed to be performed and also a product that will be increased at the end of each iteration of the cycle. Each iteration is called a Sprint.
The technical leader will be present at all stages, help the product owner to create and estimate tasks, provide technical support to developers and can write code if required.
To begin the sprint, two previous meetings are held: one for refinement, which is where the tasks are analyzed and estimated, and another for planning, to find out which of the estimated tasks will be carried out in the sprint. Once the tasks are planned, the developers commit to completing them within the time of the sprint.
The sprint ends with a demonstration meeting of the completed tasks and after that, another retrospective meeting, to strengthen the team and evaluate performance improvements.
Recommendations
To keep track of the sprints, digital platforms such as JIRA are used, which we highly recommend since it has integration with our FLEXIN Teams platform, and thus use the pre-estimate functionality, where thanks to artificial intelligence, it provides details approximate hours of completion of the tasks, to be able to make them coincide with the hours of the team in the sprint.
If there is an architect on the team, they should be coordinated with the technical leader and participate in refinement meetings, but ideally the technical leader should have the ability to work on the application architecture.
Meetings
Refinements
The product owner and the technical leader will be present at this meeting. The purpose is to analyze and estimate the tasks that are ready to be performed. It is important to analyze a number of tasks greater than the team could do in a sprint in case the development goes very well.
The technical leader must create the acceptance criteria for the analyzed tasks and in turn must estimate them in effort for which he can use the FLEXIN Teams platform.
Planning
The Product Owner, the technical leader and all the team developers will be present at this meeting. The purpose is for the technical leader to present the analyzed tasks so that the developers can discuss the estimates and indicate the tasks to be performed in the sprint. It is important that developers commit to finishing the tasks of the sprint, as it is the key to this methodology.
Daily
It is a daily meeting of no more than 15 minutes in which all the team developers have to be and each of them has to answer three questions:
- What I did yesterday?
- What will i do today
- Do I have any impediment or difficulty?
Demo
All those interested in the project participate. Generally, this is where the functionalities developed in the last period are presented. The more people participate, the better it will be, as there will be more opinions and proposals for improvements. This meeting is for product deliveries. They can occur when a milestone determined by the client is reached or deliveries can be agreed every certain time.
Retrospective
This meeting takes place after the sprint demonstration. Only the Product Owner, the technical leader and the members of the development team participate. It is used to give a Feedback on the sprint, seeing what the good aspects have been and the aspects in which it should be improved. Technical or human improvements could also be evaluated to improve the team’s attunement.
Technical leader
The technical leader is the greatest advantage of this methodology with respect to traditional SCRUM, since he must program together with the developers if necessary. He must also have a good knowledge of the technologies used to support developers. He is responsible for performing the analysis and estimations in the refinement. He must also teach the methodology to the team members.
QA
The quality team in FLEXIN Scrum must participate once the Sprint is finished, verify the functionalities delivered and in case any are not correct, generate a bug in the new Sprint.
Here the ideal is that the QA team has its own QA environment to which finished versions can be uploaded and thus carry out the tests they require without interrupting anyone.
DEVOPS
The DEVOPS team should ensure the following:
- Have a development environment in which developers can upload what they need, without continuous integration.
- Have a QA environment in which the test team can upload the versions created, without continuous integration.
In addition, you must coordinate with the technical leader how to upload to pre-production and production.
Thank you!
Thanks to the LMV Software company for the opportunity to make this methodology grow and apply it in all the projects it carries out.
Thanks to all the people who have chosen this innovative methodology to carry out their projects and facilitate their day-to-day work.
Por leer esta documentación y aprender sobre Flexin.