- 专业主义有很深的含义,它不但象征着荣誉和骄傲,而且明确意味着责任和义务
- 担当责任,“为了按时交付软件,没测例行程序,测试例行程序需要几个小时,当时必须交付软件,因为故障修复部分都不涉及例行程序不分的编码,所以我也担心没有什么不妥”, 因为这个做法,导致了数据丢失,客户疯狂投诉,(这是程序员经常犯的错误)
- 没有人能写出完美的软件,但这并不表示你不用对不完美负责
- 所谓专业人士,就是能对自己犯下的错误负责的人,哪怕那些错误实际上在所难免
- 失误率不可能等于零,但你有责任让他无限趋近于零
- 发布软件时,你应该确保QA找不出任何问题
- 什么样的代码是有缺陷的?那些你没有把握的代码都是!
- 你写的每一行代码都需要测试,这不是在建议,是在要求
- 最好先写测试,再写要测试的代码
- “童子军训练守则”,对每个模块,每检入一次代码,就要让那让比上次检出时变得更为简洁。每次读代码,都别忘了进行点滴的修改
- 参考美国一周工作40小时的标准,你应该计划每周工作60小时。前40小时时给雇主的,后20小时时给自己的,在这剩余的20小时里,你应该看书、练习、学习,活着做其他能提升职业能力的事情,那20小时是为自己的,它将会让你成为更有价值的专业人士
- 每个专业软件开发人员必须精通的事项:
- 设计模式。必须能描述GOF书中的24种模式,同时还要有POSA书中的多数模式的实战经验
- 设计原则。必须了解SOLID原则,而且要深刻理解组建设计原则
- 方法。必须理解XP、Scrum、精益、看板、瀑布、结构化分析及结构化设计
- 实践。必须掌握测试驱动开发、面向对象设计、结构化编程、持续集成和结对编程
- 工件。 必须了解如何使用UML图、DFD图、结构图、petri网络图、状态迁移图标、流程图和决策表
- 坚持学习,不懂就学,不要畏难
- 专业人士会视辅导新人为己任,他们不会放任未经辅导的新手恣意妄为
- 每位专业软件开发人员都有义务了解自己开发的解决方案所对应的业务领域
- 每次开发系统,都应该站在雇主的角度来思考,确保开发的功能真正能满足雇主的需要