《构建之法》第一章术语及书中部分问题解答
• 第一章专业术语:
* 软件=程序+软件工程
* 程序=数据结构+算法
* 软件服务
* 软件架构(Software Architecture)
* 软件设计与实现(Sofeware Design,Implementation and Debug)
* 软件构建
* 源代码管理(Source Code Control)
* 配置管理(Software Configuration Management)
* 软件测试(Test)
* 需求分析(Requirement Analysis)
* 软件维护(Software Maintenance)
* 软件的生命周期(Software Life Cycle ,SLC)
* 软件项目的管理(Project Management)
* 用户体验(User Experience)
* 商业模式
* 职业道德规范
* 软件企业=软件+商业模式
* 计算机科学(Theoretical Computing)
* 程序设计语言(Programming Language)
* 数据库和大规模数据处理(Database and Large Scale Data Processing)
* 人机交互(Human Computer Interaction)
* 软件工程
• 略读《构建之法》列出不懂的问题
1、根据第3章软件工程师的成长46页“d.是否按时交付”中关于程序员是否能按时交付的问题,通过查阅“你如世间春秋”的博客了解“霍夫斯塔特定律”,虽然预估世间和实际时间可以有一定的误差,但是如何才能无限接近预估世间,减少在实际编程过程中出现的一些意外的情况。
2、根据第4章两人合作81页第三段“每个人每天的工作时段不超过3-4小时。结对编程中驾驶员和领航员的角色要经常互换,避免长时间紧张工作而导致观察力和判断力下降。”中所说工作时段不超过3-4小时,但是为什么现在大多数互联网公司都在实行“996”制度,工作时间的加长会对编程人员的编程结果产生影响,为什么不减少工作时间呢?
3、根据第5章团队和流程95页的“官僚模式”真的有利于团队合作么?虽然这种模式分工明确,可以减少员工偷懒的情况,但是在现实中老板和员工的关系会有一层很明确的界限,而这样的团队模式会使整个团队处于一种上下级关系很明确的状态,非常不利于团队之间的合作和团队成员之间的交流;同时这样的团队模式会加长队员之间互相认识、了解的时间,也会延长整个项目的交工时间。
4、根据第8章需求分析161页“例如,不但用户不太能描述自己的需求,有时候开发者也陷入固定的‘产品导向’的思维,开发网站的,就认为用户一定需要一个网站;开发移动应用的,就认为用户一定需要一个App”如何准确理解客户需求减少客户与研发人员之间的冲突,“2018年某公司程序员认为产品经理提出不合理的需求而对产品经理大打出手,最终导致两个被开除”,从这个案例可以看出需求的表达对于程序员和产品经理之间的关系是非常重要的,所以如何处理好产品经理和程序员之间的需求关系?
5、根据第12章用户体验260页“好的用户体验当然是所有人都想要的,如果它和产品的质量有冲突,怎么办?”正如文中所说好的用户体验往往要伴随高的产品开发成本,但是一旦开发成本产出预算产品质量就可能上不去,所以如何协调好用户体验和产品开发成本之间的关系呢?
• 对手机软件分类及分析
对腾讯视频、优酷视频、微信三款软件的分析
1、这三款软件通过社会口碑及使用频率吸引我(陌生人)成为他们的用户; 目标都是盈利;目标都是赚取用户现金。
2、这些软件都是通过下载到我手机;当时上大学一年级;例如微信的使用频率较高,多用于日常交流及接收学校下发的通知 等,优酷视频的使用频率相较于腾讯视频高一些,下载腾讯视频是为了观看只有腾讯视频有版权的电视。
3、这些软件通过用户反馈及自行搜集处理一些bug;并通过应用市场或者进入软件式的更新提示更新版本。
4、例如腾讯视频和优酷视频可以通过购买版权或者丰富自身软件的视频量来吸引用户。