免责声明:本文中表达的观点和意见仅代表我个人,并不一定反映任何机构或组织的观点。
软件系统的复杂性通常要求软件工程师或经理撰写提案,以便团队、组织或利益相关者(合作伙伴团队、相关服务等)就变更达成一致。这些提案有助于简明扼要地传达动机、建议或里程碑,同时获得反馈并协调所有利益相关者。
此类文档还可作为新员工掌握软件系统并了解过去决策思维过程的参考点。本文提供了编写一页纸的通用模板;虽然不仅限于软件系统,但事实证明它在领导软件工程组织时很有帮助。
这将是该文件的执行摘要,有利于捕捉动机以及你建议读者对你的文档感兴趣的内容。
提供变更的背景/动机的详细信息。可以包括指标/数据来解释问题并提供其他见解。
属于本项目范围内的要求。
指出该项目的任何非目标或超出范围的任务。这些可能会分散您解决想要关注的问题的注意力。
总结您考虑过的解决问题的选项/替代方案的列表,最好列出每个选项/替代方案的优缺点。
根据上一节讨论的替代方案,提供战略解决方案的建议并附上解释或支持论据。
战术方法作为一种选择 -根据与实现推荐方法相关的挑战/时间表,考虑提供战术解决方案;潜在的,这可能是朝着战略解决方案迈出的渐进一步,或者是在短期内解决问题的最小改变。
描述您将如何验证该功能是否按预期运行;您将测试什么?您将如何测试它?是否有一个 Gamma 或预生产验证期?这将需要什么?确保包含测试用例,以验证该功能仅适用于应适用的事件
列出推荐解决方案的高级任务/里程碑,并估算开发天数。要提供此列表(不包括功能更改),请考虑以下事项:
您认为的参考文献可能有助于读者深入了解问题空间或提出的替代方案。
主动回答任何预期的问题或者在与该提案相关的后续讨论中可能提出的问题。
在提案中添加任何补充信息,以便读者根据需要参考。
保留以下对提案进行审查的会议摘要。
出席者
出席会议的人员名单。
MoM(会议记录)
总结会议记录以供将来参考。