工程职业依赖于产品的成功。那么,一个团队应该如何决定他们是否应该构建或购买全部或部分软件组件呢?
每个开发团队都需要决定他们是从头开始设计和构建软件,还是购买软件组件。通常,这与其说是一个商业决策,不如说是一个工程师的自我意识,声称自己比“他们”做得更快、更好。
即使这样的吹嘘是真的,发布一个成功的产品需要考虑更多的因素,才能成功、高效和最大化生产力。
那么,一个团队应该如何决定他们是否应该构建或购买全部或部分软件组件呢?在得出结论之前,这里有六个关键步骤。
第一步是确定项目团队当前可用的资源。盘点将让团队了解有多少工程师可用、分配给完成项目的时间(很少有足够的时间)、总体项目预算,甚至可能是启动资金。团队甚至可能考虑识别那些可以随时使用的、可能影响开发进度的工具。
开发一个基本的软件体系结构将为开发团队提供关于设备复杂性和所需的主要软件组件的总体概念。例如,由于需要图形驱动程序、通信驱动程序、图像设计界面和消息传递界面,确定一个触摸屏图形用户界面无疑是复杂列表中排名靠前的。系统需要的每个组件都可以按从1到10的值进行排序,其中10是最复杂的软件组件。具有高复杂度排名的组件是值得购买的。
一旦生成了所需的组件列表并分配了复杂度排名,可用的团队成员的技能就可以根据这些组件进行评估。每个团队成员都可以根据专业知识和之前开发每个组件的经验进行排名。以这种方式对技能进行排名可以让团队确定技能差距,并利用过去的经验来准确解读开发时间(参见图1).
图1:组件复杂性和技能排名。