software development misconceptions