论坛首页 软件开发和项目管理版 敏捷开发

软件开发工具谱

浏览 11550 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2004-10-19
to potian:
是的,XP 的核心其实就是交流和实践。Martin Fowler 的 UML 那本书比三友的书更适合入门者(好像某种技术的发明人写的书都不如别人写的更适合入门)。以前在一本杂志上看过 Martin Fowler 和一些专家讨论如何在 UML 2.0 中为 UML 减肥的问题。感觉思想和 XHTML 1.1 有些类似,就是加以模块化,分成基本部分和高级部分。绝大多数场合下,基本部分就够用了。
   
0 请登录后投票
最后更新时间:2004-10-19
我个人一直认为,白板属于交流工具,而不属于开发工具。否则这么说来,笔,纸,黑板,甚至随意选择的标识,还有语言的表述都算是开发工具了。这样,纯粹是一种泛化,或者说一种阿Q似的工具讽刺论了。
    工具始终是一种辅助,如同方法论也是辅助一样,它们只是为了使达到一个目标更加简便,更加快捷,或者更加稳健,如此而已。盲目放大,抑或动则贬低,都毫无意义。
   
0 请登录后投票
最后更新时间:2004-10-19
potian 写道
少了最重要的工具,比上面的所有工具都重要:

1 白板一块
2 若干支白板笔

XP的话还有第三和第四重要的

3 小卡片若干
4 WIki软件一个


白板和粉笔当然很重要。 当年我们项目成立的时候第一件事就是买了一块白板。

但如果说它最重要,未免过头。 如此说来, 发明计算机, 汇编语言, C 语言, C++, java , UML , 都没有发明白板重要。 我们倒退回原始社会得了。

我知道你的意思是强调交流。 UML, java , ...都是交流用的语言。

你们在项目实践中使用 wiki吗? 主要用于那些方面?
   
0 请登录后投票
最后更新时间:2004-10-19
to armlinux-w:
软件开发重要的不在于工具,重要的在于沟通(不必引用某大师的话了,以免又被人骂,说我不会说自己的话),以及掌握了足够的工具(多少算足够?每个人的感觉不一样,我认为有了 Eclipse、Tomcat、Ant 我就可以做很多事情了)后满怀激情地投入战斗。否则即使装模做样地使用昂贵的工具画出一些很漂亮的图形有什么用呢?

重要的是解决问题和创造的欲望(一种真实的 will,今天就要做些实实在在的事情,否则你就要危险了)。连凤舞凰扬都承认工具其实只是起到辅助的作用,你难道真的要把所有这些工具都用熟了才能开工做些真正有意义的事情吗?

Wiki 的用途?你自己用起来不就知道了吗?问这么多干什么呢?potian 的经验难道可以直接照搬到你们那里吗?
   
0 请登录后投票
最后更新时间:2004-10-19
没有人 写道
to armlinux-w:

重要的是解决问题和创造的欲望(一种真实的 will,今天就要做些实实在在的事情,否则你就要危险了)。连凤舞凰扬都承认工具其实只是起到辅助的作用,你难道真的要把所有这些工具都用熟了才能开工做些真正有意义的事情吗?



说得很好。
你少写了一种欲望,求知的欲望。
源于 analysis paralysis, 我发明了一个词, 叫 learning paralysis。 意思是学个不完, 什么都没时间做。
   
0 请登录后投票
最后更新时间:2004-10-20
armlinux-w,你理解的是我一部分的意思,但我这个可不是隐喻,我到过的每一个项目几乎到最后都出现了白板笔写完的情况,以至于开发人员之间的交流出现了不必要的问题,所以这个工具必须要大力强调

如果你把UML列在上面,就没有理由不把白板和白板笔写在上面,并且绝对应该把白板和白板笔写在UML前面,这是我的真实意思,UML可以没有,但白板和白板笔不可以没有,UML没有照常做项目,但是白板和白板笔没有,项目的交流绝对就会不够畅通(当然分布式开发有异地的白板也很好)。

风舞飞扬,Eclipse和Idea为什么比其他开发工具更好,就是因为他对代码的支持,特别是重构的支持更好,所以他能够更好地表达促进程序员自己和自己的交流,以及程序员和其他程序员之间的交流,现代的IDE为什么更好,譬如他们的COdeInsight能够让框架和方法库的内部结构和程序员更好地交流,仅此而已

版本控制工具为什么好,因为他们能够管理团队内部的交流,能够促进程序员之间进行团队合作,并且对这些合作以版本的方式管理,以冲突的方式体现,仅此而已

