Project management 移植程序的编程时间表

Project management 移植程序的编程时间表,project-management,porting,Project Management,Porting,我正在开发一个具有抽象GUI API的大型程序。它是非常基于GUI的,许多对话框和一些严重依赖GUI消息流(正确的焦点/鼠标/活动处理顺序等)的讨厌特性-不容易移植 现在我想将它从当前使用的FOX Toolkit移植到原生Cocoa/MFC 我给自己一个直到年底的时间框架,但我的主要工作将是继续使用现有工具包进行开发工作,但在这两项任务完成之前,没有计划为最终客户发布 我的问题是我应该如何度过我的时间 停止主程序的工作,然后重试 做一个90%的端口(大约3个月) GUI优先 把所有的东西都分割成

我正在开发一个具有抽象GUI API的大型程序。它是非常基于GUI的,许多对话框和一些严重依赖GUI消息流(正确的焦点/鼠标/活动处理顺序等)的讨厌特性-不容易移植

现在我想将它从当前使用的FOX Toolkit移植到原生Cocoa/MFC

我给自己一个直到年底的时间框架,但我的主要工作将是继续使用现有工具包进行开发工作,但在这两项任务完成之前,没有计划为最终客户发布

我的问题是我应该如何度过我的时间

  • 停止主程序的工作,然后重试 做一个90%的端口(大约3个月) GUI优先
  • 把所有的东西都分割成更小的 每次为期一个月的会议
  • 将星期一/星期二分配给GUI 项目和本周剩余时间 应用程序
  • 首先完成应用程序, 然后是左舷
  • 我认为我需要平衡三个论点

  • 动机,我想看到这两个项目都有进展
  • 大脑输入溢出,这两项任务都需要大量的细节信息 在我的脑子里,有时候“够了”就够了
  • 我猜移植是跨元音的,所以移植也需要 现有代码和新代码中的大量代码更改将 同时写

  • 我会先完成应用程序,然后移植它。在我看来,你同时处理的项目越少,你的效率就越高。

    这取决于你对什么感到满意

    就我个人而言,我现在就开始移植——一次移植一个子系统/块。你不必一枪就把整件事都搬走。您可能会发现必须重写应用程序的基础才能支持移植。如果您等到应用程序完成后才进行移植,那么最终可能会重写应用程序的大部分内容。因此,我首先要移植支持库和核心功能,然后慢慢地扩展到边缘


    同时,每次向非端口引入新类时,请确保它从一开始就是可移植的

    如果没有计划向客户发布,那么您就可以按照自己的意愿组织工作

    我的第一印象是,在当前平台上完成应用程序的努力,当你打算扔掉代码时,至少是部分浪费了时间(你会学到一些东西,但最终的代码是没有用的)

    就我个人而言,我会停止现有版本,重新开始Cocoa重写

    首先,我将其划分为功能块,并将每个功能块视为一个敏捷风格的版本。这些应该集中在最终用户任务和功能上,包括这些任务的GUI和后端工作

    (我不喜欢将GUI和应用程序逻辑分开处理的原因是它们不是分开的。作为重写的一部分,可能会有机会进行改进,如果你必须保持它们的兼容性,这就更难了。重写是一个机会,可以做出根本性的改变,但这种改变并不经常出现——我接受了)

    一个接一个地完成功能块,在进入下一个功能块之前,先将其设置为一个完整的、可发布的状态。这将给你成就感和衡量进度的能力。这也意味着,如果一个实现突然出现,你就有了完整的可用块


    另外,通过专注于端到端的任务,希望可以最大限度地减少思维溢出,因为你总是在一个特定的领域内工作,而不是在整个应用程序中工作。

    我从MFC、Cocoa和GTK各一个月开始做基本的工作。在这一周之后,在系统之间循环一周,以获得GUI抽象层。我没有这样做还没有打开应用程序本身

    这是相当有效的。即使当MFC、Cocoa和GTK的复杂性使得典型的星期一早上我切换的情况更糟时

    我现在知道了很多我必须如何改变我的申请。
    在继续添加功能之前,我将移植GUI工具包,因为正如Jon提到的,否则我将不得不编写两次部件。

    这个问题似乎离题了,因为它是关于项目管理的