分享
 
 
 

关于架构设计和项目管理的讨论

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

这是某日和朋友通过即时通信方式进行的关于项目管理的讨论。

我将该讨论重新看了一遍,发觉我说的比较多,听的比较少:)。一般我不是这样的。主要我对于朋友所在的公司(开发习惯,程序员的水平,deadline如何设定等等)比较熟悉,非常担心这个项目是否能够成功,所以就拼命地劝说朋友采用一些回避风险的办法。

由于在这个讨论中的目的是以说服为主,所以很多概念叙述的不一定精确完整。这个项目大概有4个人参加,用c++开发手机平台上的应用程序,估计大概需要半年时间,应该算是一个小项目。

以下是讨论全文:

我: 你的项目怎么样了?

友: 进行中

友: 下个星期详细设计开始

友: 还没有开始写代码

我: 你让他们加断言,他们加了吗?

我: 那么还没有开始编码罗

友: 当然要他们加的

我: 大家都同意了吗?

友: 我说了算阿

友: 我是头

我: 呵呵,要心服口服最好了

友: 嗯

友: 我会让他们明白的

友: 你怎么样,

我: 比较轻松,最近在写gui,用wxpyhon

友: 呵呵,高手就是高手

我: 一天写个10行左右吧

我: 靠,这还叫高手

友: 呵呵。。。。

友: 微软也不过每天10行

友: 这个就是微软的水平了

我: 得了吧,微软比我们厉害多了

我: 我们这叫低效率

友: 嗯

友: 我最近在看《设计模式》

我: 不错嘛

友: 学习学习阿

我: 你计划谁来把握程序的架构呢?

友: 现在要学习这方面的

友: 我看下来我这里没有这个方面的人才

友: 现在只有靠我自己来架构了

我: 那么谁呢?

友: 没有

友: 我自己了

友: 项目的规模不是很大,我自己可以试试看

我: 没有人第一次架构都能做好的,你身兼项目管理和架构比较麻烦。

我: 架构在后期是被人埋怨的主要目标

友: 是啊,我现在是身兼数职。。。

友: 我现在就是我想了以后找下面的人商讨,看看这个构架是不是合理

友: 然后定下来。。。

我: 最好委派两个人做架构,你有最后否决权

我: 你来指导

友: 我现在手下没有特别突出的人

友: 只能是这样了

我: 名义上委派也可以,不要把责任都自己抗

我: 要用委员会的形式来设计架构

友: 嗯~~~

友: 明白了

友: 这个方面我会好好的分配一下

我: 架构这个东西就是很难做好,但是人人都想做的东西,我认为从主管的角度来说,可以把架构设计看作一种报酬,而不把它看成一种工作。

我: 从报酬的角度来讲,人人有份是最得人心得。又因为很难做好(因为风险太大),所以人人有份可以降低风险

友: 有道理

友: 再多说点这方面的知识

我: 不要划分模块,而要以讨论会得形式又大家来决定模块和接口。

友: 嗯

友: 我基本上是这么做的

我: 因为接口改变(或者说架构改变)是很累人得,也很得罪人。所以由大家决定,要怪也只能怪大家。

友: 只不过是我先提出来一个模块,在进行大家讨论

我: 还是由别人提出模块,你再修改比较好。

友: 问题是我这里没有其他的人可以做这个事情了

我: 最好让人接受了你得意见,还认为是自己得意见。

友: 嗯~~~~

友: 有道理

我: 形式是很重要得,否则别人难免会有想法。

我: 最好没有痕迹的让别人认为架构是自己做的。

友: 是啊。如果软件开发过程中,一些不必要的想法不存在会节省很多的人力

我: 必要的时候可以妥协,放弃自己好的设计,用别人差的设计。关键是要大家一致。

友: 嗯

我: 我的理解,从管理的角度,可以认为架构设计的过程的目的是搞定人心的,而不是技术上追求完美。

友: 帅哥,这个话太酷了

我: 我可是认真的啊

友: 昨天我刚看到这样一句话:

友: 构架就像政治一样,是处理各种不确定因素的艺术

友: 看到你说的话,我就想到了上面这句话

友: 我也是很认真的

我: 如果让大家自由讨论架构设计,一定会有不统一的意见。只要你善于搞平衡,多恭维大家,多妥协,多哲衷。最后就是大家很开心,也达到了一致。至于架构本身的质量也不会太差的。

友: 有道理~~~~

我: 哈,我和他的意思很接近嘛。我的意思是把架构设计变成搞政治

我: 关键是你自己要置身事外。

友: 你也是大师阿

友: 嗯

我: 肉麻

友: 8-)

我: 委派别人搞架构(或者说接口),人越多越好。就怕你图后来图省事,不能坚持委员会的形式。

友: 嗯

友: 有时候我觉得是为了统一,我会用我的权力来规定

我: 基本原则就是接口要简单和少。你可以让他们搞出接口来,你再砍掉一半的接口。

我: 你最好作为仲裁人体现权威。

友: 嗯

我: 就是大家争论不下了,你让大家各让一半,互相妥协。

友: 这样可能会使大家都伤士气的

我: 自己作为争论的一方搅进去会很累的

我: 表面上没有争论不一定就是没有士气啊

我: 实际上士气完全取决于大家对你的看法

我: 有不同当面说出来总比埋再心底好。

友: 有道理

我: 表面上没有争论不一定就是有士气啊

友: 嗯

友: 我完全赞同

我: 实际上做仲裁很简单的,连脑子都不用动,就是让大家各让一半

