R
In general software development in companies,Rules and TermsWe use a variety of tools to manage development history, hard progress, etc. appropriately.In large-scale software development, tens of people (and hundreds of people depending on the case) will be involved, such as customers, sales, managers, developers, testers, etc., so if you do not share or manage the latest information above, you will be able to quickly break down what you are doing.There are companies that use Twitter and LINE, but there are few companies that manage development rules and concerns.As you can see, theアルバム flows quickly, so there is a limit to the use of albums and notes that are too weak to look back on past conversations.The focus of the question is to share rules on group functions and whiteboards.General software developmentHere is an example of how to use tools to share and check rules and development information.General development rules management
Wiki (Gitlab Wiki, Redmine, PukiWiki, etc.)Online File Sharing (Google Spreadsheet, Dropbox, etc.)Let’s commit if you’re developing, and write it to Issue.In the development site, there are many examples of using Wiki that is easy to hierarchy and search for documents.There are some companies that collect and manage rules in Excel and Word to publish as an explanation to partner companies. (It is not recommended because the search and description cost are high for private individuals)Code Management
Monitoring of coding rules by static analysis (ESLint, StyleCop, etc.)Format Tool (with IDE, go fmt, etc.)Manage how to write code, such as "Tab 4 spaces", "The variable name begins with lowercase letters, and the method name begins with uppercase letters".In the main programming language, you will automatically find a tool to find rules violations by parsing the parser generator like Yacc.These tools are recommended for use.Follow without changing tool standard settingsCommentIf you customize and stick to your own rules, the developers tend to feel frustration, shape rules, and become obliged.Contact Us
GitLab, Microsoft TeamsDevelopment Schedule Management (Microsoft Teams, Redmine, etc.)This is a tool to manage the progress of response and development by ticketing bugs and additional functions such as "Enter this condition and press the button" "Create data transmission function by 11 days" etc.Who is responsible for any function development and knows how well the development is, and it can be used for code reviewing whether the points added per ticket are followed by rules.In the development of the current company, I think that it is almost a necessary tool (There is also a development method called "Ticket Driving Development"), so it is recommended to use GitLab Issue without knowing how to use it well first.Complexity measurement of source code
Code metric measurement (plato, Visual Studio standard function, etc.)We will analyze and visualize the "Stainability of source code" such as "Most content is copied to 10 source files with the same method", "There are 50 nests of if statements".You can pick up the visualized contents and follow the newcomer who is not good at coding, such as using the common method hoge() when connecting to the database. Integration
CI/CD ToolsIt is a powerful tool that automates commits and timers to triggers by doing it manually, such as "I want to analyze statically every time I commit," "I changed the common function by Mr. A," and "I got compile error on the screen created by Mr. B".It is not directly related to the rule, but it will report with the chat tool if there is an abnormality such as visualization of the rule, unit test, and cord metric measurement automatically.This operation is importantIf the CI/CD tool reports warnings or errors, it will not be ignoredCommentIf a warning is normalized, no one will respond if a serious error occurs.Contact Us
Chat (Slack, etc.)This is a tool that communicates with a large number of people, such as "I don't know this, but how do I tell someone?" "I design the presentation, how do I make a layout like a rough image attached?"It is difficult to use with an Issue, but it is useful for sharing incidents/ideas and small consultations that are not clear and independent.You can use it in development, such as looking back and making rules for ideas that have emerged in groups.Slack is good at searching and grouping, so you can monitor the program using bot, so there are many companies that are employed in the development site.Agile Development
Canban method (white board etc.)Attach the sticky notes of "ToDo", "Doing" and "Done" to the whiteboard to visualize the work of residue, work while taking, and the results of this week.I think whiteboard is a good tool to write rules at the beginning of development.It is difficult to use if there is a development member in a distance with a remote work, and there is a need to summarize the decided contents such as wiki, but there is a low cost to start writing or browse anyway, and the space is physically。 and redundant, so it is important if you do not.The word “Whiteboard” came out, so we added the keyword “Agile Development” which is famous as a software development method.In the development of partial activity, I think that the distance between individuals is short and perhaps the main work in the department room, so the rule check is based on the operation of the CI tool. The developer uses a hard ticket management and a canban to set the next goal of the week, and then turn the sprint after a 5-minute stand-up meeting at the beginning of the club activity.Generally considered idealI think it is better to start aン using the development method.One sentence of this page is only horizontal character, but I do not explain because it is too much to break down if you spread the story until Agile development.If you are interested, please make sure to check your keyword.Finally, if you decide to implement the tool by developing rules,Why use the tool?to anyone at any time.Even if the person who introduced the product is a good act for improving product quality and development speed, it may be just forced if the person who uses it does not understand the benefits.There is also a secondary effect that reduces the amount by limiting to rules and tools that can be explained clearly.The tool that seems to be interesting is first a small member, and it may be easier for everyone to use after preparing an environment that can be used.If no one uses a tool, it becomes a technical debt, but if you use it actively, you can get the maximum effect.Please complete the software. (The most important thing in software development is to protect the rules)CompleteI think)