做第一个项目的感受

erlengzi2003 2004-04-28 08:01:07
现在以及大三了,很幸运去年通过了高级程序员,但我知道这并不代表什么?好的一点是能够赢得学校老师的赞赏。 很快,我就接到了老师委托给我的第一个项目,——题库管理系系统。

在刚开始的时候,我很有激情,觉得自己已经得到了一次不错的锻炼的机会,心里好象也对这个系统大抵有个谱, 我开始利用一些工具(visio)开始设计这个系统, 没有做分析工作, 好象这个系统并不需要做什么分析工作,需求已经和明了。

自己煞有介事的画了几张图,想好了要采用什么技术。于是我就开始动工了。 我很投入地做了一周,很顺利,似乎也有点进展。

一周过后, 我的思想变得比较复杂起来, 由于这个系统全部是由我一个人做,也就是从分析、设计、编码、测试, 也不是个人英雄主义,只是在这样的学校找不到合适的合作伙伴。 我开始讨厌编码,因为有时候一个简单的功能实现,都好花费很长一段时间,觉得自己的时间好象花得不值得。 还有我的系统是基于WEB的,所以还有很多时间放在对于显示界面的修饰上。 真的很烦躁! 但我必须坚持把它做下去。 同时我也有一种感觉, 就是不知道这个系统将会是个什么样子, 很模糊起来!

系统开始变得比先前想象的要庞大, 要烦琐, 开发起来的心情也不像以前那么愉悦了! 不知道为什么,这还是个小项目呀! 可能是我接触过的开发项目实在太少了, 可我不希望第一项目会变得糟糕。

我停顿了一段时间,时间是一周, 后来我的思绪又开始清晰起来, 我完全明白自己这个系统要做个什么样子出来,于是我又继续起来, 只是现在的进度已经很缓慢了, 可能是没有激情了! 经常要修改数据库结构, 工作时常因为心情不好而中断。 我很想尽早完成这个项目, 可我真的陷入了一种摸名的忧愁中, 希望各位前辈给我点建议。
...全文
360 46 打赏 收藏 转发到动态 举报
写回复
用AI写文章
46 条回复
切换为时间正序
请发表友善的回复…
发表回复
erlengzi2003 2004-05-08
  • 打赏
  • 举报
回复
我感觉这里的环境好过学校里的环境!

学校里多的是理论专家。

而且他们也只对理论感兴趣。

当然,我觉得理论还是比较重要的,看一本好书(比如《数据库系统概念》)比听一个老师讲课明白的东西要多!可能各个学校的情况不一样,我所待的这个学校真很适合自学。
py3cn 2004-05-08
  • 打赏
  • 举报
回复
“学习能力和交流能力”正是我所欠缺的
你为何不去问学校的老师,是不是老师水平的问题,就在你身边。我以前学结构化编程时就是老师指导的。有一句话叫做“听君一席话,胜读十年书”,这是我当时的感受.
erlengzi2003 2004-05-05
  • 打赏
  • 举报
回复
to py3cn(杨飞) :

人的发展有不同的阶段,有谁会去耻笑自己前一阶段所产生的一些不太成熟的思想?我不知道你所处的是什么阶段,是不是你很希望ozzzzzz(希望敏捷)当你的导师?

我可不认为自己是在纸上谈兵,因为这是我在做项目中的真实体验,我把这种体验尽量准确地描叙出来,希望能够在这个坛子里获得一些教益。 我很赞同你的观点, 有人指导确实是有帮助的, 但是我们不应该依赖于指导,我们可以依赖自身的学习能力和交流能力来使自己取得成功, 其实取得‘指导’(我姑且同意你的这个词语),也就是变相的取得交流的成果。 为什么一定要相信别人比自己强呢? 人只有依赖别人的能力才能够成长吗?

在论坛上,别人有能力给我建议,如果我对解决某个问题有能力,也会去给出我的建议,这不应该叫指导,应该是交流。
robbit2002 2004-05-05
  • 打赏
  • 举报
回复
ozzzzzz真能出马吗?
我还想有这个机会来请教他呢
py3cn 2004-05-05
  • 打赏
  • 举报
回复
需求是面向用户的,定义软件的价值
py3cn 2004-05-05
  • 打赏
  • 举报
回复
我认为实践中有人指导非常有利于提高,erlengzi2003(二愣子) 我给您提个建议:请ozzzzzz(希望敏捷) 做导师实际参与您的项目,不过,那要看ozzzzzz(希望敏捷) 有没有时间,呵呵,不要在这纸上谈兵了
erlengzi2003 2004-05-04
  • 打赏
  • 举报
