软件工程的方法论中,要求软件开发者尽可能多地在软件测试阶段发现bug,而不是交付之后。但是楼主说的能不能让软件开发出来没有bug,偶觉得把下面这几个事情做好,尽量减少BUG,而不是没有BUG。
1、花尽可能多的时间,和客户沟通软件需求,了解每一项需求的用意。
2、确保软件需求减少软件需求变更,因为很多情况下一个需求的变化,程序会带来很多问题,有可能连底层结构都需要跟着一起变动。频繁的需求变动,加上开发周期和成本的约束,带来的结果就是软件质量的不可控。
3、确保软件测试质量,完成全覆盖测试,设计系统需要的全部用例并保证全部通过。
把事情一次性做对确实是很有必要的,谁也不想没事给自己挖几个坑,但这需要有缜密的思维了,而偶相信,这个世界还是粗心的人多点。程序不是一蹴而就地做出来的,Bug也不是一时半会能改完的。