The best software is built by keeping as many doors open for as long as possible. Resist premature decisions and locking in implementations too soon. I’ve been developing software for many years now.