A few months ago, I completed one of the stages of my professional career as a multi-armed Shiva in a startup on developing a non-destructive testing laboratory management system. I will tell you how I was able to document a part of the development related to connecting and generating documents in sufficient volume for the further quiet use of the created system for two years.
I will try to give the reader useful material as much as possible, and at the same time observe the interests of the project and not divulge the nuances of implementation and internal use.
Given:
- A cool development team and of course a project manager. At the time of the start of the project, I worked as an art director in one of the studios of Tomsk, then I ended up on the startup team
- startup with reinforced concrete dates for a specific event - acceleration start in the FRII
- initial set of templates from 15+ documents of various sizes from 1 page to 100+ pages in one document with different connection conditions
- third-party project that should be integrated with a future solution
- designer (analyst, designer, designer, art director, product owner, product manager all rolled into one)
A task:
- launch a project on time
- Do not die team six months later in chaos when connecting new functionality and even more documentation in the system (in case of successful completion of the acceleration)
- with the minimum number of letters and expended efforts to achieve suitable documentation
- alienation of documentation to any team / any employee not in context
I must say right away that the following document templates were made without any methodology, I was guided solely by the specifics of the project, common sense and a terrible time limit.
Analysis and preparation
I hope that you begin any non-trivial task with the analysis of the material, in my case the material was document templates and an existing project with which integration was needed. But then we are only talking about documents. I needed to determine the frequency of using the same type of data within the same document and between documents. This was necessary to understand whether a system is needed right now or you can quickly do it on the knee first, and then deal with the result. At that time, it was decided that the system is needed, since almost all data, in one volume or another, was repeated inside one document and in the entire package of documents - and this is a sure sign of confusion already on the second or third document when connecting.
The next step is to understand the cleanliness of the markup of documents. Will explain. The fact is that I received already filled out document templates from the methodologist - who, when and how did these documents I did not know, even if I knew this would have given little. The .docx document inside is something like xml for text and some elements may not be visible visually in the open document, but be present in the markup of the document. It is not known how the document generator and various software for viewing the document will react to these markup elements. The main bet was on Microsoft Word, but there are OpenOffice, LibreOffice and all of them can give different results. Therefore, all the templates first went through the style cleaning process - a complete reset of any design and re-design with document styles, somewhere with adjusting the structure of the document. And even after this procedure, we collected problems in the contents of the documents after generation. In the future, I came to the conclusion that if the document is small, it is better to re-sort it from scratch, and not take the template provided by the methodologist into work, this saves time on documents up to 5 pages. Nobody wants to then look for the reason why something went, the process of debugging these cases is extremely tedious for the team. At the same stage, if you have a package of documents, you come to a uniform visual language.
And since we performed a rite of document cleansing, the easter egg in meta-information suggested itself, because people like to share good documents
After all the work related to the preparation of documents, I proceeded to marking up documents for automatic generation.
Markup of documents
At this stage, ask the developers for the variable format that supports the document generator selected by your team so that you do not have to redo it later. I had to redo it, but this was due to replacing the generator. The new generator could not work with the variables in the previous format, but the capabilities of the new generator turned out to be more important for us and we decided to replace it.
Check the sufficiency of information in the system, determine how much data is not enough for the document. When is this data supposed to appear on the system? If there is not enough data for the self-sufficiency of the document, it is better to postpone it. What is document self-sufficiency? In my case, there was one document that we completed in 3 stages, but it was self-sufficient immediately for one specific scenario, but did not cover the rest of the scenarios, so we decided to roll out the document for sale leaving empty cells for the user to fill out for uncovered scripts, and subsequently finished off the document with the appearance of the necessary functionality.
Documentation of variables and interface
At the beginning of the note, I wrote that we were strictly limited to a specific event. On top of that, I already had a vacation planned. When I was unavailable, but I urgently needed to add a system variable (not available in the end user interface), the developers added the line with the variable themselves, and then I added the missing conditions. In this regard, the specification of variables does not pretend to be correct and ideal, but it is quite a working document, which subsequently expanded and evolved. The main tab in the document did not structurally change from the start and at the time of my departure of the project.
Template β
Specifications for these fields β, which you can take and use in your work. In the document, I left some of the data for an example. This template may be suitable for interface documentation to control development quality. For example, a product owner knows what minimum result he will get, a developer clearly understands what minimum needs to be done from the task description + specification of these fields, and if something is missing he will tell about this, the testing engineer clearly sees obvious cases. In the end, everything is in the black.
At first, the document will take a significant number of hours, but then it will save you a lot of time, and updating will occasionally take literally minutes.
Content:
- The page is a guide to a person outside the context of the project, where to look. Useful for a new member in a team or outsourcing a project.
- Field name
- Field type
- Mandatory field in projects (I remind you, we had a database of another project) - a marker for synchronizing the requirement of binding between the document and the interface. If the information in the document is binding and the system cannot receive it in another way, it will be necessary to make this field mandatory in the interface
- Field mask - in the normative documentation the format for recording information is clearly defined.
- Default value
- The maximum number of characters in the field
- Field scalability (depends on resolution) - description of the behavior of an interface element depending on resolution
- Data requirement - what interaction is allowed with the interface element, and what may come in
- Successful Sample
- Placeholder - tooltip for the user inside the interface element
- Customization of the field - non-standard interface elements or finished tasks
- Additional information next to the field - when the placeholder cannot be dispensed with due to the amount of text, then we use a tooltip or handle
- Validation type
- Validation message - system conditions and response
- Variable in document templates - what will be inserted into the document template
- Link to the page - did not use as a result
- Location of the field in the interface - did not use as a result
Document Connection Documentation
To receive the document by the end user, it is not enough to edit and mark it up; the document still needs to be connected correctly. It is especially important if you have the same template, depending on the conditions, changes its content. For this, I used a separate document.
Template "
Document Connection ", I hope that it is useful to someone.
Content:
- Status - indicates the current state of the document in the system. We connected one document in 3 stages, the status of the document was βFinalizeβ
- Document - the name of the document within the team, the knowledge base and within our documentation and task setting system
- Type of
- The format of the document is when the same document can be in different templates depending on the regulatory and technical documentation to which this document corresponds
- Formation - a document can be just a template into which variables are simply substituted or from a template of 3 pages you can get 100+ page documents - dynamic documents
- Availability in the package is a feature of the system, you can get a package of documents or download documents separately
- Condition of presence - the presence of a specific document in the package
- The connection feature is that part of the document that is not in the template and is regulated by the code.
- Link to the file to connect
- Download separately
- The name of the file to download - a document in the system can be called whatever you like, but the end user must see a specific name when downloading
Total
As a result, I filled in 362 lines in both documents. Impressive volume? But in reality, this is 30+ document templates and a total of 40-60 hours of work of one person in two years (1-1.5 weeks) is spent, excluding the editing of the templates themselves and the wording of the connection tasks.
The project successfully passed acceleration in the IIDF and came to the form of its own development team. Thanks to the existing documentation, the new team members did not have to delve into what was done to them regarding the generation of documents. All team members had access to the current status of connected documents at any time.
The main stages in the documentation of the document generation process:
- Analysis of the content of documents
- Document hygiene
- Fix variables in parallel with document markup
- Fix the nuances of connecting document templates.
Thanks for getting to the end.