In my day-to-day work with technology, I have found there is No Silver Bullet [ucsf.edu] to the essential difficulties of software development. Essential best practices are situational and defined by context.