What is Readme Driven Development or RDD ?
The issue is when you want to be a developer, it’s important to learn good practice at the beginning. Since documentation is very important for you and your team to understand what you did, it’s necessary to have a one. Rushing the readme at the end due to lack of time is not a good idea.
The goal with this type of driven development is to write the readme before writing code. For example, before writing a new endpoint for your API, the endpoint url, input and output.
There are several benefits by using RDD and can lead to a great team efficiency improvement.
Have a documentation
Everyone knows that writing documentation can be boring. RDD is great because it force you to write the documentation before coding. Moreover if it’s well made, it will be clearer in your mind on how to do stuff. After coding, you might do some quick change but it won’t be so hard as if you had to write it all down at the end.
Understable code for the community
We are working in an open source environment everyone can share code with each other. The issue is that most of github projects don’t have readme. When you arrive on such projects, it doesn’t not encourage you to know more about it. Even if this code is the one you need to solve your problem, you might not willing to spend a lot of time trying to understand. With RDD documentation is made first and everyone benefits of its information.
Team efficiency is a key aspect in every project. With RDD, you will be able to have a common vision on what to do and how to do it. It will be easier for everyone to work since they knows what to expect from your code. You don’t have to spend time explaining to your colleges what you do and how they can use your code.
Mocking is a very powerful task to code faster. For example your teammate can implement a function that you are coding by knowing what are the inputs and outputs. It will be also easier to test your application since you’ve already mock some functions. So in the same time as RDD, you can also do Test Driven Development (TDD).
Since you listed some aspect of your project with the RDD, it will be easier to dispatch work inside you team. You can now give task to your teammates and they just have to follow the guidelines you defined together. Furthermore, you know that the integration will be quicker since you know what to expect from everyone.