<!----><o:p></o:p>
作为开发者,你会写技术方案吗?<o:p></o:p>
<o:p></o:p>
作者:胡长城<o:p></o:p>
网名:银狐999 <o:p></o:p>
主页:http://www.javafox.org<o:p></o:p>
信箱:james-fly@vip.sina.com <o:p></o:p>
Blog:http://javafox.blogdriver.com<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
有次和TRS产品经理马先生聊天,他说我改行去做售前合适,原本我以为他开玩笑,因为我对售前的工作兴趣不大(我一直认为我是个developer)。后来,找了个机会,见面聊了聊,他一语道破了原因:他竟然觉得我适合写技术方案——很有意思的感觉。
<o:p></o:p>
没想到,最近真的在写技术方案了(还好,没有转行)。耗费了两多星期的时间,总算“攒”出一份技术方案后。自己都用攒这个词了,可见这份技术方案的水分多大——有必要说明的是,方案中有关产品架构设计到没有多大的水分。——还有必要说明的是,这里所说的技术方案,不同于以往的什么技术架构设计之类,是有些偏市场行为的
<o:p></o:p>
很多人说,这样的技术方案,应该是项目经理或售前所属的工作范围,怎么也挨不着软件开发者什么事情啊?——原本我也是这么认为,甚至有时候很讨厌写文档。原先我也认为:我可以跟随theserverside,跟随javaworld,跟随java.net这些最新的技术趋势;我也可以在Together,在coding中快意的遨游。现在看来,过去的思绪有些狭隘了。
<o:p></o:p>
在这两个星期中,越来越感觉到。作为一个软件开发者,能够书写方案(或者说技术方案),应该是必须的,也是必要的。偶尔写写,受益匪浅。
<o:p></o:p>
作为一个开发者,我想至少需要三个基本要素:精通、思考 与 创造 。精通表示至少需要在某一个领域内基本功非常扎实;思考就需要不断的审视过去的成就;创造就需要不断的有发展的眼光——其实有时候,这三个要素是很难统一的,过分的关心新技术和新思维,会让很多人失去了埋头苦干的耐心;而过分的扎进某一个领域而不能拓展思维,久而久之也会变得呆板。——我比较喜欢把精通放在第一位。其实,国内目前的整体软件水平,需要更多更多“精通”的人。
<o:p></o:p>
下面就从自己的这次写技术方案的感受,来跟大家说说,为什么需要“学会写技术方案”——最直原因,可能就是说:大家都不希望一辈子只是重复的编码吧——要做一个真正的“Software Developer”。
很多人会说“讨厌编程”,特别是很多女孩子(哈哈,软件行业的第一线总是表现的重男轻女)。——其实,编程真的很枯燥吗?恰恰相反。
有关这个“编程枯不枯燥的问题”实在不应该在这里提,改天转门写篇文档探讨一下,以正俺们“Software Engine”或“Software Developer”的腰。
<o:p></o:p>
<o:p></o:p>
对软件行业发展趋势的把握<o:p></o:p>
对软件行业发展趋势的把握,似乎有些托大了。可能很多编程人员会说,他会非常关心最新的技术,什么AOP,什么IOC之类的——这些当然也很重要——半年的淡漠就意味着落后;一年的松弛,就意味遗忘——所以大家都在拼命的学。
但是,技术的发展是原因是什么呢?也许我们也应该思考思考:
是“客户的需求在纵深、扩张”;是“应用得领域在挖掘”;“是开发模式在变更”;“是软件概念在细化”。一句话,技术的革新是由于很多原因的碰撞,是软件上层领域的发展的必然产物。
可能这就是我们常说的:有些人在玩市场、有些人在玩需求、有些人在玩概念、有些人在玩技术。
<o:p></o:p>
可能提到“软件平台化”,大家都知道。但是有多少人能够较为清楚的描述当前“软件平台的层次划分”呢?能够描述出为什么会诞生“模型化业务基础软件平台”呢?为什么“中间件回会向软件基础架构平台演变”呢?
<o:p></o:p>
作为一个软件开发者,不光需要扎实的技术基本功(这是必要条件),还需要“抬起头,望前看”。
<o:p></o:p>
<o:p></o:p>
对产品所定位的市场把握<o:p></o:p>
这个观点估计会让很多人疑惑——软件开发者为什么要关心市场呢?
大多人可能都会形成“领导决策----CTO把握-----产品经理控制----系统分析架构----软件技术”之类的思想或领导层次定位,随意然的就认为市场的需求仅仅是领导们的事情,软件开发者只需要根据领导的决策和定位,研究出产品即可。——这种思维,是多么的悲哀——这样的思维,才真正的扼杀了一个开发者的灵魂。
一个软件产品的价值,不在于其有多么高深的技术,而在于其可以为客户解决什么问题?
所以,一个开发者,在开发产品的时候,除了需要考虑技术问题,还需要考虑这个产品所投放的市场特性。
<o:p></o:p>
<o:p></o:p>
对产品的软件层次定位的把握<o:p></o:p>
这个观点可能就很容易理解了,一个软件必须有自己适合的定位层次。世界上没有绝对完美的产品,但是在不同的层次,却有着不同得突出的待解决问题;于是不同层次的产品,就解决了不同的问题——于是,客户的需求就这么被不同的层次划分,一点点的解决。
所以,作为一个软件开发者,应该清楚地了解自己的所开发产品所属的层次、定位。
<o:p></o:p>
说到这儿,似乎和主题到底有什么关系呢?和技术方案有什么关系呢?——如果你去写技术方案就可以很容易理解:首先需要描述一下这个软件行业的发展趋势,因为这个趋势,所以某某产品是顺应时代发展需求的(先戴个高帽子),然后,某某产品定位在某个市场,为什么定位在这个市场啊,有多大发展空间啊(又是戴高帽子)·····
<o:p></o:p>
天啊,似乎在教唆老实巴交的软件开发者们去投靠奸诈、吹嘘的炒作中吗?去玩弄玄乎的概念吗?——写到这儿,自己都觉得有些害怕——大家应用看到软件发展的方向,看到可客户的需求,看到很多很多本应该看到的东西。
<o:p></o:p>
<o:p></o:p>
对产品的竞争的把握<o:p></o:p>
如果一个产品没有了市场竞争,那么它就不能良性的发展;如果一个产品融入了太激烈的竞争,那么它就有可能被残杀;所以,一个开发者在开发产品的时候,一定要抱着这样一种思想:做一个超越竞争对手的产品!——那么,怎么样才能有这样的思想呢?《孙子兵法》曰:知彼知己、百战不殆!
不过,目前国内的市场状态不尽如人意——好的产品未必有好的市场——大家自己思索吧,点到即止。
<o:p></o:p>
<o:p></o:p>
--------------------------------------------------
到此差不多要结束了。本来列的几个方面还包括“对产品多需要解决问题把握”,“对产品的特点把握”,“对产品的体系把握”,不过这几个方面不说也罢,说个题目大家估计就明白一切了,没必要啰里啰唆的。
其实,文章最主要想表达的意思是——作为一个Software Developer,应该把眼光放远些,除了技术,还有很多也很重要的东西。
要做一个发展的Software Developer。<o:p></o:p>
分享到:
相关推荐
Spring MVC如何灵活地集成各种丰富的视图展现方案? Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗? Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处? 如何在Spring的...
Spring MVC如何灵活地集成各种丰富的视图展现方案? Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗? Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处? 如何在Spring的...
智能云平台需求书及技术方案 智能云平台需求书及技术方案全文共16页,当前为第1页。智能云平台需求书及技术方案全文共16页,当前为第1页。 智能云平台需求书及技术方案全文共16页,当前为第1页。 智能云平台需求书及...
spring mvc如何灵活地集成各种丰富的视图展现方案? spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗? spring acegi安全框架在用户验证和授权机制的实现上有何过人之处? 如何在spring的...
计算机网络、操作系统、数据库、数据结构和...掌握Java基础和高级特性,能够助力开发者构建稳定、可扩展的软件解决方案。 综合这些技术领域,可以构建坚实的计算机科学知识体系,为职业发展和技术创新打下坚实基础。
Spring MVC如何灵活地集成各种丰富的视图展现方案? Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗? Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处? 如何在Spring的...
Spring MVC如何灵活地集成各种丰富的视图展现方案? Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗? Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处? 如何在Spring的...
Spring MVC如何灵活地集成各种丰富的视图展现方案? Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗? Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处? 如何在Spring的...
Spring MVC如何灵活地集成各种丰富的视图展现方案? Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗? Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处? 如何在Spring的...
spring mvc如何灵活地集成各种丰富的视图展现方案? spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗? spring acegi安全框架在用户验证和授权机制的实现上有何过人之处? 如何在spring的...
如果你心仪 Lin,却又因为技术栈的原因无法即可使用,没关系,我们会在后续提供更多的语言版本。为什么 Lin 要选择前后端分离的单页面架构呢? 首先,传统的网站开发更多的是采用服务端渲染的方式,需用使用一种模板...
目前市面上的技术解决方案众多,但是ShardingProxy作为一个前沿的分库分表技术,其特性及应用更受业内人士及Java开发者的青睐。本文首先深入讲解了ShardingProxy的部署和使用,比如映射设置,数据库代理服务部署,...
, Spring MVC如何灵活地集成各种丰富的视图展现方案?, Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?, Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处?, 如何在Spring的基础上...
2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也...
2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也...
本设计成功实现了基于1-W器件是软件加密技术的研究方案,论证了利用1-W器件作为软件加密技术的“软件狗”和其硬件序列号作为软件加密机器码的可行性和可靠性,是作为共享软件加密方的良好方案。 关键词:软件保护;...
作为一个精品资料,该文件包含了详细的技术规划指南、实施步骤、预期成果以及案例研究,为城市规划者、技术开发者和政策制定者提供了一套实用的参考框架。无论是对于正在启动智慧城市项目的组织,还是希望升级现有...
在本文中,我将带大家从0到1自主研发一套Flutter动态化框架,并深入掌握跨平台动态化解决方案,助力你在跨平台技术上有质的飞跃。 一、首先,我们先来认识Flutter: Flutter是Google开源的构建用户界面(UI)工具包...