回复
我个人认为,需求只是在需要的时候才写,这些需要表现在:
1、开发中交流之便;
2、开发中澄清问题本质;
3、便于后期维护。

对于1、3中理由都上老生常谈的话题,我想解释的是第二点理由,有时候我们在开发项目的时候,在刚开始可能对于各种问题都能够用清晰的头脑来分析,对于各种情况都能够了解透彻,但是在项目进行当中可能会出现很多意想不到的问题,这些问题也许是与项目相关的,也可能是与项目不相干的,但是这些问题确实会影响你的心情,加之项目开发的旷日持久,会使人的心力减弱,这个时候很难免会是自己的思维不再清晰,对于以前所做的分析也许会报有悲观的印象,这是很正常的。如果能够在开始的时候以文挡的形式将分析的过程和分析的结果记录下来,在后来出现挫折的时候再来回顾也许会给你重新带来信心。

但是也不是绝对必须的。对于个人完成的项目也许不存在交流问题;对于有能力的开发者,需求分析的文挡化没有必要,反之太注重形式也许会压力开发者在开发过程中的创造力;有些项目也是不存在后期维护的问题的,因为项目所实现的业务逻辑很稳定。

一点拙见,望接着讨论。
czhcc 2004-05-04
  • 打赏
  • 举报
回复
“经常修改数据库结构”,就说明你的设计有问题,再敏捷的方法,也不能总是修改数据库结构吧?
py3cn 2004-05-04
  • 打赏
  • 举报
回复
不要以为简单就可以忽略不计
py3cn 2004-05-04
  • 打赏
  • 举报
回复
我认为需求是一定要写的
py3cn 2004-05-04
  • 打赏
  • 举报
回复
我也正在自已一个人开发一个项目:软工的书买了几本,最经典的要数<<敏捷软件开发 原则、模式与实践>>,我自已说不出来啥,但是这本书是给我启发最发最大的
shadow22 2004-05-04
  • 打赏
  • 举报
回复
楼上的说得真好,收藏学习.
ghostmirror 2004-05-04
  • 打赏
  • 举报
回复
看了大家的帖子,还真是受启发

我和楼主一样,也是大三得学生
前段时间也做了一个项目,刚开始设计的时候希望方方面面都考虑倒,然后就可以很轻松的完成任务,
可是倒实际却不是那样,技术和经验方面的原因,实际开发中出现了种种问题
最后还是想ozzzzzz(希望敏捷)说的那样,先解决一些核心功能,其他功能是慢慢添加上去的

