程序员为何不爱设计?
大多数程序员,都是喜爱编码多过设计。遇到什么问题,首先就是想着上机“试一试",直到碰壁之后,才思考哪里出了问题。
为何程序员不爱预先设计?
我认为是缺乏设计工具造成的。虽然知道设计很重要,但是却缺乏行之有效的设计工具,只能见步行步。
因此,我们不需要一而再再而三的强调设计的重要性,而需要总结一套行之有效的设计工具,以满足设计流程的需求。
面向对象设计是一套工具,但是这套工具和编码环节很接近,属于比较后期的设计工具。
在前期的设计工具就是收集资料,和分析整理资料,甚至是定下我们产品目标,这些内容很重要,而且应该在流程的初期去完成。你不可能说我用面向对象设计软件出来后,才去分析产品的定位。
但是程序员的知识面相对比较狭窄,专业,而对于产品层次的东西往往缺少相应的知识和能动性,但实际上做软件并不是编码为目的,而是以产品为目的,这就要求我们要不就具备相应的产品开发知识,要不就要有相关的专业人员去负责。
如果作为一个独立软件的程序员,应该从整个产品研发流程出发去设计软件。
可以的选择是:
一、模仿他人
二、重新定位
模仿永远是最有效的方法,但是如果对方的条件和你相差太大,模仿是低成效的。
重新定位就要了解行业状况,知道当前产品的吸引力和不足在哪里,然后结合自身条件,才能从中找到切入点。
考虑未来:
产品从研发到生产,需要一段时间,这个时间差可能对产品的定位有很大的影响,需要将时间差考虑进去,为将来开发恰当的产品。
产品的下一代研发也需要相应的时间,这段时间内就是现有产品必须要维持竞争力,因此也需要将这个因素考虑进去来进行产品定位。
提高生产效率,降低成本:
一个相同定位的产品,如果能够提高效率,降低成本,这就能获得更高的利润。在建立定位后,真正可做的不是擅改定位,把一些超酷的功能加进去;,而是保持目标的前提下,不断压缩成本,这是很多程序员不注意的地方,永远想着用最新最酷的工具去开发,而不在乎投入时间和精力,这是有害的。
有些时候甚至不妨降低定位,以获得更低的成本。
建立流程和设计工具:
工具可以是学习得来的,也可以是经验得到的,如果生产者不注重工具和方法,不断以最原始的状态去摸索,必然是低成效的。很多设计工具并不是十分有效。无效的工具会让你大脑一片空白,踌躇不前,失去目标,而有效的工具会让你保持工作状态,不需要反反复复尝试新的方案和路线。
工具不是越多越好,也不是越强大越好,而是需要高的生产效率,低的维护和学习成本。一把小刀的事情不要借助电锯。把刀磨利,把流程总结起来,用可以预见的方式去尽心产品开发。