程序员的自我修养----软件工程思想

    机房结束后便开始看软工视频,看同学博客,看参考资料,现下,就把自己的理解与大家分享一下。

    关于软工的定义和参考资料千千万,每一份都如人类个体一般,虽然表现形式和穿戴不同,但内在机能和核心思想大体是一致的。我看了很多同学的软工博客,不得不说,同学们学到很多,无疑我也偷到很多,使我在开始学习之前便有了雏形化的认识。之后看完了董军老师的《软件工程的思想》,这是本很棒的书,它告诉了我们”如何做软件“和”如何做程序员“。

    每一个优秀的程序员都是一个自傲的怪胎,他们从心底抵视非专业的项目经理。要让软件项目失败很容易,(1)项目经理无知。(2)程序员消极。软工的思想不是为了告诉我们如何做一个合格的程序员,而是如何去完成好开发,从一个管理者的角度看问题,而要成为指挥官就必须要技术最好,了解软件开发的每一步和核心,这样才能使团队发力。

    作为 项目经理要明白,软件开发是为了什么?既不是为了体现超时代的科技进步,也不是为了表现程序员的独具匠心,软件开发的目的是为了提高质量和生产率,最终方便用户,为人民服务。从经济学角度简单来说就是,更有竞争力,更多市场份额,更多经济效益。开发是具有目的性的,就像你不会无缘无故的倒在陌生人的车前。一个没有针对性的开发者,他所领导的只能是一群程序员,而不是开发团队。而不懂软件工程思想的程序员,只能是个合格的编程员,而非开发员。想要成为项目经理,就一定要学会可行性分析,不仅是为了使开发具有现实意义,更是为了自己。

    可行性分析的目的很简单——能做吗?能做好吗?它大致从四方面进行工作:经济,技术,社会环境和人。你或许可以这样理解,作为一个社会人,当有人托付给你一件事情时,你会想到我有好处吗?这件事能做到吗?别人会怎么看待这件事?自己有能力完成吗?大致就是这些。

    当你确定去做一件事时,接下来就该考虑如何去做好的问题了。那么问题就来了,如何做好呢?答案是:需求分析。这是一件很简单的事。即知道用户的要求,然后满足他。就像是开飞机一样。起飞---知道目的地---然后开就行了。可能有人不住的笑了,事实上也是这样。开飞机的问题是不会开,需求分析的问题是不知道需求,或者需求不确定。解决问题的第一个条件都不能满足。屠龙勇士再厉害,没有龙,该怎么办?答案很简单:去问。如果一个公司有三种人:人才,人,人渣。无疑人才负责方向,人负责 实施,人渣负责交流。如果客户可以明确自己的要求,那就直接实施;如果连客户自己都不清楚或需求不实际,那么就要靠“专业人士”去引导去启发。总之核心围绕用户就对了,就像你为老板忠心,也是为了老板的工资嘛。就像小米的总裁雷军所说”我们做的不是产品,是用户“。软件开发同理。

    接下来的问题就更简单,知道要做什么了,接下来就是做的问题了--设计与实现。如果你是人,那你就只需考虑如何去实现的问题。如果你是人才,那你考虑的问题就多了。既然是团队那么肯定水平会参差不齐,性格会五颜六色,有的适合攻坚克难,有的适合安守固本。一款好的软件,20%是创新,80%是“守旧”。而人才的问题就是什么人是这20%,什么人是这80%。关于人如何去实现的问题后面会谈到,毕竟要想成为人才,首先必须得是人。

    做完了上述几步那么软件开发就要迎来最重要的阶段了----测试。说它重要是因为它可以检验之前工作的质量。就像董老师说的:是生孩子的 过程重要呢?还是孩子重要呢?答案当让然是孩子了。毕竟孩子质量传承自上。如果孩子能健康成长,那起码以后养老时就不费力了。测试同理,只有符合要求且正确使用的软件才能使我们继续得以生存。关于测试的方法和要求准则有很多。就不一一介绍了。

    软件工程的最后环节是维护与再造。多的也不说了,毕竟你把软件制造出来,那么为了以后更好的发展,就要对他进行一系列的维护与升级。

    这就是我理解的软件工程思想。篇幅不算小,但还是很难说出一些实质性的技术问题。只有一些理解或巨人的经验吧。  



你可能感兴趣的:(程序员,开发者,软件工程,雷军,技术与思想交融)