ps: 本来设计的时候想的是 代码复用 和程序有个好的架构, 好的扩展性,可倒最后程序
写出来的时候,与原来的想法相差的太远。。。。 :(
ozzzzzz 2004-04-30
  • 打赏
  • 举报
回复
节奏可以说是一切工程的根本控制元素,没有了节奏就没有控制,就没有了把握局面的能力。软件工程我们要看重的是工程这两个字,它告诉我们软件工程是工程学,是实践学,而不是理论学,更不是杂技学。
任何理论如果你不能掌握,不能很好的使用到软件工程中,那个理论就不是软件工程的,而只是一种理论。我们作项目首先考虑的是怎么把项目完成,然后考虑怎么把项目按照要求完成,最后考虑的是怎么把项目更好的完成。而不是要你考虑是不是合乎不是理论,合乎什么说法。
采取一种务实的态度,有条不紊的,按照一种可控制的节奏进行工作,才是一种软件工程的方法,别的都是扯淡。
erlengzi2003 2004-04-30
  • 打赏
  • 举报
回复
因为条件限制,我每天只有一次上网的机会。

今天上来看,发现又多了怎么多的建议,真的好高兴,以上网友都给我对我很有启发意义的建议,真的收益非浅。

我现在意识到,在开发项目中,对于我们这些没有什么经验的‘新人’来说,很缺乏的就是分析问题本质的能力,以及以清晰的头脑分析现实中具体存在的问题。比如我原先对于,自己对项目失去激情而感到很沮丧(这种感觉确实是开发项目的进度变得缓慢),我把这种情况归结为自己设计上的疏漏以及对项目的整体不够了解。但是仔细想想,情况也不见得是这个样子,也就像ozzzzzz(希望敏捷)所归结的那样,这中间是掺杂有感情上的自然变动的因素,想想真的不可能从头到尾都保持激情,所以出现失去激情的情况也不足为奇怪;另外,我们都还没有什么经验,所以在初次做项目的时候,很容易受到软件工程理论的牵制,好象自己做的一些活动,不像软件工程理论中所描叙的那样有条不紊,那样的严谨,也就觉得自己在做不规范的活动,这样自己的激情也就因为这种玄差而下降。所以有时候比较自己的开发方法和活动与软件工程理论中所提到的方法和活动,就有点自惭形秽,也像 MH2o(小涛) 所体验的——“感觉自己的代码像垃圾”。听取了这么多的建议让我明白,这个阶段不应该遵守教条主义,而应该多体察自己的能力,分析实际存在的问题,这样做好象是可取的,至少我现在的心态已经过度到这种认识上来了,而且我的系统也在每天一点一点的有所进展,确实这种节奏感使我减少了许多忧虑。 但是,在这个过程中,我们真的就不应该去理会那些软件工程理论思想吗? 这样想似乎也不对呀! 难道软件工程理论就失去指导意义了吗? 难道从事软件产品开发、项目开发、系统开发都是一个实践的过程吗? 难道我们就不能够试图把一些经典开发方法,设计思路应用到自己目前的系统中来吗?

我是个心急的人,在心态上的确存在问题,就是对于做事情,急于有所成就,我也曾经在这个坛子上把自己的这种心态描叙出来,当时也有很多网友给了我很多建议。 但是心态问题始终是个问题, 不可能因为别人对我说了句中听的话我就会有所改变,别人可以在25岁的时候通过系统分析员,那么我就要在比他年轻的阶段得到这个荣誉。我的情况是,心急与积极进取两种并存,我并没有因为心急而使自己的生活变得很糟糕,而是经常要跟自己的这种心态做斗争,我经常对自己说的话就是:“饭是要一口一口吃的”。同时也因为存在这种心态而经常导致问题的出现。 在这件事情中, 我想到的不是一定要把系统做的很成功,很完美,当然我还是希望那是最终的结果, 我希望的是在这个过程中能够使我学到更多的东西,使我更快的成长。

erlengzi2003 2004-04-30
  • 打赏
  • 举报
回复


"可控制的" 这个词用的很好,我也觉得是这么回事, 因为我在刚开始规划数据库的时候,的确觉得对于达到前面规划使其能够灵活应对以后可能出现的变动以及数据库的的稳靠性,这样是很难做到的.当然如果有经验的人可以会做得好一些,但是基本上也是遵循这样的方法, 关键是建立一个可用的,可控制的数据库结构使其能够满足你目前所理解的系统需求以及稍微考虑以下将来的可能需求变动,这样就能够使你的系统雏形早日形成. 你所承受的压力也会减轻不少. 至于以后确实出现的变动,甚或是很严重的,关系到系统存亡的变动,那个时候只能够面对这种变动,如果要做出牺牲那也是没有办法的事情,毕竟在没有经验的情况下有时候是很难避免这种代价的付出. 每一个问题都会成为宝贵的经验,但是想全部回避所有的可怕问题,确又是很幼稚的,不现实的.正如:0zzzzzz所言,即使项目延期或者失败,客户也会因为你这个项目所遵循的开发原则而得到一点有用的部分. 这是很重要的!

MH2o 2004-04-30
  • 打赏
  • 举报
回复
说真的这个项目的开发过程并不是我所能控制的,我能做的仅仅是服从命令罢了!所以有很多事情不是我想做就可以做的,现在我也在思考目前项目的一些问题,希望好好总结一下,但是我又有很多的困惑,所以打算看看资料,在看资料的过程中分析现在这个项目!
redguardtoo 2004-04-30
  • 打赏
  • 举报
回复
正如oz6所说。
因为你是学生,不用搞的很严肃。
一次实现一个小的功能,多测试,慢慢来是关键。

ozzzzzz 2004-04-30
  • 打赏
  • 举报
回复
你先不要去看什么资料,先看看你自己的项目吧。先分析一下现在究竟什么是比较稳定的,也就是你控制比较好的,什么是拿不准的,也就是控制不好的。先把现有的项目进行分析,确立一个比较稳定的结构,作为今后开发的起点。然后确定目前最可以有把握,客户要求也最迫切的功能,进行添加。这样即使最后项目不能按照规定的时间完成,客户也会得到一个至少满足部分功能的东西,这对你对客户都是有好处的。
MH2o 2004-04-30
  • 打赏
  • 举报
回复
有点感觉了,不过还是在心里有个思想上的结没有打开!我想我要继续思考,打算看看着方面的资料。
加载更多回复(26)

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