第1章 商用工程开发思路
1.1 系统分析初步
有关系统分析的内容,在很多教科书上都有较为详细的描述。系统分析几乎是所有程序开发行为的**步。但是,商用工程程序员对系统分析应该有一些独特的理解,很多时候,商用系统分析与技术其实没有太多关系,更多的与沟通和合作有关。
1.1.1 需求理解和沟通
以笔者通常面临的商用数据传输工程来说,这类系统,一般都是指借助网络(局域网或互联网),通过多台计算机的协同工作、共同提供资源、共同分摊loading,*终为客户实现一个或多个服务需求的商用工程项目。
因此,商用工程的程序员在接到用户需求的时候,*忌讳的就是马上从编程的角度开始思考,这个功能如何实现、那个模块如何编写。那只会把事情越弄越糟,*后导致不可收拾。
笔者一般秉持的习惯是,系统分析期间不涉及细节,先相信所有的细节是能实现的,以后再考虑风险点细节。
提示:程序界很多年以前就在争论,一个程序,自上而下编写(即先搭框架,逐步细化)和自下而上(先解决所有技术难点,做出底层模块,再来拼接)哪个好的问题。在商用工程中,笔者的经验,一定是自上而下。试想,连用什么平台和语言开发都没有确定,如何自下而上?
接到需求,程序员要做的**件事情应该是理解需求。大家不要以为笔者在说笑话,在实际工作中,笔者就遇到程序员把需求完全理解反了的例子,还有的程序员干脆挑着看,对于自己熟悉的需求实现得很好,但不熟悉的干脆什么也没做。
因此,即使程序员接到的是一个小小的模块,也应该认真对待,在理解需求的时候,建议首先仔细看产品相关文档,如需求分析报告、系统设计书之类的文档,然后和自己的上级,可能是组长,可能是部门经理,也可能是项目经理,做一次面对面的直接沟通,讨论一下自己的模块在未来产品中究竟处于什么地位,它的优化方向是空间优先还是时间优先,有没有特定的算法需求等。
……