zoukankan      html  css  js  c++  java
  • 《构建之法(第三版)》第三章

    3.1 个人能力的衡量与发展

    1.软件开发流程不光指团队的流程,还包括个人开发流程。把每个人的工作有序地组织起来,就是团队的流程。“有序”,并不是“无争论”。每个人的工作质量直接影响最终软件的质量。

    2.初级软件工程师成长阶段

    • 积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力)
    • 积累问题领域的知识和经验(例如:对医疗或金融行业的了解)
    • 对通用的软件设计思想和软件工程思想的理解 (较虚)
    • 提升职业技能(区别于技术技能):职业技能包括:自我管理的能力,表达和交流的能力,与人合作的能力,按质按量完成任务的执行力。
    • 实际成果:绝大部分软件工程师的工作成果都是可以公开的,所参与的产品用户评价如何,市场占有率如何,对用户有多大价值?在其中起了什么作用?

    3.软件开发的工作量和质量的衡量标准

    • 项目/任务有多大?
    • 花了多少时间?
    • 质量如何?(可以用缺陷的数量来除以项目的大小,如 5 Bugs / KLOC 意味着每千行程序有5个缺陷)
    • 是否按时交付?

    软件领域可以分为两个方面:一方面是技艺创新的大爆发;而另一方面是坚持不懈的工程工作,包括软件的改善、维护和测试等,这一方面占了90%-95%的比例。对于这些任务,一个成熟的软件工程师应该能够降低任务交付的时间的标准差。在团队工作中,稳定、一致的交付时间是衡量一个员工能力的重要方面。

    3.2 软件工程师的思维误区

    软件工程师在开发过程中会走很多弯路,对软件的模块之间的依赖关系的极端态度都会导致延迟交付。

    • 分析麻痹:想弄清所有细节、所有依赖关系之后再动手,心理上过于悲观
    • 不分主次,想解决所有依赖问题
    • 过早优化:在局部问题上陷进去,无视此模块对全局的重要性
    • 过早扩大化/泛化

    3.3 软件工程师的职业发展

    1.如果我们对职业有认真的态度,就可以发现很多证明个人能力的方式。

    2.需要有一些核心技术和许多扩展的知识,并在实际工作中不断学习和不断成长:

    3.“不精通”者会把时间花在解决低层次问题上,所以要通过不断的练习,把那些低层次的问题变成不用经过大脑的自动操作,然后才有时间和脑力来解决较高层次的问题。有了工程基础,再去谈高层次的“科研”。

  • 相关阅读:
    Linux Shell脚本编程实用技巧
    Transmission在Pandorabox(Openwrt)下的交叉编译
    Pandorabox下关于vsftpd匿名访问的设置
    PandoraBox下部署阿里云(aliyun)DDNS动态域名更新(shell脚本)
    win7系统封装小记
    CF R#295 (DIV.2) E. Pluses everywhere
    CF R#295 (DIV.2) D. Cubes
    CF R#295 (DIV.2) C. DNA Alignment
    winform在线操作office--dsoframerocx第三方控件
    Dapper操作
  • 原文地址:https://www.cnblogs.com/Jspo/p/8440443.html
Copyright © 2011-2022 走看看