看到一篇文章,《倒退的历史——某MIS项目手记(1):“切五花肉”式的分工 》,认为有点课本主义,所以想说说。
先看个图:
![](/images/cnblogs_com/tansm/Codeing.png)
原文作者的意思是分工应该是:要不你负责所有模块的数据层,要不你负责逻辑层,或者其他。
而我的意见是:先由某位“高工”完成某个典型模块的所有层,然后其他成员消化后每个人负责一个模块,也就是原文中所说的“切无花肉”式。
首先我认为分层分工的最大问题就是责任不明确。界面层的程序员写完程序后发现出错,于是提交给商业层负责人,商业层负责人测试后,发现是数据层的问题,又提交给数据层负责人。最糟糕的情况下,所有的人都推脱是别的层的问题。这在以前使用这种分工是最大的毛病。
分模块编写的分工非常适合“数据库类应用程序”,他们功能和结构非常相似,最重要的是他们互相的耦合很小,这样就大大避免了推脱责任的事情。
另外,让程序员可以接触到所有的层次模块,对于程序员来说,是个非常“有趣”的事情,几乎所有的程序员都讨厌当“编码员”。分模块编写在员工的情绪上也是有益处的。
先看个图:
![](/images/cnblogs_com/tansm/Codeing.png)
原文作者的意思是分工应该是:要不你负责所有模块的数据层,要不你负责逻辑层,或者其他。
而我的意见是:先由某位“高工”完成某个典型模块的所有层,然后其他成员消化后每个人负责一个模块,也就是原文中所说的“切无花肉”式。
首先我认为分层分工的最大问题就是责任不明确。界面层的程序员写完程序后发现出错,于是提交给商业层负责人,商业层负责人测试后,发现是数据层的问题,又提交给数据层负责人。最糟糕的情况下,所有的人都推脱是别的层的问题。这在以前使用这种分工是最大的毛病。
分模块编写的分工非常适合“数据库类应用程序”,他们功能和结构非常相似,最重要的是他们互相的耦合很小,这样就大大避免了推脱责任的事情。
另外,让程序员可以接触到所有的层次模块,对于程序员来说,是个非常“有趣”的事情,几乎所有的程序员都讨厌当“编码员”。分模块编写在员工的情绪上也是有益处的。