# Good practices

| Rule                                                     | Rule description                                                                                                                                                                                                                                                                                          |
| -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Language                                                 | <p>If there are no top-down decisions regarding the names of tasks, subprocesses, events, and gateways, we use Polish.<br>Name variables according to the convention adopted in the given application (in Polish or English).</p>                                                                         |
| Capitalization                                           | <p>Start names with a capital letter, and write subsequent words in lowercase (e.g., <em>"Document checking"</em>).<br>Exceptions include proper names and acronyms. Inconsistency (e.g., using lowercase once and uppercase another time) will make it harder to quickly recognize process elements.</p> |
| Avoiding technical terms                                 | <p>Instead of using classes or methods from the code, use business-friendly language.<br>Unclear or overly technical names can be misleading, e.g., instead of <em>"Verify documents"</em> using <em>"ExecuteDocumentCheck"</em> makes the process harder to understand for non-technical people.</p>     |
| Consistency of verbs in activity names                   | Use a consistent verb form in activity names in the process. For example, choose between infinitives ("Approve documents") and personal forms ("Approving documents") and use them consistently throughout the model.                                                                                     |
| Precision and unambiguity                                | Make sure the name accurately reflects the given part of the process in a business context. Avoid ambiguous names that may be interpreted differently by different people. For example, instead of "*Handling the request*" it is better to use "*Recording a transaction complaint*".                    |
| <ul><li>Description of gateway conditions</li></ul>      | Use unambiguous gateway descriptions, e.g. *"Yes"* / *"No"*. Avoid long, unnecessary descriptions and the use of technical terms such as *"True"* / *"False"*.                                                                                                                                            |
| <ul><li>Description of the start and end event</li></ul> | If possible, use more precise names for the start and end elements of the process than *"Start"* and *"End"* (they do not indicate the circumstances of the process starting or ending).                                                                                                                  |
| Version numbering of process steps                       | If the process contains steps with similar names, add version or step numbering, e.g. "*Document verification 1*" and "*Document verification 2*", to avoid mistakes. However, try to avoid such names whenever possible (see rule above).                                                                |
| Avoiding abbreviations                                   | Avoid abbreviations, e.g. instead of using the abbreviation "*Cont. contract*", it is better to write the full form "*Contract approval*".                                                                                                                                                                |
| Status names                                             | If possible, use a single standard for status names (businessStatus) that takes the business context into account.                                                                                                                                                                                        |

More information: <https://blog.consdata.tech/2025/01/27/wstep-do-tworzenia-czytelnych-modeli-bpmn.html>
