在世界上软件工程已经大约有50年的发展历史了,国内很多人对于什么是软件工程存在误解,以为软件工程就是或主要是编写程序。2004年IEEE-CS (它是Institute of Electrical and Electronic Engineers-Computer Society即国际电子与电器工程师学会计算机学会的英文简写)对软件工程包含的内容作出进一步的刻划,在它出版的SWEBOK一书中明确规定软件工程涉及到的11个领域。
软件工程是开发满足用户需求、及时交付、不超过预算和无故障的软件的任务,它以质量保证为基础,包括过程、方法和工具等要素。任何一个软件工程都涵盖软件生存周期的所有阶段,包括以下11个模块:工程经济、需求、设计、构造、测试、维护、结构管理、工程管理、过程、工具和方法、质量。
因此,若要成功顺利地完成软件工程,尤其是像样子的大工程,必需有一个工程队伍。这支队伍要有合理的软件人才结构,好像是“金字塔”型:塔尖5%的人才是架构师(Architect),中、高层的35%是管理项目、技术和产品的高级软件工程师(Senior Software Engineer),通常就是我们所说的项目经理、CTO或者技术总监等,底层的60%应该是软件编码人员,我们称其为程序员(Programmer)