OO为什么更好,因为它能够让程序员以更接近问题领域的方式进行描述,它能够促进程序员和领域问题之间的交流。它能够促进程序员和计算机之间以更加抽象的方式进行交流,仅此而已

什么是开发工具,开发工具就是交流和记录工具,交流是第一位,记录是第二位,仅此而已。什么是程序活动,社会和技术活动,先是社会,然后才是技术,仅此而已
   
0 请登录后投票
最后更新时间:2004-10-20
potian 写道
armlinux-w,你理解的是我一部分的意思,但我这个可不是隐喻,我到过的每一个项目几乎到最后都出现了白板笔写完的情况,以至于开发人员之间的交流出现了不必要的问题,所以这个工具必须要大力强调

如果你把UML列在上面,就没有理由不把白板和白板笔写在上面,并且绝对应该把白板和白板笔写在UML前面,这是我的真实意思,UML可以没有,但白板和白板笔不可以没有,UML没有照常做项目,但是白板和白板笔没有,项目的交流绝对就会不够畅通(当然分布式开发有异地的白板也很好)。

风舞飞扬,Eclipse和Idea为什么比其他开发工具更好,就是因为他对代码的支持,特别是重构的支持更好,所以他能够更好地表达促进程序员自己和自己的交流,以及程序员和其他程序员之间的交流,现代的IDE为什么更好,譬如他们的COdeInsight能够让框架和方法库的内部结构和程序员更好地交流,仅此而已

版本控制工具为什么好,因为他们能够管理团队内部的交流,能够促进程序员之间进行团队合作,并且对这些合作以版本的方式管理,以冲突的方式体现,仅此而已

OO为什么更好,因为它能够让程序员以更接近问题领域的方式进行描述,它能够促进程序员和领域问题之间的交流。它能够促进程序员和计算机之间以更加抽象的方式进行交流,仅此而已

什么是开发工具,开发工具就是交流和记录工具,交流是第一位,记录是第二位,仅此而已。什么是程序活动,社会和技术活动,先是社会,然后才是技术,仅此而已


因为沟通很重要,所以你看什么都看到沟通的存在。 正如一句老话:
如果你只有一把锤子, 那你就会把所有的东西当作钉子。

我们做一个类比:
    +-*/;计算
    =:沟通

    思考:计算
    发言:沟通

我不知道谁更重要, 我难以取舍。

在说一种情况:
招聘时有两个程序员;
一个非常愿意沟通,乐于共享自己的技术知识与经验, 但是一天只能写20行程序。
另一个沟通少,不是什么时候都愿意共享, 但是一天可以写500 行代码。
你招哪一个呢?
   
0 请登录后投票
最后更新时间:2004-10-20
1st one,
很有可能着20行代码都是有效的,而他产生的作用可能不止20行
第二个我认为他500行代码都不一定能用而且他不会对其他人产生什么影响,因为他的代码不是在有效沟通的情况下写出来的,也不一定是对的
   
0 请登录后投票
最后更新时间:2004-10-20
谢20行代码和500行能证明什么问题?500行代码一定比20行代码管用?

简单举个例子,如果你不善于沟通,你一开始就把客户的需求理解错了,那你还做什么,做得越多,就浪费的越多,你不善于沟通,你就越晚发现自己的问题,错的就越离谱。你说做软件是不是需求第一位,技术第二位?

在一般情况下,越善于沟通的,善于和客户沟通需求、善于和其他程序员沟通设计的,在同样的技术能力下,写的有效代码就越多,沟通得越频繁,好处就越多,这就是我认为交流能力、交流的频度要放在技术能力、技术细节之前的原因。当然不是说技术不重要了,而是说没有有效的沟通,技术越好,就越有可能脱离团队的合作行为、偏离客户的需求。

软件开发是一种协作游戏。
   
0 请登录后投票
最后更新时间:2004-10-20
你在偷换概念。
我说的20行和500行当然都是指的高质量代码。
而不是 copy paste 大量冗余的代码。

我想说的是, 你很难选择, 在软件开发中我们会面临很多矛盾的选择和折中,一个好的软件工程师善于辨证的思考问题的各个方面,根据不同的情况进行权衡和折中。 简单的强调一个方面,不免犯了片面和简单化的错误。
   
0 请登录后投票
论坛首页 软件开发和项目管理版 敏捷开发

跳转论坛:
JavaEye推荐