我: 互相妥协嘛

友: 我觉得管理者最重要的事情就是让大家有干劲

我: 对啊

友: 其次才是项目

我: 这样对项目也是最有利的

我: 因为项目是高风险,所以要使用讨论+妥协的办法。

友: 嗯

友: 项目的讨论是非常必要的

我: 不到万不得已,不要发表自己的意见

友: 嗯

我: 最好永远不发表

友: 这个不是这样的,你不发表,你就没有权威了

友: 我觉得妥协,就是发表。。。

我: 对,

我: 我的意思是有时候要放弃自己正确的意见

我: 就是为了妥协。

友: 妥协也是一种另类的一种表达你的能力,证明自己在项目当中的位置。

我: 我的意思是力排众议这种事情最好避免

友: 嗯。。。

我: 而应该反过来做。

友: 明白。。。

我: 你抓抓质量控制就可以了。

友: 嗯

我: 质量控制你可以看《测试驱动开发》

友: 好,一定看

我: 以测试来驱动开发的质量

我: 你只要抓住测试这个环节就可以了。

友: 嗯,这个我完全明白

我: 这本书讲了一个很重要的道理,就是测试是开发的命脉。

我: 重要到测试应该比开发还要优先。例如,先写测试代码,再写开发代码。

友: 测试是开发的命脉?可惜我现在对测试的了解太少了

友: 看样子我该马上看这本书了

我: 不是单元测试,是一种基于断言的自动测试(比断言要高级一点的技术)

友: 哦~~~~~~~~

友: 《测试驱动开发》是谁写的

我: 大家进行设计的时候你要把关,尽可能使用结构化的设计,不要使用面向对象的技术。kent beck

友: 嗯

我: 尽可能少地使用继承,多态

友: 这个我知道

友: 嗯

我: 访问数据要通过函数,不要直接访问,做到这样就可以了

我: 其余的自由发挥

友: 这些都是封装性不好的表现

我: 对

友: 我不过限制个性的发挥

友: 我希望他们在一定的基础上,自由的发挥

我: 嗯,主要是考虑到大家的c++水平,

我: 多态,继承用的不好很容易写出难改的代码的

我: 这是c++容易出错的地方。

友: C++水平是我最担心的一个问题

友: 我这里只有一个C++程序员

我: 没什么好担心的,把C++当成结构化的C,质量肯定是有保证的

友: 好

友: 我明白了。。。

我: 到编码开始的时候你应该把精力放到开发过程的自动化方面。

友: 这个是什么意思

友: 没有明白

我: 现在开发不是都有ide的嘛?

我: 这实际上不利于多人合作。

友: 是的

友: 嗯

我: 你可以通过脚本(dos下的bat文件可以),命令行编译器,makefile,将构建和部署的过程完全自动化。也就是说,只要点一次鼠标就可以把构建和部署完成。

我: 我的意思就是每日构建了。

友: 哦~~~~~

友: 有点高深

我: 这比写代码简单的多了。

友: 我在这个方面没有什么研究哎

我: 只要会写dos bat文件就行了。

友: 哦

我: 比如说,你的应用程序要使用两个dll,一个exe。

我: 现在有三个人开发

友: 嗯

我: 打开visual studio

我: 编辑,再按build按钮。

友: 对

我: 最后再把这些东西拷贝到一处,打包,对吗?

友: 嗯

我: 现在就是要求你完全不使用任何带gui界面的程序,写一个简单的脚本程序。双击这个脚本程序,就把所有的事情都做了(包括打包)

友: 明白了

我: 这是业界流行的管理技术,我们这都是这么做的。

友: 好技术阿

友: 明白了

友: 深受启发

我: 意思就是你不要陷到开发过程衷去,假设你是个编程白痴,连visual studio也不知道,该怎么管理呢

我: 点击鼠标一次总会吧

友: 呵呵

友: 会

我: 这个技术很有用的,不需要编程基础,实际上具体脚本编写也可以委托别人来做。你只要提要求就可以了。

友: 嗯

我: 关键就是你得站在管理者得角度

我: 假设自己什么都不懂,但是要有最简单轻松得办法进行质量控制。

友: 站在管理者的角度...

我: 所以你就要尽可能剔除过程中人得因素。

友: 俄

我: 我指的是人的负面因素,所以要自动化。每天得工作就是点且只点鼠标一次就可以了。

我: 你每天得工作就是点鼠标一次。

友: 嗯。。。。。。。

友: 要做到上面的过程,看上去很简单

友: 实现起来恐怕就很难了

我: 对啊,到后期你的管理工作就是点鼠标呗。

我: 怎么会难呢

我: 就是先做什么后做什么

我: 得一个单方向得脚本,连if得逻辑都用不到

我: 比vb都简单。

友: 这个是在前期的开发工作基础上实现的呀

友: 前期的开发工作的质量监控比较难

我: 所以从开发得第一天就开始集成啊

我: 这是自然而然结论啊

友: 这个就是每日构建阿

我: 根本没有系统集成这种大得阶段

我: 从第一天就开始系统集成了。

我: 呵呵

友: 有点懂了

我: 你要假设自己是编程白痴啊

我: 你会的唯一得管理工作就是点鼠标

友: 看样子在要好好的实践实践

我: 难道前期你能放弃管理吗?

友: 不能

友: 绝对不能

我: 所以从编码得第一天就开始系统集成。

友: 嗯~~~~~~

我: 如果办不到就让他们想办法啊。否则就是你放弃管理(因为你只会点鼠标)

友: 大受触动

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有