What should we include on internal Company Docs.
-
Info about the Company
- Who we are
- People (with their knowledge)
- Who to ask to do a task
- How to ask for a paid tool
- How to ask for help
- New member onboarding
- Our Projects list (eg sheet)
- Internal tools we use and links (communication, tasks, PM, file sharing, VCS, emails etc)
-
General:
- How to use the PM tool
- How to document projects
- What kind of maintenance are we providing
- D.O. profile
- Contributing to Drupal (and other Open Source projects)
- Adopt Drupal projects
- Training of new members
- General best practices (Do and Don't list)
-
Local Development setup
- IDEs setup and extensions
- Browsers and extensions
- Docker based tools (ddev etc)
- Other tools used (eg rsync, ssh)
- Snippet management for the whole company (eg using an online tool)
-
VCS
- Where are we hosting the VCS
- Git workflow
- PRs
- Git branches
- Code reviews
- Git commit messages
- gitignore
- How to create releases
-
CI/CD
- Tools we use and configuration files
- Deployments
- Pipelines
-
Devops
- Setup server (PHP + extensions, MySQL, git, composer, drush launcher, nodejs, ansible etc)
- Backups on server
- SMTP setup
- Cron jobs
- SSL
- How to ssh/sftp
- How to update a Production site
- Environments per Project
- DNS
- Private keys
- Logging tools and setup
- Using Docker
-
Testing
- How do we test
- What are we testing
- Strech tests
- Testing tools (online) we use
-
Drupal* related
- Drupal modules we prefer
- Drupal modules we avoid
- Drupal structure
- Custom modules
- Setup a new Drupal project locally
- Customize composer.json and composer scaffolding
- yml files we use and/or override
- txt or other files we remove from repositories
- drush site aliases
- settings.php and dotenv
- How to override a Drupal distro (eg social)
- Public and Private files paths
- How to get a Database backup
- How to get Public files
- Info about Security Updates (sheet, log file etc)
- Production launch checklist
- Project handover (drop off) checklist
- New Project estimation checklist
- Existing Project estimation checklist
- Project security audit checklist
- Drupal development best practices (Do and Don't list)
-
Theming (Drupal)
- How to theme
- Modules we use for theming
- Base themes we prefer
- Themes we avoid
- Theming philosophy
- Compiling assets
- Performance needs and testing
- Browsers we support
- A11y testing
- Using paid themes
- Twig basics and functions
-
Marketing
- How to create Presentations for Projects (templates, branding)
- How to use our brand
- Email signatures
- Publish Projects on company profile
- Publish Projects on Drupal.org
- Share Projects on social networks
-
Other
- Important tools (drush, ddev, lando, robo.li, gitpod.io etc)
- Tools we use in general for Dev tasks
-
Examples
- Links to code examples grouped by task type (eg Drupal queues, cron tasks)
- Links to reusable scripts (eg fix-drupal-permissions.sh)
-
For Drupal see also a more detailed list of lessons on https://github.com/theodorosploumis/drupal-lessons.