Sunday, December 2, 2018

Engineering Best practices to be followed

1. All teams should use confluence:-
i.e. all team documents, on call process, how to, team details etc should be publish to the confluence itself. Documents should not be shared in the email of texts.

2. Publish Design documents for future release:-
Design documents should have following structure
Status, authors, reviewers, overview, goals both business level and tech level goals, Design, Architecture, Tech stack, changes in existing systems, APIS, public apis, non public apis, security, system infra details, testing , monitoring and alerting, disaster recover, failover, production readiness checklist, faqs.

3. Code quality:-
a. Supported ides and minimum version.
b. Use of bitbucket/gitlab and code style guildlines

4. Code Documentations and Guidelines:-
a. Code commit should have JIRA ID with each and every commit
b. Release branches should be properly defined.

5. Code Review:-
a. publish code review checklist
b. Tools to track code review
c. Cross teams review for critical features.

6. Sprint Process:-
a. Product Backlog
b. Sprint workflow
c. Agile QA guidelines

7. QA Process
a. Dev should define the unit test cases and minimum acceptance criteria
b. Dev/QA should do end-to-end testing and pms should review the testing report.

8. Security Testing:-
a. publish application security checklist.
b. Infra security checklist.

9. Build Deploy
a. Read only access on servers for dev with access to restart service with checks
b. Jenkins for the deployment with proper build, deploy and rollback integrated in jenkins.

10. Prod Infra Management:-
a. Logging
b. Configuration management and reproducability
c. Tracebility
d. Alerting
e. Monitoring
f. On call support
g. Publish RCA
h. DR setups

11. Hiring
Publish engineering roles and responsibilities.

12. Interviewing:-
Publish competency model and interview sequencing

13. Training:-
Publish training locations and documents.


Post a Comment