• 《构建之法(第三版)》第三章


    3.1 个人能力的衡量与发展

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

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

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

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

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

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

    3.2 软件工程师的思维误区

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

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

    3.3 软件工程师的职业发展

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

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

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

  • 相关阅读:
    python---基础知识回顾(九)图形用户界面-------Tkinter
    python---基础知识回顾(八)数据库基础操作(sqlite和mysql)
    python---重点(设计模式)
    python---基础知识回顾(七)迭代器和生成器
    python---权限管理和菜单生成
    python---基础知识回顾(六)网络编程
    python---基础知识回顾(五)(python2.7和python3.5中的编码)
    CustomProgressBar
    android-square-progressbar-legacy
    AnimImageView
  • 原文地址:https://www.cnblogs.com/Jspo/p/8440443.html
Copyright © 2020-2023  润新知