四. 代码的艺术的应用
........
五. 项目文档
正确认识项目文档
项目文档的重要性
- 提高沟通的效率
- 提升对思考过程的管理
设计,是在纸上或其他媒介上,对恰当的体系结构和算法的选择,抽象和记录
项目文档的常见误区
- 写项目文档是在浪费时间,项目时间紧,没时间写
- 没写需求和设计文档就可以开始写程序
- 这是个简单的项目/问题,不需要写文档
项目文档的常见问题👍
- 没有接口设计文档,会导致多人协作出现问题.很多项目都缺乏正规的接口设计文档,由于接口设计文档的缺乏或不准确,经常会降低基于接口所做的开发的效率
- 项目文档没写好,多次反复讨论同样的问题,对于在项目进展过程中已经明确的结论和思路,如果没有及时通过文档做准确记录,那么经常会在后面被反复提起并重复讨论,从而浪费了过多的时间
- 没有系统总体架构文档,了解系统的成本高.参与项目的每个人都只能通过阅读代码来了解系统的全貌,而且还不一定能够准确地理解
- 项目缺少文档,会导致新人无从入手,在人员变动时不便于交接,项目的信息只能依靠口口相传,而这种方式在信息的完整性和准确性方面都存在很大的问题
- 项目缺少文档,会导致团队内的沟通效率低下,在大多数的情况下,每个人只了解自己所负责的一小部分工作
- 缺少项目文档,会造成自己工作上的困难,很多人都有这样的经历:一个项目在做的时候想得很清楚,但是如果没有项目文档,在两个月后自己也记不太清楚很多细节
什么时候需要写项目文档
在项目文档内容上的选择上,可以遵循一下的原则:凡是不那么显而易见的地方,最好都留下文档
项目文档时写给谁看的
项目文档是写给别人看的
抛开其业务和技术方面的因素,可以从一下几个方面评价一份项目文档的质量👍
- 能否让阅读者在5分钟内看懂,好的文档通过准确的标题,清晰的段落,可以让阅读者快速掌握文档的主要思想
- 能否做到问题清楚,重点突出,逻辑清楚.大部分文档其实实在做分析问题,解决问题的工作.在文档中提出的问题要准确,多个问题间要明确重点并理清问题间的逻辑关系
- 能否做到言之有物,文档的内容结构式通过分析得到的,而不是靠套用模板得到的
- 能否做到言简意赅
- 能否避免别人的误解,不要说模棱两可的话,比如大概,可能之类的,第二点是要注意自己的表达是否通俗和规范
项目文档的基本规范
- 封面
- 版本历史说明
- 编写说明
- 文档版式
项目文档的编写
编写顺序
在编写文档时,可以先采用自顶向下的方式,首先列出文档的一级标题提纲,在针对每个一级标题列出子问题作为二级,三级标题;之后针对每个标题编写具体的内容
标题拟定
- 标题样式的使用
- 标题拟定
- 标题的典型错误
段落编写
问题划分
表述模式
- 分析和解决问题
- 提出建议
- 系统的设计
- 程序的设计
项目文档中的图片
项目文档评审
项目文档存放
项目文档编写工具
如何提高项目文档编写能力
- 多看好文档,人的能力提升,很多时候受到的潜移默化的影响.要提高文档编写方面的能力,就要多阅读优质的内容
- 多写,只有通过不断的练习,才能真正体会到这些方法发用途和细节之处
- 多改和多写配合起来,最可行的方法还是自己给自己挑毛病,在不断修改的过程中,写文档的能力会慢慢得到提高
- 多相互评审.他人的评审有助于看到自己看不到的问题,看一遍别人的文档,对自己来说也是很好的训练
六. 做研究
什么是研究
- 去识别,定义那些最重要的问题,并解决
- 研究的一个重要意义是去探索所有的可能性
- 研究就是要去做创新的事情
如何做好研究
发现问题
有两种方法可以用于问题的发现
- 综述一个方向的发展现状,通过对现有研究成果做调研和梳理,有利于把握方向的全貌,在这个基础上,可能会发现其中存在的问题,也可能发现前人还没有尝试过的方法,这些都会带来研究的空间
- 从自己的亲身体会去发现问题.在工业界,这样的情况有很多,在工作中很有可能碰到一些现实需求,可能当前的系统或算法无法满足这些需求,对这些需求进行抽象和提炼就能形成很好的研究问题
分析问题
- 注意概念和逻辑
- 分而治之和分类比较
- 假设和场景
解决问题
- 优先解决重要问题
- 可先尝试解决简单的问题
- 学会做取舍
做好研究的必备素质
- 关于做人
首先,只有保持心情愉悦才能做好研究,其次,要时刻注意全面地发展自己,最后,对于一名研究者还要保持好奇心,感知力和想象力 - 关于做事
首先,要从消失做起,其次是要勤奋的工作,再次是要有团队精神,最后要加强沟通 - 关于做学问
作者说王国维人间词话中所说的三大境界
七. 项目管理
重视项目管理
相关概念
项目
项目是在一定的约束条件下,具有明确目标的一次性任务
对于一个项目有四个基本要素:时间,范围(目标),成本,质量
项目管理
项目管理是指,为了使得软件项目能够按照预定的成本,进度和质量要求顺利完成,而对人员,产品,过程和项目进行分析和管理的活动
项目管理的目的是让软件项目在整个软件生命周期内,在预定成本内按期按质地完成,最终交付用户使用
项目四要素间的关系
项目管理的过程和步骤
项目管理的四十字总结:
- 规划和启动,责任明确,周密策划,实事求是,质量第一
- 执行和监控,沟通协作,严密跟踪,控制风控,打出节奏
- 总结和回顾,做好总结,不断提高
八. 项目沟通❤️
项目沟通的重要性
项目沟通方式及对比
面对面沟通
对于有一定复杂读的问题,应该优先选择面对面沟通
面对面沟通存在一些先天的劣势
- 语言传递的准确性较低
- 对图形信息的传递能力较弱
- 传递上下文的能力较弱
- 存档能力很弱
- 对参与沟通的人的干扰性是非常强烈的
为了克服如下的劣势,应该要注意
- 尽量使用准确的概念
- 可以使用一些辅助工作来传递图形信息或保持沟通的连贯性
- 讨论后做好纪要
- 对于面对面沟通,尤其是多人沟通,要尽量提前预约
电话沟通
电话沟通是面对面沟通的一种退化形式,相较于面对面沟通效果会大大折扣,幸运的是现在有很多基于网络的电话会议系统,来增加沟通的信息共享
会议沟通
会议邀请
会议时间的选择
会议准备
- 会议的议题
- 希望达成的目标
- 会议待讨论的内容
会议的主持
会议的纪要
远程会议组织
避免被会议绑架
IM工具沟通
对IM工具的使用建议
- 对于复杂的问题,应该采用面对面或电话会议的形式
- 正式信息应该发送Email
- 注意大群中的群发言
Email沟通
在处理海量邮件方面,这里给出以下的建议
- 要努力保证主收件箱的可读性,收件人应该保证在主收件箱中可以随时并很容易地看到新的重要邮件
- 要利用好Email工具提供的邮件过滤机制
- 要建立好易于过滤和分连的邮件,例如可以建立专门的邮件组或者建立特殊的标题前缀(如项目周报,个人周报....)
网友评论