Project management 在复杂的层次上设计软件?
我正在写一个软件,它看起来比我之前意识到的要复杂得多。它执行多个子任务,具有一组完全不同的任务,并将自身集成到其他应用程序、模块和编程语言中。我要做的事情有数百件,而且每件事似乎都太复杂了,无法直接思考。除了“只写”之外,还有什么好的软件设计方法?我需要以某种方式组织我的项目,我需要知道该写什么,而不必先花一个小时来决定下一步该做什么Project management 在复杂的层次上设计软件?,project-management,writing,Project Management,Writing,我正在写一个软件,它看起来比我之前意识到的要复杂得多。它执行多个子任务,具有一组完全不同的任务,并将自身集成到其他应用程序、模块和编程语言中。我要做的事情有数百件,而且每件事似乎都太复杂了,无法直接思考。除了“只写”之外,还有什么好的软件设计方法?我需要以某种方式组织我的项目,我需要知道该写什么,而不必先花一个小时来决定下一步该做什么 有人遇到过类似的情况吗?将项目分解为小任务(不到一天的工作)。分组组织。对它们进行优先级排序(也许您需要执行功能X才能执行功能Y)。开始编码 任何复杂的项目都只
有人遇到过类似的情况吗?将项目分解为小任务(不到一天的工作)。分组组织。对它们进行优先级排序(也许您需要执行功能X才能执行功能Y)。开始编码强>
任何复杂的项目都只是一系列较小的任务。一旦你意识到这一点,就更容易集中精力,找到一种方法来完成这个项目。当然,把每件事分解成小任务是一项工作,而不是琐事。如果你没有这方面的经验,试着从同事那里得到帮助。但是获得经验的最好方法是尝试
根据您的情况和个人喜好,您可以考虑使用敏捷方法,例如。您还应该使用项目管理工具来跟踪您必须做的事情。它可以是从发布到的任何内容,只要找到适合您的内容即可。尝试使用SCRUM&TDD 计划简短的迭代(1-2周),目标明确、简短,尝试尽快创建一些端到端场景,只创建所需的基础架构
使用TDD——我发现,当面临不明确的目标时,它会有所帮助——通过在编码之前编写测试,您可以一次只关注目标功能。看起来您需要将软件组织在多个功能中,而不是将其作为一个单一的意大利面代码盘来处理
您可能需要使用一些形式主义来组织您的思维,例如用于静态体系结构的UML或用于动态体系结构的MSC。我只遇到过规模小得多的类似情况。不过,我希望这些提示能有所帮助
- 举行一次设计会议(最好是与同事一起),找出软件的大致架构
- 试着将复杂的故事分解成更小的子任务,这些子任务可以一个接一个地管理
- 编写单元测试——如果您觉得现有设计不太正确,这些测试将使您能够大胆地重构代码,而不必担心破坏某些东西