We should design and build systems in a way that ensures any change can be easily reverted even if the people who have worked on it are not available at that time. Imagine for example that a change starts causing memory issues on a Saturday evening, surely you want to be confident that the support teams can revert to a previous version without downtime and without involving multiple teams. The below changes are easy to implement and will give you peace of mind.
As applications grow it is normal to break them down into smaller pieces that are easy to combine and maintain. The challenge comes in the integration between these pieces as an small change in one of them may break the communication with the others, and we may not notice it until we get emails from users. We are going to see how to detect this automatically using contract testing.
Code quality is usually underrated in some organisations because it is an aspect that customers don’t see and don’t pay for. However it is quite important in both the short and long term. I will expose some of the reasons.
QAs are very important but some companies are giving their responsibilities to developers instead of hiring them. I will share what I have learnt working with different teams.
TestNG is a tool similar to JUnit for testing applications that provides extra functionalities. Let’s see some recommendations to use it better: