金色海洋工作室

——自然框架,自然而然,快速开发、快速修改!

 

设计上的8/2原则,您实现了吗?实现后会是什么样子的呢?

最近做项目感觉很累很累,先自我分析一下吧。(但愿不要给大家一个“阴天”的感觉

先明确一下我理解的“设计”的范围。一定要先说明一下,否则容易混淆。

一般做一个项目主要有以下几步。
1、到客户那里做调研,收集客户的需求;
2、根据需求和设计人员的经验设计功能模块;
3、设计实体类(或者数据库)。对于我来说就是设计数据库:)
4、设计各个模块的实现细节,比如多少个列表页面,里面都显示什么字段;多少个表单,里面都有什么字段;各个页面之间如何跳转;业务逻辑的具体功能的实现。
   至于OO方面还需要涉及什么我就不太清了,我现在还是非OO的方式写项目。
5、分工,开始编码了。

6、代码检查,查看代码是否符合规范,是否实现了规定的功能。
7、个人测试、整体测试。


我觉得2、3、4都属于设计。

但是我这里想说的“8/2”原则呢侧重于 4和5的比例。因为2和3都是前期的总体策划的部分,4和5才是具体的细节。

如果4和5的比例真的达到了 8:2 会怎么样呢?

做设计的用了8份的时间,而编码人员只需要2份的时间就可以完成了。

好还是不好呢?

显然做设计的人员是比较很累的。

在我的项目里面 4和5的比例至少也达到了 5:5 ,而我又是负责设计的。

我的做法呢就是把4的部分工作交给负责编码的人员来做,当然这样做效果是比较不理想的。但是时间紧我也没有其他的办法。只有我一个人做设计。


我现在最郁闷的是,当出现一个新的功能的时候,我花半天的时间设计的话,另一个程序员用大半天的时间就可以实现了。

同时我要再设计下一个功能,然后再交给他来实现。

而我的这种设计并不是很细致。列表上显示什么信息我只是提出一个宽泛的要求,而没有具体到每一个字段。

这是一带一的形式,如果是一带二的话,根本就“供应”不上。

这还不包括代码检查,代码测试的时间,而这些工作都得我来做。


所以我觉得真的实现了 “8/2”原则 的话,那么最需要的是设计人员!可能是二代一了,两个设计人员对应一个编码人员。最好在外加一个测试人员。


好像听乱的,确实,我现在的思路也确实挺乱的。

把我的情况写出来,不知道兄弟们的情况如何?

 

posted on 2008-01-06 08:34 金色海洋(jyk)阳光男孩 阅读(5642) 评论(38) 编辑 收藏

评论

#1楼 2008-01-06 08:44 Justin      

怎么说呢,这篇文章的主题有些不清晰,你的问题也不是很明确:
首先:似乎你们的开发流程还停留在原始的瀑布模型,虽然不是什么项目都需要走RUP、FDD、TDD这些流程,但是整个团队对迭代的理解是必须的。
其次:不同的开发流程,对设计的要求肯定不一样,这个具体看每个公司内部的规范,如果设计粒度比较粗的话,就比较强调设计和开发之间的密切沟通和持续迭代改进,甚至可能设计和开发就是一个人;如果设计粒度很细,那么可以理解成像你所说的8/2原则,这样更靠近瀑布模型,而这种方式对设计的要求就非常高了,以我的经验来看,这种所谓的8/2原则是不可能存在的,设计之初,不可能做到8!所以我觉得你说的8/2原则在现实中是不存在的,只是很多年前人们的一个美好的愿望。
最后:说说我对开发流程的理解:【迭代】是根本,这是任何流程都逃避不了的现实,而【重构】是【迭代】的孪生兄弟,最后->【代码即是设计】
推荐书籍(初级):
《UML和模式应用(原书第3版)》- RUP、用例、OO、-> 扫盲
《快速软件开发》- 深入理解什么是软件开发
《你的灯亮着吗?》- 正确思考问题的方法
 回复 引用 查看   

#2楼 2008-01-06 09:01 Cure      

我觉得关键还在于对设计,编码的质量定义。
如果说编码阶段只需要编码者自己对着设计书编写完成,什么Review,个人测试都不做,那么设计和编码的比例达到8:2是可以的。也就是楼主的4和5的比例。
但是如果说编码阶段包括Review时间,个人测试,并且交付测试的时候不能包括严重的异常,那么5:5是比较正常的。也就是楼主的4和5+6+7的第一项。
 回复 引用 查看   

#3楼[楼主] 2008-01-06 09:07 金色海洋(jyk)      

一直在加班,今天还是。总算是挤点时间写了点东东。

问题是现在除了 1和5 之外,大多都是我的工作了。所以只好尽量把4也分出去。

另外,只有数据库的设计文档,其他的文档都是没有的。

就是说没有计算编写“设计书”的时间。不仅是“写”呀,还要“想”写些什么呀。
 回复 引用 查看   

#4楼 2008-01-06 10:20 Leepy      

现实中,更多的是采用迭代式开发,以一段时间为周期,对这段时间做的软件原型做出分析,总结错误,在下一阶段,避免这些错误的发生,这样前期发现的问题会多些,但到后面,错误的发生就会越来越少的!  回复 引用 查看   

#5楼 2008-01-06 10:23 LikeCode      

我认为适当花多点时间做好设计,能很好的提高软件质量,CODING效率也高,代码质量也会更好.

因为我设计时做地够细,够合理,在CODING就更轻松,敲起代码来也容易.同时,良好的设计,可以减少BUG的出现.

反正我认为设计在整个软件开发过程中,是最生要的一个阶段.

我们要"克制CODING的冲动"!
 回复 引用 查看   

#6楼[楼主] 2008-01-06 10:23 金色海洋(jyk)      

感谢大家的帮助。现在我是比较荒乱了,我也不想一开始的时候就coding,但是客户催得急呀,没有办法。

迭代式开发 不是太清楚。

我们现在是写完一个模块就做下一个,模块做多了,回头一看遗留了好多bug。

但是还要再做新的模块。
 回复 引用 查看   

#7楼 2008-01-06 10:26 LikeCode      

不好意思,上的字打太快,有几处手误.

"因为我设计时做地够细" -> "因为在设计时做地够细"
"是最生要的一个阶段"->"是最重要的一个阶段"
 回复 引用 查看   

#8楼[楼主] 2008-01-06 10:31 金色海洋(jyk)      

没事的,可以看出来你的意思的。

我想问一下,你是一个人写程序,还是带领几个程序员在写程序呢?

我现在苦于能很好的做设计的人太少了。
 回复 引用 查看   

#9楼 2008-01-06 10:38 LikeCode      

@金色海洋(jyk)
我暂时未工作,但我们老师教过软件开发流程这门课,在平时做项目时,对设计的重要性,深有体会,刚开始时,开发一个软件,马上就是去CODING...最终所有代码都是垃圾代码,烂得千疮百孔,惨不忍睹.后来慢慢的培养成在CODING之前,尽量做好设计,所有设计都用纸做好文档.

关于用纸做文档我认为很有必要性,可以软件开发过程中,方便翻阅,不必在电脑频繁切换窗口查看文档,这样可以有效的提高效率,而且纸质文档方便修改与标记一些其它东西.
 回复 引用 查看   

#10楼 2008-01-06 10:38 LikeCode      

我想,一个团队做设计的人太少,肯定是苦了CODING的程序员了,他产很可能半兼职做设计:)  回复 引用 查看   

#11楼 2008-01-06 10:56 G yc {Son of VB}      

那个。。82 还是分开打比较好 像 8/2
搞的我以为你要又要说82(八十二)个规则呢~
 回复 引用 查看   

#12楼[楼主] 2008-01-06 11:27 金色海洋(jyk)      

感谢,标题已经修改了。  回复 引用 查看   

#13楼 2008-01-06 16:26 怪怪      

@LikeCode
你既然未工作, 说实话你的体会可能就是错的. 代码很多时候就已经是最好的设计. 纸面工作, 最大的作用是交流, 只有你在相当大的一个组织里, 如果不做适当的文档, 交流成本远远大于设计+编码的成本的时候, 文档才有相当大的重要性. 程序员半兼职设计不是什么了不起的事, 大多数设计和具体工作挂钩也比较紧密, 程序员完全没有自主权才成问题. 编码和民工的工作还是有区别的.

你在课程上学到的那些说法, 和所谓的体会, 其实往往和实际工作差别很大的. 这和环境有关. 如果在现实中的一个团队, 大多数人和你课程设计上的同学水平相仿的话, 你说的情况是必然的结果, 那么考虑到团队的这种水平, 那个当头儿的就要做更多的工作. 但是如果是一个都有相当经验的团队, 找准设计的层次就很重要; 往往头儿只要做一个适当粒度的划分, 确保划分结果之间的交互的合理性, 就足够了.

@金色海洋(jyk)
我觉得主要是个度的问题. 感觉老兄你以前挺灵活的啊, 不是让大家的博客影响了吧. 你说的8/2, 不见得8就是你一个人包办的, 更多的这个原则是说代码在全部设计+编码人员的全部工作量里所占的比例, 而上层有上层的设计, 具体到某一划分, 内部也应自有其设计, 这个设计让具体工作的人来把握, 往往有更好的效果. 我觉得你可以试试将更多的工作下放下去, 如果做编码工作的人已经有一定经验, 还算靠的住的话. 你只要告诉他, 你要的结果是什么就可以了.
 回复 引用 查看   

#14楼 2008-01-06 16:36 jillzhang      

@怪怪
对于你上面的说法,我是基本同意的,你基本上倾向于敏捷软件开发的模式,代码就是最好的文档清单,开发就是人与人之间的合作,可这样对团队成员要求太高了,目前至少没有多少团队能达到这样的水平,文档和设计还是解决问题的正规化手段。
将编码工作放下去同样有一些问题,教一个人会一样东西比自己会一个东西可能还要难。
 回复 引用 查看   

#15楼 2008-01-06 17:23 怪怪      

@jillzhang
嗯, 你说的这是一个关键问题, 在我去年的团队中深受其苦.

这里面有一个深切的矛盾:

齐全的文档和制度, 整体成本会大大上升, 由于自顶而下, 对文档中无法明确要求从而下面编码人员可以做决定的事情, 肮脏的角落就容易被忽略.

所谓的敏捷开发(其实我不喜欢这类的忽悠), 对团队人员的主动性要求就高. 其实真的不是水平的问题, 就是团队里每个人愿意下多大功夫的问题.

我觉得这才是真正考较设计人员或者是负责人的角色(往往是同一人)的地方: 应该找到一个停止的地方, 程序员的工作是可以量化和考核的, 同时避免过分加大设计人员身上分配的事情而导致的各种各样的额外消耗和隐藏的漏洞.

其实一说到团队, 就是人的工作, 人事就是首要问题. 所以我更赞成的一个方式是: 放权是一个过程. 毕竟大多数编码人员都可以逐渐变得富有经验, 至少在某一个范围内, 你可以逐渐的对他放心, 而这个范围也会不断加大. 但这有一个前提条件: 你有正确的人, 你能以正确的方法对待这些人.

最后这个问题, 往往是被忽略的, 我过去也做得糟糕的要命, 而且有曲折.

最早的时候我因为水平不够, 带的程序员面试进来, 为了让他们能尽量分担工作, 实际上选择的做法是让他们的工作相对的独立. 我要求什么呢? 我让人把界面做好, 把每个界面上的元素的交互定好, 你做出的东西就必须是这样, 而且我会事先提醒一下可能的变化; 对于不直观的部分也尽量按*需求和业务*(而不是设计的合理性)划分的完整, 模块的大体思路给出来, 较为严格的告诉他们需要输入什么, 输出什么定好, 剩下的你爱怎么做怎么做. 你要是碰见问题需要花费时间, 那你来找我, 我把这个问题给粗略的解决一下, 剩下的你去完善. 这属于一个垂直的划分, 最不容易出问题.

是的, 这里头有风险, 如果他的这一块做烂了, 也许整个项目就完蛋了. 可是这个风险是要冒的, 因为是公司选择了他们. 这在招人的时候就定了, 我们这些技术负责人不可能人为的消除这个风险, 而不花费大量的代价. 我发现招来的程序员, 只要待遇恰当, 这样较为的垂直划分, 会增强他们自己的责任感, 因为决定是他自己作出的; 相反如果是某个细致分配的小模块, 即使依仗测试, 也不是个愉快的过程: 应付过测试, 每个人都认为工作结束了. 当新的变化产生时, 问题可能一下子暴露很多, 这时候每个人都有借口: 对于设计人员来说, 认为编码人员不能快速的适应新变化是技巧不足(比如原来的实现过于死板); 对于编码人员来说, 你设计人员朝三暮四(无论是不是来自于合理需求), 我代码又不是变出来的, 多花时间您就等着吧.

后来我水平高了, 可以划分的比较细致, 把一些工作变成纯粹的体力工作, 把程序员当作代码生成器, 也舒服过一阵子. 这阶段的项目出现的失败, 主要是我自己创业以后选择的项目不靠谱导致的失败.

但是在创业以后这半边, 我自己自食其果了: 因为我的新项目整体设计是核心, 而部分的设计也很重要, 设计又根据我的想法不断变化, 我根本没法稳定接口让别人完成接口下面的工作. 同时, 把设计的工作变为较大粒度, 然后把小粒度的设计分配出去也是不合适的: 我的合作者没有得到成长的机会, 根本没法快速理解我的思路并分担或者配合我的工作, 这样要么是给他们担子, 进度就没法保证, 要么就是我一人完成工作, 他们根本没事可做.

这里头有一个可以思考的地方, 很多人都和我一样, 个人水平提高了, 带领的团队质量反而变差了. 但是很多人的认识方法是, 那是因为我还做的不够好. 其实不是这样的, 我觉得我们要反思过去快乐的日子的合理性, 并且承认它. 现在我体会到, 其实我现在做的这种框架式的, 创新型的工作, 如果想提高效率, 必须所有人都具有相当的水平, 并且愿意下力气. 任何一种过程方法, 都解决不了我的难题. 我觉得作为技术组织, 总有一天会进行更高层次的提升才能活, 而不被淘汰. 那时候, 你的团队, 如果都是人肉代码生成器的话, 他们跟的上吗?

不是说更高级的设计知识和方式, 是大而无用的屠龙术, 如果我没有这些方面的认识, 我都不可能有构思现在框架和产品的水平. 而是说, 培养人, 不断提升整个链条上每个环节能发挥的价值, 才是最重要的事情. 如果我坚持我最初的做法, 在详细观察每个人的特点和担当的基础上, 有意识的通过逐渐加大新团队中伙伴的工作范围(从编码->设计)和职责, 让每个人可以调整到他们能够达到的比较高的一个水平, 那么我的团队就照样可以写出漂亮的程序, 获得在我只将程序员当作编码员时的一切好处, 同时不必承受自顶而下的更高成本和一切其它恶果.

那么这样我拿什么去交换呢? 我会付出了更多的精力, 去提升别人的价值. 我认为这是值得的: 因为我不是IBM或者华为, 铁打的营盘流水的兵; 我身边的每一个人都对彼此很重要, 不是吗?
 回复 引用 查看   

#16楼[楼主] 2008-01-06 17:31 金色海洋(jyk)      

1、以前都是我自己写代码的,对代码的把握度是很高的。
现在是带一个程序员来写程序,种种原因没能及时对代码进行检查,到最后看代码就成了一件很头痛的事情了。

2、我是把部分设计放下去了,但是由于程序员经验不足,也是我把关不够,检查代码不及时,实现得不够理想。就是说团队配合还不够理想。

一开始我是告诉他我想要的结果,功能是实现了,但是代码就比较不好读了。模块多了,相互之间的关系他就处理不好了,当然了这是我的责任。


3、就是因为我太灵活了,别人不好理解我的思路和我写代码的方式。一般别人都是看不懂我写的代码的。不是因为乱,而是思路比较特别。

4、工作的分量。
我现在要负责:设计(程序和数据库)、编码、代码检查、客户沟通(实施)、修改bug。最郁闷的是要同时应对两个项目,再有就是人手不够。(刚刚又走了一个兄弟)

5、学校和公司是不太一样的。团队成员的水平是不一样的,人的性格、配合能力也是不一样的。程序员大多内向,这是不好的,要善于表达自己的想法,这样才能更好的沟通。

 回复 引用 查看   

#17楼 2008-01-06 17:38 怪怪      

@金色海洋(jyk)
不是说什么都是你的责任, 其实主要是几点:

1. 你们公司没有拿出应该拿出的成本, 比如付更多的工资雇佣更好的配合人员.

2. 咱们不要说什么设计人员或者项目负责人这些词, 也许你还不适合当一个头儿, 或者你们公司虽然让你做设计, 却没有给你这个"头儿"的角色, 从而你无法认识或实行到一个"头儿"该做的.

3. 思路特别在很多情况下就是乱, 这一点是你自己的问题. 代码大全等很多书里讽刺了代码灵活富于机巧的写程序方式. 但是标准的面向对象思想的程序也不见得更好一些, 因为你的思路如果是有益的, 面向对象只是把它们整理的更好, 而不是说你就不能用这些思路了, 这时候别人能不能看懂, 思路的复杂性还会照样存在, 这时别人无法跟进, 参照1.

4. 水平高低不同是客观存在的, 这需要你和公司共同的付出, 这即使是一个困难, 也是要你们去解决的, 参照2.

 回复 引用 查看   

#18楼[楼主] 2008-01-06 17:53 金色海洋(jyk)      

感谢怪怪的回复,感谢怪怪共享了自己的经验。

我现在呢最多是一个项目组长,只是设计的工作也都给了我。

另外想问一下:当头了,要不要写代码了?


和怪怪还是有很大的差距的,向怪怪的方向努力。

感觉像法挺像的,我想到的你都实现了。
 回复 引用 查看   

#19楼[楼主] 2008-01-06 17:55 金色海洋(jyk)      

我确实不适合当头,我对代码(编写技巧)感兴趣,我很想完善自己的自定义控件,但是现在要先弄好项目。  回复 引用 查看   

#20楼 2008-01-06 18:18 Shinn      

看大家大家说了这么多,

我也说下自己的看法

首先我觉得楼主可以把coding的程序员也看成一个人而不是简单的“打字机”。这样就会轻松很多。迭代开发说简单去了就是楼主说的一个模块一个模块的设计和交付;

其实可以在设计的时候叫上手下的coder一块设计,他们平常代码写多了,或许也想干干设计呢。这么做至少两个好处,首先减轻了负担,多几个脑袋想问题总会快点的,设计也就简单了,同时coder由于参与了设计也省下了琢磨设计的时间。还有就是软件质量会好点,设计方面加强几乎是肯定的,最主要的还是代码方面会强很多,因为可以保证coder知道了设计的原因,许多设计上的错误在coding时发现和解决的。

另外,从我自己的案子来看,设计没分的这么细,对于项目的一个新模块,我先是根据需求想下大致的思路,然后和coder讨论下是否可以实现,如何实现。然后要coder自己去详细设计,他需要什么数据(如调用其它层或对象的datatable,对象,方法等)列在一张单上,然后我们一块讨论他的详细设计,基本上仅在其基础上少量改动即可。同时也可以在数据库中增加table了。




 回复 引用 查看   

#21楼 2008-01-06 18:37 怪怪      

@金色海洋(jyk)
不是说当头儿就不能写代码, 关键是你的工作内容往往决定了你可能的角色. 比如咱们是一个游戏的主程序师, 再带2~3个配合的程序员, 咱们肯定要写代码, 不然咱们在过去实践中积攒的经验全都浪费掉?(没干过什么活, 就因为做人和运气就当头儿的那种人例外, 不过不是说这种人就一定对项目无益) 主要是看核心的难度在哪里. 有时候核心难度比较少的分布在具体实现上, 那么当头儿的就未必要亲自动手了.

但是人的问题是负责人必须要关注的, 只要我们需要别人, 我们就必须正视这个问题.
 回复 引用 查看   

#22楼 2008-01-06 18:40 Shinn      

@金色海洋(jyk)

才回一个帖,就增加了几楼,好晕

关于对团队其他人分任务的粒度,结合自己经验和年终没什么任务看的书上现炒现卖一下。

我以前做的是,粒度都较大,但在范围上依成员对项目的熟悉程度有区别

在其他成员不熟悉项目时(新增的成员),他只能写自己负责模块的代码。需要调用什么,就列一张单,我告诉他如何调用或者新增一个类或者方法然后告诉他怎么调用。也就是将新成员代码的影响区域限制在他所负责的部分

在熟悉后,他可以在较底层添加方法,但代码要经过我审查;审查时我会要求将代码风格改成和原来的一致。以及要求做些改变。但不允许改变原来的接口只能新增。实在要修改时还是我自己操刀。

其实我觉得招进来的新人只要不是刚毕业,基本上很快就能跟上来的,而且一般他们也挺高兴你把详细设计的任务给他来做的。



 回复 引用 查看   

#23楼[楼主] 2008-01-06 19:13 金色海洋(jyk)      

感谢大家的回复。

其实我带的这个coder,设计能力还是可以的(对于新手来说),我作的粒度是比较大的,细节都是他来思考。

但毕竟是新手,经验和编码能力还是有些不足,而客户追的又比较紧,实现了功能就完事了,没有及时作代码检查。


现在最后悔的事情就是当初没有及时地检查代码,造成了现在的代码的“混乱”。

有段时间由于时间比较紧又加入了两名程序员来编码,还是没有时间来检查代码,现在就都得由我来改了。


 回复 引用 查看   

#24楼 2008-01-06 22:07 RicCC      

看过士兵突击没?许三多第一槌砸在了史进手上,让不让人砸是史进的事,敢不敢砸过不过得了这一关是许三多的事,过了决定了许三多的能力,更体现了史进带兵的能力。

做项目带人就是这样
 回复 引用 查看   

#25楼 2008-01-07 09:01 球球      

从我现在这种半吊子的水平来看,代码乱的主要原因,大多是设计问题,比如异常处理方式不够完备,有的甚至连自己的异常类都没有编写(我做的第一个.net项目就是这个样子.......都是返回错误码,没有异常类);或者层次不够清楚,很多不同功能的东西都放在一个project里。当然,coder也不能太差的,太差的人写出来的代码本身bug太多,不过话说回来了,水平高点的coder哪个不会点设计..........  回复 引用 查看   

#26楼 2008-01-07 09:06 henry      

当公司有个稳健成熟的框架来说,设计的工作只有2,3.
对于逻辑规则开发人员没有选择空间基本按框架组织结构进行编写就是了.
 回复 引用 查看   

#27楼 2008-01-07 13:11 szbaby[未注册用户]

以前人家也是做好设计给我做。。。

我觉得你设计可以放手给一部分人做。然后抽个时间,大家一起review,设计的人讲一下设计思路。开发的人,提问一下。最后Ok

成熟的框架真的很重要,剩下的就是业务关系,也就是流程图了。

这是我的觉得

应该放手,给人锻炼。。。。有积极性。。。有时间人家实际做也比较有利!
 回复 引用   

#28楼 2008-01-07 14:53 德仔[未注册用户]

文档很重要,我一直很重视文档的工作,作代码的时间甚至会少于coding的时间,现在的coding可以根据需求或固定框架整个代码生成器,只写核心代码就差不多。其他的都可以按规则自动生成。总而言之,只有在设计上多下点功夫,在后面开发的过程中会比较顺畅。  回复 引用   

#29楼[楼主] 2008-01-07 19:57 金色海洋(jyk)      

我觉得架构越成熟,那么设计所占的比例就会越大。

架构的作用是什么呢?我的理解是可以规范代码,加少代码。

但是架构会包含设计或者逻辑关系方面的信息吗?

如果不包括的话,那么架构就不会减少设计的工作量。


对了在说明一下,我是很放手的,但是放手时候没有必要的管理,这就造成了混乱。
 回复 引用 查看   

#30楼 2008-01-07 23:15 BirdsHover      

个人感觉水平不高的队伍,迭代开发比较适合,在重构中大家一起成长,项目向前推进。要把项目放到大家都能理解的水平,如果你的思路只有你能理解,你能期望不理解的人写出正确的代码么?除非按照软件工程的做法,你连方法是怎么实现的都定义好了,员工只是打字员。那还要程序员做什么?大家一起成长才快乐不是么  回复 引用 查看   

#31楼 2008-01-08 08:57 Charly      

你说的是理想状态吧,就算你发了8的时间去做设计,但是在开发中总会发现有纰漏,所以这样根本不止8了,而且任何项目的设计不可能一步到位,肯定要迭代的,特别是需求变化快的时候。个人觉得设计适可而止就可以了,没必要把所有的东西都说的一清二楚,有些东西可以通过交流沟通来达到共识的,设计文档有必要在项目组内评审,达成共识,这也是完善设计的一种方法吧。  回复 引用 查看   

#32楼[楼主] 2008-01-08 12:06 金色海洋(jyk)      

不是把设计的时间延长到8,而是编码的时间缩短了,设计所需要的时间的比例增大到了8。

其实设计的时间是没有变化的,变化的是编码的时间,编码所需要的时间缩短了。
 回复 引用 查看   

#33楼 2008-01-08 21:51 OO[未注册用户]

设计不是那摸简单的
8/2
好的设计是大家一起做调研
一起做开发
这样才能写出好的产品
不能把项目局限在项目经理的思想里面,这样灵活性大大减低
产品也不会好到那里去.
还是认为一个人的思想永远超越不了团队的思想
 回复 引用   

#34楼 2008-01-08 21:56 OO[未注册用户]

还有项目前期是最重要的
我门公司光调研就2 3个月
概要设计文档,详细设计文档,数据库设计文档写的超全
还要反复核对
只有这样项目才能成功
然后编码
 回复 引用   

#35楼 2008-01-08 21:58 OO[未注册用户]

还有项目设计的时候能简单就简单
记住你做的是项目不是产品
简单才能出好项目
 回复 引用   

#36楼 2008-01-09 15:51 我是蚂蚁      

咱们两个定义的设计不太一样,我更关注架构设计、需求设计,而对于功能的设计、开发,几乎不过问(偶尔会抽查),而对于界面上的东西(比如风格、字段摆放)我不认为是设计,如果是设计那也不是架构师、系统分析人员干的,应该是设计人员(或者说美工、UI工程师)干的。

功能的设计有具体的开发人员来定义,定义的前提是必须符合架构设计,必须符合需求。

对具体功能设计上,比较喜欢接口,要求根据需求、数据库设计定义自己的数据接口、业务接口,这些接口的定义工作由具体的开发人员来定义。我们会在接口上推断设计的合理性。

需求设计一般情况会让参与项目开发的绝大部分人参与,不管他们的级别,当然会由项目主管主要负责,然后数据库设计会由开发组的负责人跟项目主管共同来完成。这样做的目的是让项目中的每个人清楚项目的整体情况,对项目(产品)有清晰的认识。
 回复 引用 查看   

#37楼 2008-01-09 15:57 我是蚂蚁      

--引用--------------------------------------------------
OO: 还有项目前期是最重要的
我门公司光调研就2 3个月
概要设计文档,详细设计文档,数据库设计文档写的超全
还要反复核对
只有这样项目才能成功
然后编码
--------------------------------------------------------
规范肯定是对的,如果没有足够的资源也要尽量规范,把必须做的做了。但是关键是怎么做,由谁来做。
 回复 引用 查看   

#38楼 2008-01-28 17:00 放飞梦想      

诸位都是高人呐!
请问一楼推荐的书籍有电子版下在吗?
或者哪位有发到我邮箱来,感激之至!
邮箱:topboy168_C@hotmail.com
 回复 引用 查看   

导航

统计

公告



昵称:金色海洋(jyk)阳光男孩
园龄:5年5个月
荣誉:推荐博客
粉丝:366
关注:130

随笔分类(337)

最新评论