📜 ⬆️ ⬇️

CRUD matrix technology. Practical experience

An example of duplication of functionality
CRUD matrix technology is a good tool for every member of the Agile team throughout the product life cycle. CRUD-matrix allows you to establish an adequate dialogue with the client and identify duplication of functionality, as well as eliminate the inconsistency of the model. As for the time evaluation, in this moment the CRUD-matrix is ​​significantly inferior to such a tool as “planning poker”, which allows for an adequate assessment based on objective reasons.


A bit of theory: a description of the methodology


IIBA in the competence of business analyst in the field of Agile (hereinafter referred to as the Agile-analyst) relates the following technologies:
- Definition of criteria for evaluation and acceptance;
- Brainstorm;
- Various evaluation methods (Delphi method, parametric method, analogy method, three-point method, etc.);
- Prototyping;
- Development of scenarios and description of precedents;
- Modeling areas for analysis or delivery of solutions;
- User stories.

IIBA does not attribute the technology of data modeling to the competence of Agile-analyst, but refers it to the competence of the role of business architect. At the same time, the competence of a business architect, as well as Agile analytics, includes technology for modeling areas for analyzing or delivering solutions.
As a result of the fact that data architects are mainly engaged in a business architect, the Agile analyst does not see the actual relationship between processes and data in the system, which can lead to the creation of conflicting entities or duplication of functionality in the system.
To solve this problem, Agile-analyst is developing a matrix called CRUD.
')

Practical part: development of CRUD-matrix


Developing a CRUD matrix helps the Agile team concentrate on significant precedents describing the business process. The CRUD matrix is ​​formed in the form of a table in which all classes from the class diagram are listed in the upper part, and a list of precedents is displayed in the left part. The task of Agile-analyst is to fill the intersections between precedents and classes with the following combinations of access to class instances: create ( C reate), read ( R ead), update ( U pdate) or delete ( D elete).
Thus, all use cases that create, read, update, or delete one or more instances of a class are described.
As an example, I will cite the experience of building a CRUD-matrix in 2007-2008. when planning the development of an automated library information system for a science and technology library (hereinafter ABIS NTB).


CRUD matrix analysis is performed in seven steps:
1. Checking the completeness of the model
2. Determination of dependencies
3. Definition of a package of standard works for development
4. Estimation of time required for development
5. Checking the model for consistency
6. Determination of further work and functional additions.
7. Prioritization for development and supply

Step 1. Checking the completeness of the model

On the basis of the CRUD-matrix, the completeness of building a model is checked for the purpose of using classes or precedents in the system being developed.
For example, the creation or deletion of the “Book form” class is not described in the framework of the listed precedents. This fact can of course say that the “Book Form” is created and deleted outside the developed system, or that the Agile analyst did not describe the precedent “registration of the book” or “write-off of the book”, and for this you need to enter another class “ inventory book ”.

Step 2. Determination of dependencies

When planning the process of developing a system, a CRUD matrix helps determine the list of classes that are developed primarily to cover the maximum number of use cases. For example, for the development of ABIS NTB, the “registration of the reader” precedent will be implemented first, because the reader class according to the CRUD matrix is ​​used in 8 precedents, unlike the “reservation” class. Thus, the necessary and actual data is determined.

Step 3. Definition of a package of standard works for development

CRUD-matrix helps to determine the typical implementation and to identify duplication of functionality in the system. For example, the class “book form” is realized according to the type of the class “librarian” and, accordingly, less time is required for the implementation of the class “book form”. Thus, the system development time is reduced.

Step 4. Estimate the time required to develop

A CRUD matrix provides the Agile team with a simple mechanism for estimating the time needed to develop and test a specific piece of functionality.
In a first approximation, each access combination is evaluated, and then each precedent is evaluated. For example, creating a new instance of a class is required in 4 use cases, reading information about a class instance in 7 cases, in 16 cases you need to update class instance information, and in 6 cases you need to delete an instance of a class. Using the planned time to develop each access combination, a table is created for the complexity of the implementation of each class, as well as the system as a whole:

If necessary, the analyst can rank not only the complexity of the implementation of each class, but also of each precedent.
As for 53 days, this period is reduced due to standard works, namely the implementation of the classes “librarian” and “book form”. To provide a more realistic assessment for the future, you can use the actual values ​​collected on the basis of a statistical analysis of the implementation processes of this functionality in previous projects. In any case, the last word should be behind the Agile-team, because no statistics will help in the development of the system, and sometimes even prevents the Agile-team from correctly assessing its capabilities.

Step 5. Checking the model for consistency

In the process of iterative development of the CRUD-matrix, consistency is ensured between precedents and the models that are the basis for the development and delivery of solutions. For example, within the framework of the model there may be classes that are not used in any precedent, which can be a decrease in system performance, and therefore this can directly affect customer satisfaction. Thus, the solution, in the development of which the CRUD-matrix technology was used, will be as consistent as possible, which is a good basis for the development.

Step 6. Definition of further work and functional additions

The CRUD matrix describes all system response actions for each precedent, which allows the developer to see the operation of the entire system as a whole. Based on the CRUD matrix, the Agile analyst, if necessary, can refine the model and build sequence diagrams, communication diagrams, interaction overview diagrams, or synchronization diagrams. A CRUD matrix can also be used by a designer when designing interfaces or a solution architect for developing a product specification. Thus, the CRUD matrix serves as a good tool for each member of the Agile team throughout the product life cycle.

Step 7. Prioritize development and delivery

The CRUD matrix allows customers to adequately assess the priorities in the implementation of any functionality, and will not allow to move its implementation to the next iteration. For example, the precedents of “issuing a reader's ticket” and “re-registering a reader” cannot be fully delivered until classes are developed: reader, reader's card and librarian.

Total


CRUD matrix technology is a good tool for every member of the Agile team throughout the product life cycle. CRUD-matrix allows you to establish an adequate dialogue with the client (customer) and identify duplication of functionality, as well as eliminate the inconsistency of the model. As for the time evaluation, in this moment the CRUD-matrix is ​​significantly inferior to such a tool as “planning poker”, which allows for an adequate assessment based on objective reasons. As for combinations of access to class instances, it is not necessary to use a CRUD combination here, other combinations are possible, for example, REST, RESTful, GET-PUT-POST-DELETE, etc.

PS: Sources for inspiration:
1. James Cadle, Debra Paul and Paul Turner Business Analysis Techniques: 72 Essential Tools for Success, 2010
2. International Institute of Business Analysis (2009) Business Analysis Body of Knowledge (Version 2.0). International Institute of Business Analysis, Toronto.
3. International Institute of Business Analysis (2011) Business Analysis Competency Model (Version 3.0). International Institute of Business Analysis, Toronto.
4. unrealitymag.com/wp-content/uploads/2009/03/matrix.jpg

Source: https://habr.com/ru/post/172489/


All Articles