"The hardest single part of building a software system is deciding precisely what to build" - Fred Brooks.