As the title states it, I would like to get some suggestions about putting knowledge into action.
We have many additional requirements that concern: coding practices feature development (all of them or only a subset), process, etc. The problem is that we have problems with introducing those practices into new projects and I want to help developers and reviewers to remember about it, but I don't want them to have everything just in theirs heads, but rather in some kind of a database that they can use easily.
The list of practices is already defined in Excel. I would like all team members to apply these practices in their work but I don't know how make those information easy to find. When developer starts working on a feature he should be able to easily find all practices that he should use in these feature.
To be clear with what I mean, I'm showing some examples of information we have to apply:
(new design request) every feature must output logs (and it must not contain any sensitive data);
(new design request) every feature has to have a flag in the configuration that allows to disable it;
(good practice) always update docs when feature is ready;
(retrospective feedback) QA must test only on release package (not in debug mode);
(retrospective feedback) make stress tests for every new feature implemented;
(lead's task) write release notes after each sprint that includes tasks completed and open bugs;
(design usage) every event from "ABCStoreManager" must be disconnected after being invoked;
(design usage) try-catch every event.Invoke() call;
I thought for a while about a wiki, but it's no good, because it doesn't support tagging/categories or querying and I'm afraid that everybody would ignore it (people must know exactly where to look).
My question can be summed up as how can I improve communication to our developers about the required development methodologies and practices listed above in an easy way?
Remarks:
this question is not about security issues or code smells per-se;
I'm not looking for any heavy process (like RUP) or any process for that matter, which forces you to go step by step. Preferably I am looking for an agile approach
Daniel Figueroa has suggested adding additional requirements to the "definition of done". And it seems like a good way. But the problem is that some features have, for instance, 20 additional requirements ("all GUI features"), some 10 ("all server requests"), etc. I would like to have this stuff aggregated in a one place and just use links ("see: 'GUI feature' ");
ABCStoreManager
is a code smell. If usage of a class requires the dev to be aware of undiscoverable setup/teardown steps then it's probably not well designed. The class should be responsible for managing its own state -- it is not a concern of its consumers. 3) Doesn't Scrum/agile advocate self-documenting code?