Scratchpads
I read an interesting blog talking about the importance of experimenting and writing code instead of just talking about the project. It’s easy to dismiss some of it as not realistic in a corporate software development environment. I’ve worked in many types of shops writing software, the startup, the smaller company, the midsize and now for the past decade a very large corporate tech company.
There are many ways to write software and finding the right balance between upfront design and experimental code is not always easy but what I’ve found for me is the importance of having scratchpad projects. If you were to look in my internal source control repository, you’d see a collection of *-scratchpad projects. These are very loosely working, usually at least able to compile and one or two classes working but they represent this experimentation, this ability to tinker a bit with the technology or code until satisfied enough to make a larger project possible.
Doing this extra work sometimes might be overkill and usually doesn’t help any downstream users but it does give a place to get the smallest option working without trying to do everything a larger project might need to do.