A junior asked me about what I have gained after about a decade of experience in the software development. I tried to sound cool and talked about methodologies, philosophies, tools, and what not. A perfect recipe for a boring and useless lecture, which I am sure was of no use to him. And then I really thought about it and it was only one thing – courage to experiment and make more mistakes. I realized that my whole setup is geared towards increasing my affordability to make mistakes. Whether it is the version control system or tools to make quick changes or documentation or my effort to learn new languages and tools – they all allow me to be productive not by avoiding mistakes, but by making them, crashing hard and learning from them.