 I'm going to introduce five key practices that I believe are critical for IDAD which is independent development and deployment. So first one is automated testing like that's pretty straightforward everyone understands if I want to deploy very frequently I need to have automated tests. Automated CICD pipelines again no problem there that's well understood. Feature toggles is an idea that's not very well understood but again I think most people know what it means and why that is important if you want to independently deploy things you need the ability to be able to manage what is visible and what is not visible of course the ideal thing is to design everything so it's backward compatible and you ever don't need any toggles but that's not always the case and so when it's not possible you look for a toggling solution and these days there are fantastic platforms that are available for you to be able to do this trunk based development again feature toggles trunk based development generally go very much hand in hand again the idea here is that you instead of using something like Gitflow or whatever you essentially work off one branch all developers work off one branch some organizations like the process of a pull request and they do it through PR but you bring it back into the main and that's the branch that you're always you know taking forward right and so trunk based development again becomes very important the fifth which I believe is the most important but the most neglected one which is contract driven development and what does it even mean because I don't think there's enough talked about this particular topic I would say these five are absolutely necessary but more practices can help you like story slicing BDD, TDD, config S code, infra S code some of these practices are absolutely helpful but not like the bare minimum you need