• 互动社区采访


    一、前言

    首先,很荣幸接到互动社区的采访邀请,感谢老师们的支持与鼓励。

    在接受采访的同时,也正好也能借此机会让自己总结一下本学期

    软件工程》的收获与自己的不足。

    二、采访内容

    问:

    学习软件工程这门课你有哪些收获?你认为通过这门课程学习到的知识、技能

    或工具是将来走上工作岗位也有用的,请列举出来。

    答:

    在软件工程这门课的学习过程中,我的内心是复杂的,总觉得要做很多我们当

    前所学知识还没涉及到的的领域,如app开发。然而,当一个学期过去后,蓦然回

    首,才发现在这门课程中收获还是很多的,下面我简单地列举几点:

    1.   敏捷开发模式。无可否认,这是一个非常好的开发模式,效率高、任务明

    确、计划清晰、还有利于提高开发团队的士气,模式虽好,但要用好也不容易。

    我下一步计划就是要把它运用到我们团队的实际开发中去,发挥它的实际作用,

    说起来容易,做起来的话就必须得对这种开发模式有深入的了解,毕竟实际开

    发讲的是效益,而非徒劳作秀。

    2.   Github代码资源同步开发。我们平时开发用的代码同步工具是SVN,虽然

    久闻Github大名,但还是软件工程课程让我首次接触了与SVN截然不同的

    Github,Github作为一种新兴的代码同步工具,有着一些SVN所没有的机制

    ,这在开发行业中倍受青睐。SVN和Github同时深度掌握,将会是职场上的

    一大法宝。

    3.   通过博客园等社区平台分享学习成果。毋庸置疑这是大家都掌握了的一项

    技能了吧,在《软件工程》课程学习前,我偶尔也会在CSDN等平台发表一两

    篇文章,但并没有分享学习成果的习惯,我自己也是一个比较喜欢写写东西的

    人,以后会保持这种习惯下去。

    4.   通过学习进度条记录学习进度。在更新进度条的时候,往往能总结最近所

    学,这也是一个很好的习惯,由于最近有点忙,我的进度都没能更新上去,是

    时候注意一下了。

    5.   团队合作、管理作与沟通能力。这是软件工程思想一直强调的东西吧,一

    个大的项目离不开团队的努力,如果一个程序员连如何在团队中发挥最大价值

    都不会,那一定不是一个合格的程序员。

     

     问:

    你们曾经总结了阅读《构建之法》的第8章需求分析的一些体会,你们获得

    成功的作业项目,当时是如何进行需求分析的?

    答:

    我们的选题是自主创业类型的项目,与服务外包不一样的地方在于其没有繁

    杂而正式的需求文档,一切需求得我们自己去挖掘,可以说市场就是我们的需求

    发布者。而我们要做的就是去分析市场需要的是怎样的一个产品,如何定义我们

    的产品才能受到更多用户的青睐。而如何去分析,就要去参考一下《构建之法》

    中的专业方法了。《构建之法》给我的印象就是有很多生动的小例子,还是很好

    理解的。

     

     问:

    从个人开发”、“结对开发”到“团队开发”,感觉有什么不同?对于PM这个角

    色,你们有什么样的理解?

    答:

    从个人开发”、“结对开发”到“团队开发”,给我感觉就是一个愈发体现软件工

    程价值的过程。随着团队成员的增加,如何规范、科学高效地开发开始变得越来

    越重要,这对个人能力也是一个进阶式的考验,从最初的散漫自由的个人开发到

    最后为团队利益发光发热,不知不觉中,自己的团队协作能力就已得到大大的提

    升。

    对于PM(项目经理)这个角色,我感触良多,因为除了无论是在软件工程小

    组还是学校创客中心的开发团队中,我都充当着PM的角色,如何做一名合格的PM

    ,是我夜里辗转反侧思考的问题,我觉得一名出色的PM,要有以下技能:

    (1)有够硬的技术支持。PM,虽然被定义为负责代码开发以外的工作,

    但那是大公司团队的PM,因为他们还有架构师等职位人员。而我们的PM

    ,除了要负责代码开发外的的工作,也要有全面的知识覆盖,能在设计的

    时候就分析出实现难点,从而避免一些可避免的问题。

    (2)能敏锐地发现团队中的沟通问题。我一直认为,队员之间沟通不

    好,是PM的责任。PM需要鼓励队员们沟通合作,实时地观察团队中的

    异常,从而达到亡羊补牢的作用,这一点,我就觉得我做得还不够好。

    (3)懂得捍卫团队的利益。在软件工程小组中可能涉及不到这一点,

    因为小组做的项目偏向于作业的提交,而不需要太过考虑开发成本、版

    权等问题。一个老谋深算的PM,往往需要让团队开发花最少的时间获取

    最大的利益,需要在需求与开发成本中做成一些取舍。例如,某PM接了

    一个十万块的外包项目,项目

    有一个功能模块可能要耗去团队成员价值八万块的劳动力,PM可能

    就需要跟客户那边沟通要不要舍弃这一个模块了,而不是单纯地考虑怎

    样让产品最完美。

    (4)有一定的魄力。 这一点也非常重要,因为在漫长的开发工作中,

    往往会遇到很多分歧问题,而这些问题也往往没有绝对的对于错。也有

    些时候团队成员会因为工作氛围过于自由而散漫放松,这些时候一个能

    hold住场面的PM就是关键了,他需要拿出略为强硬的一面作出一些抉

    择与规定,以利于重整团队的风气,提高开发效率。

    (5)能得民心。古人有云:小成于勤,中成于智,大成于德。由此可

    见没有良好的品德者是无法成大事的,PM有良好的品德,在工作中讲

    究客观务实,才会深得团队成员的心,别人才会真心实意地给你干活。

    这一点,我怕是学一辈子都学不完啊。

    (6)有良好的抗压能力。作为PM,总会承受各种各样的压力,客户催

    进度、老板挤成本、队员闹矛盾、需求改了又改等等,但这些都是无

    可厚非的,人在职场,连一点心理承受能力都没有就很难生存下去了,

    学会自我减压吧。

     

    问:

    在你们的团队开发工作中,有哪些经验是值得分享的?有哪些不足之处是需要改

    进的?

    答:

    我觉得我们做得较好值得分享的地方有:

    1.敢于与其他班同学组队开发。团队开发的出发点本就是为了做好项目,不

    应该只看谁关系好就跟谁组队,尝试把目光放出班外,也许你会发现更多适

    合你队伍的人才。

    2.选题迎合市场。我们选的鲜花外卖平台,是分析过市场需求才定的,建议

    多选这样的题材,那样能更接地气,更多地去了解市场的规律。

    3.利用更多的工具与平台。为了提高开发效率,我们应掌握更多实用的工具

    与平台,如我们项目设计中用的Axure原型设计工具、PowerDesigner数

    据库模型设计工具,项目开发中的SSH框架、Bootstrap框架等。

    当然,我们也有很多不足的地方,如:

    1.没能很好地动员每个成员,让每个成员都投入到开发工作中去。

    2.没能很好地考虑实现性问题,前期想b/s版和安卓版产品都做,后期才发

    现是我们太不现实了,只把精力放在b/s版的开发中,效果会更好。

    3.没能一鼓作气,善始善终。前期进度还是挺快的,后期由于一些原因就使

    项目进度耽搁下来了,这些原因包括我个人的身体问题、课程项目开发中还

    参与了其他的项目开发及比赛,但我觉得最大的问题在于我们不懂得协调时

    间,这个问题需要好好反省一下。

     

     问:

    面对自己不熟悉的技术,你们是如何快速熟悉并完成老师布置的任务的。

    答:

          不熟悉又要用的技术,我们都是现学现用的,看文档、看别人的Demo,在短

    时间能先做到会用,以后有时间再做到理解也不怕。现学现用,谁都知道这是一个

    比较痛苦的过程,总能让人在奔溃的边缘徘徊,但现学现用却是培养自我学习能力

    的最佳途径。依据行业前辈所说,学习能力往往比已掌握知识更重要,进公司往往

    要学习这个公司自己的开发框架,或者某开发方向做不来要能调方向时,又得学很

    多很多的东西。人掌握的知识是有限的,遇到的问题却往往是多方面的,所以一名

    优秀的程序员就要有良好的学习能力,学会“吸星大法”,能轻易地把别人的东西学

    以致用。

     

     

  • 相关阅读:
    jQuery Easing 动画效果扩展
    【百度地图】标注点的动画效果
    CSS3制作404立体字体
    最长上升子序列的回溯 ZOJ 2432
    HDU 1423 最长上升公共子序列(LCIS)
    HDU 1114 完全背包问题的转化
    HDU 1085 多重背包转化为0-1背包问题
    opengl 对投影变化函数的理解
    HDU 1081 DP找最大和的矩阵
    HDU 1274 递归拼接字符串
  • 原文地址:https://www.cnblogs.com/liangzhilin/p/5685419.html
Copyright © 2020-2023  润新知