1 首先,了解自己。这样才能知道,哪些是与机器打交道的人是可以做到的,而哪些是不能做的
2 知识结构中,一定要对计算机这个"二进制编码系统"有所了解,所以为什么好多C/C++大师人物,推荐学习汇编和现代计算机体系结构
    因为,虽说现代的优化编译器很好,但是从另一个角度来说,我们所做的所有编码任务最终要被映射到计算机硬件(这个经过"预编码的二进制系统",而且硬件本身也有缺陷)环境上,所以这样有助于了解程序到底做了什么事,有助于写出便于调试和优化的代码。
3 C++语言各个特性对设计产生的影响
4 数据结构、算法的熟悉,这是基本功
5 确定目标,人员的,与时间表,尽可能早的让市场人员参与进来,所以建立一些个release point and demo
6 让项目相关人员一起讨论,统一口头词汇,一些行业背景概念,建立技术规范说明书(不宜晦涩难懂),统一技术词汇,要有个大家都能接受的代码规范说明,和命名规则,以及一些必要的原则,尽可能多的在这个阶段吧每一项都化为白纸黑字。
还有,最重要的是工作内容的量化评估系统!
7 模块划分时,考虑参与人员的数量和任务分配,如何使他们有利于分配到自己每一天的任务表中。考虑与代码管理系统的整合关系
8 良好接口所拥有的特征审查表: (你会发觉,只要当你不断调整你的借口定义来满足以下四项中的三项时,代码重用性很好,因为这是个符合人性的定义,便于记忆!)
    a 功能的正交分解
    b 最小化的接口
    c 最明确的函数调用语义
    d 最适合的出错检查机制

9 实现接口时,同时写一些用户代码,以此检查功能正确性和用户端代码的编程范型。由此,推动良好接口的产生
10 在接口中写下定义这个接口的初衷,它的产生需求,以及限制与开发状态(实现完成度)
11 那些不能用代码描述的接口,就该化为文档
12 尽可能引诱那些愿意使代码高质量的程序员参与进来
13 接下来... ...精益求精ing