Development of the application take place based on the tasks created in JIRA at an early stage of the project planning process. At the planning stage special attention is given to the logical sequence of module implementation. This helps the developers to connect with his current task directly. Even though the implementation sequence has decided early on, developer has the option to change that sequence based on his prefered way of implementation of the functionality or feature.
We have all our development repos either on GitHub or BitBucket. Developers suppose to checking code after completing each task in JIRA and definitely at the end of the working day. Most repositories are connected with pipelines and automatically get tested (Unit Tests) and deployed to relevant location for further testing and verification.
We encourage writing required amount of Unit Tests for identified areas of the application. Writing proper Unit Tests require additional time and effort and we seek client’s opinion when it comes to decide how detailed the unit tests should be.
We take code quality very seriously and we conduct code reviews at different levels. Developer who worked on the code suppose to clean up the code and make sure there are no unused or commented code block in the codebase. Further developer suppose to look for possible optimizations to the code. Once the code pass the self verification, then it will be usually go through a peer review process. Either one or two engineers involved with this process and special attention is paid on approach on problem solving, performance and efficiency of the code. Finally there will be random audits conducted by senior engineers or tech leads to make sure the best practices are followed during development phase. To facilitate this process, we use Gitflow for branching process.