Tech Lead Diaries: Page 2: Setting up the Stage for Development kick start
In Tech Lead Dairies, I am going to share my daily learnings from the experience of leading a development team.
In this post, I will talk about the tools, setup and practises to consider before we start coding for a safe journey ahead.
Set clear Expectations for the team
Tech lead should discuss Dev practices with the team and set the clear expectations. These practices should be agreed and owned collectively by the team. Some of the key practices are listed below.
Test Driven Development.
Clean Code
Tech-debt Management.
Production Grade Code.
Maintaining Build Sanity.
Active Tech huddles.
Code Reviews.
Test Pyramid.
Kickstart Checklist
Tools ( IDE with all plugins)
Code formatting tools
Linters
Static code analysis Tools ( for identifying security bugs and code smells).
Infra: Environments setup with Continuous Integration and Delivery ( Local ,Dev, QA, UAT…to Prod), Databases, Configurations etc, Code repository, Artefact Repositories and etc
Build Tools
Pipelines : ( End to end Automation tests,Performance and Security pipelines included apart from deployment pipelines)
Secrets management tools
Communication channels
Testing devices
Supported device specifications.
Feature Toggles for Continuous Delivery
Monitoring Setup
Logging and exporting logs setup , like ELK stack
Tracing , ( ie. Jaeger)
Above is the checklist to be considered before we start coding, we spend time in Iteration 0 or the first week for the setup.
It is recommended to have these in-place as early as possible.
In case of any challenges like infrastructure un-availability,Licences and etc.Bring them to notice of right people, to solve these problems as early as possible to avoid the cost of change at a later point in time.
Having performance and security analysis tools from the beginning of the project helps in maintaining sanity and avoids any tech-debt.
The absence of Test devices will increase QA backlog and delay the feedback. Bugs will be easily hidden.
Failure to setup higher environments will lead to consistency problems like configuration mismatch against lower environments and missing dependencies. It also narrows developer view of thinking only till the environments available. ( ie. Only Dev and QA are available but higher environments such as UAT, Pre-prod and Prod environment are not setup )
To avoid the above-mentioned pitfalls, it is essential to set up the stage correctly before we kickstart the development