What are some good Engineering Practices my team can adopt?
In Scrum, each increment developed by your team should be shippable by the end of the sprint. This means that new features can be deployed at any time.
What is the definition of ‘Done’?
It is up to each team to define what needs to be completed before an increment is shipped. Your team may use these requirements to develop a definition of ‘Done’. This ensures that everyone has the same understanding of what ‘Done’ is.
For example, your team may define ‘Done’ as code that has passed all automated tests, is well-integrated, and fulfilled all user story requirements. This often means getting the business unit or UX designers involved before a feature is marked as ‘Done’.
What is Test-Driven Development?
Test-Driven Development (TDD) involves quick cycles of testing, coding and refactoring:
Writing an automated test case for a new function or an improvement
Producing the least amount of code to pass the test
Refactoring the code until it is as simple and clean as possible
Why is it important to me?
TDD helps to ensure the quality of your code because it naturally verifies that the code written behaves as intended.
If something goes wrong, there are only a few lines of code to check and fix. More importantly, all the tests written by the team are run with every build for assurance that the codebase continues to work as intended.
In the event when a test fails, a feedback mechanism is needed to alert the development team. For instance, teams can use a common monitor visible to all members displaying the latest status of builds. Chatbots are useful here as well for push notifications.