<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[阿Tim日志]]></title> 
<link>https://atim.cn/index.php</link> 
<description><![CDATA[专业的php开发者.开发团队的带队人]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[阿Tim日志]]></copyright>
<item>
<link>https://atim.cn/post/50/</link>
<title><![CDATA[软件项目中存在的问题 ]]></title> 
<author>bkkkd &lt;partybase@gmail.com&gt;</author>
<category><![CDATA[开发应用]]></category>
<pubDate>Mon, 20 Feb 2006 12:32:37 +0000</pubDate> 
<guid>https://atim.cn/post/50/</guid> 
<description>
<![CDATA[ 
	<p><span style="FONT-SIZE: 12px">      在学习《软件工程》前，我个人倒是着实作了点项目，个人做的和团队合作的都有。但无论是个人做或是团队合作，给我印象最深的就是分工不明，虽然这种组织项目开发的方式快速，但与此对应所带来的恶果常常是混乱和持续不断的错误，并使得开发热情迅速消耗殆尽，最后变成了磨洋工。学了《软件工程》之后，觉得自己的思路开阔了不少。不过对于《软件工程》中所说的知易行难，所以结合自己的经验和当前的主流思想，总结了一些自己在做软件项目中所遇到的问题。<br /><br />　　在软件项目中经常会遇到以下几个方面的问题：<br /><br />       1. 需求不充分同时经常变更；<br />       2. 缺乏与客户的沟通；<br />       3. 团队内部沟通不畅；<br />       4. 不必要的复杂度；<br />       5. 团队工作缺乏效率；<br /><br /><br />　　上面的第1条好理解，因为这是软件项目成败的基础，还软件是用来干什么的都没搞清楚，那么怎么可能指望它能得到客户的满意呢？为什么会出现需求不充分这种情况呢？主要有两点原因：其一是客户常常自己不能明确地了解自已的需求；其二是就算客户有能力了解一个复杂系统需求的所有细节，他也可能不知道如何有效地组织需求文档。同时就算是在项目开发将近结束的时候，仍会发现新的需求或是要进行需求更改。比如随着程序开发过程的深入，客户对亿们需要什么有了更清楚的了解；客户认识到最初的需求无法满足他们的需要；客户在需求阶段可能提出了一些他们并不真正需要的需求，然后在开发过程中又不想要了；客户需求的改变；客户方的职员或经理发生变更，由于想法不一致，导致需求的改变等等。<br />　　第2条也比较容易理解，因为要准确定义需求是一项困难的工作，因此，与客户保持开放和有建设性的交流是很重要的，那样做可以确保你所做的工作正是客户想得到的。一定要通过与客户的交互来完成需求分析。另外，每个项目都是从一些不完善的信息开始的，对于项目将如何进展也是处于一系列设想之中的。通常在随着项目进度的展开，这些设想将不得不进行调整，你和客户将分担这些调整所带来的影响，因此交流的结果最终必须达成协议。<br />　　第3条主要是当开发人员增多时，每个开发人员也相应地要与更多的人进行同步，根据《人月神话》这本书上所指到的那样，开发人员的增长，会导致团队里用于沟通的信息量呈二次级数增长。不畅的沟通有两种：太少或太多，太少会导致不能消除系统分歧，太多则浪费太多时间在协调而非代码开发上。<br />　　第4条的复杂度增加会占用大量资源和时间进行开发、维护和扩展，从而导致团队工作越来越繁杂且收效甚微。当一个程序规模扩大，内部交互增多时，就会使出错的机会增大，且这些漏洞在开发过程中难以发现。同时复杂性还会导致代码的难以理解。一个项目一般包含很多组件，当构件数目增加时，就会增加每个组件与更多组件交互的机会。当交互数量大大增加时，就不太容易理解程序正在做什么，也使得没有人能够修改或扩展这个程序了。<br />　　第5条是在开发中很常见的，因为没有哪个程序员是通过培训成为团队成员的，学校里也不会教学生如何参与团队系统的开发。作为团队成员，沟通、协作和建立共识的技能比个人的编程技能要重要得多，这对于学校出来的程序员来说是认识不到的，他们通常认为自己能写出没有毛病的代码，同时觉得别人的代码都不够完美或严谨。沟通、协作和建立共识是花时间且没必要的，他们崇敬的不是杰出的团队成员，也不是什么团队领导，而是个别有创造力的程序员。而结果是他们的代码难以理解并潜伏着错误，同时带来的问题就是开发时间的延长。<br /></span></p>
]]>
</description>
</item><item>
<link>https://atim.cn/post/50/#blogcomment6</link>
<title><![CDATA[[评论] 软件项目中存在的问题 ]]></title> 
<author>小生 &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sat, 25 Feb 2006 04:53:21 +0000</pubDate> 
<guid>https://atim.cn/post/50/#blogcomment6</guid> 
<description>
<![CDATA[ 
	向其它地方度找返来咖<br/>觉得很有意思
]]>
</description>
</item>
</channel>
</rss>