Erdogmus[Erd09]指出软件工程师个人要想展现“非常专业的”行为,应具备七种特质:
一个卓有成效的软件工程师有个人责任感。这会让软件工程师去努力实现对同伴、其他利益相关者和管理者的承诺。为获得成功的结果,他会在需要的时候不遗余力地做他需要做的事情。
一个卓有成效的软件工程师对一些人的需求有敏锐的意识,这些人包括同团队的成员、对现存问题的软件解决方法有需求的利益相关者、掌控整个项目并能找到解决方法的管理者。他会观察人们工作的环境,并根据环境和人本身来调整自己的行为。
一个卓有成效的软件工程师是坦诚的。如果发现了有缺陷的设计,他会用诚实且有建设性的方式指出错误。即使被要求歪曲与进度、特点、性、能、其他产品或项目特性有关的事实,他也会选择实事求是。
一个卓有成效的软件工程师会展现抗压能力。前面我们提到,软件工程工作经常处在混乱的边缘。压力(以及由此产生的混乱)来自很多方面——需求和优先级的变更、要求苛刻的利益相关者或同伴、不切实际或者令人难以忍受的管理者。但一个卓有成效的软件工程师可以在不影响业绩的情况下很好地处理这些压力。
一个卓有成效的软件工程师有高度的公平感。他会乐于与同事分享荣誉,努力避免利益冲突并且绝不破坏他人劳动成果。
一个卓有成效的软件工程师注重细节。这并不意味着追求完美,而是说他会利用产品和项目已有的概括性标准(如性能、成本、质量),在日常工作基础上仔细思考,进而做出技术性决策。
一个卓有成效的软件工程师是务实的。他知道软件工程不是要恪守教条的宗教信仰,而是可根据当下情景需要进行调整的科学规则。