`
ww2
  • 浏览: 400613 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

作为开发者,你会写技术方案吗?

阅读更多

 <!----><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技术内幕:深入解析Spring架构与设计原理(第2部分)

     Spring MVC如何灵活地集成各种丰富的视图展现方案?  Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?  Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处?  如何在Spring的...

    SPRING3技术内幕

     Spring MVC如何灵活地集成各种丰富的视图展现方案?  Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?  Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处?  如何在Spring的...

    智能云平台需求书及技术方案.docx

    智能云平台需求书及技术方案 智能云平台需求书及技术方案全文共16页,当前为第1页。智能云平台需求书及技术方案全文共16页,当前为第1页。 智能云平台需求书及技术方案全文共16页,当前为第1页。 智能云平台需求书及...

    Spring技术内幕:深入解析Spring架构与设计原理 1/2

     spring mvc如何灵活地集成各种丰富的视图展现方案?  spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?  spring acegi安全框架在用户验证和授权机制的实现上有何过人之处?  如何在spring的...

    Java 或大数据开发者找工作必备材料

    计算机网络、操作系统、数据库、数据结构和...掌握Java基础和高级特性,能够助力开发者构建稳定、可扩展的软件解决方案。 综合这些技术领域,可以构建坚实的计算机科学知识体系,为职业发展和技术创新打下坚实基础。

    SPRING3技术内幕.z01

     Spring MVC如何灵活地集成各种丰富的视图展现方案?  Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?  Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处?  如何在Spring的...

    Spring技术内幕:深入解析Spring架构与设计原理

     Spring MVC如何灵活地集成各种丰富的视图展现方案?  Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?  Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处?  如何在Spring的...

    Spring技术内幕:深入解析Spring架构与设计原理(第1部分)

     Spring MVC如何灵活地集成各种丰富的视图展现方案?  Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?  Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处?  如何在Spring的...

    Spring技术内幕:深入解析Spring架构与设计原理(第一部分)

     Spring MVC如何灵活地集成各种丰富的视图展现方案?  Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?  Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处?  如何在Spring的...

    Spring技术内幕:深入解析Spring架构与设计原理 2/2

     spring mvc如何灵活地集成各种丰富的视图展现方案?  spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?  spring acegi安全框架在用户验证和授权机制的实现上有何过人之处?  如何在spring的...

    【Lin-CMS内容管理系统框架 v0.3.6】内置用户管理/权限管理/日志系统等常见功能

    如果你心仪 Lin,却又因为技术栈的原因无法即可使用,没关系,我们会在后续提供更多的语言版本。为什么 Lin 要选择前后端分离的单页面架构呢? 首先,传统的网站开发更多的是采用服务端渲染的方式,需用使用一种模板...

    打造专业开发者指南:针对ShardingProxy分库分表解决策略的深度剖析 – 详解部署、使用、服务治理与优化技巧

    目前市面上的技术解决方案众多,但是ShardingProxy作为一个前沿的分库分表技术,其特性及应用更受业内人士及Java开发者的青睐。本文首先深入讲解了ShardingProxy的部署和使用,比如映射设置,数据库代理服务部署,...

    Spring技术内幕

    , Spring MVC如何灵活地集成各种丰富的视图展现方案?, Spring实现远端调用的方案有很多种,你知道它们之间的优劣差异吗?, Spring ACEGI安全框架在用户验证和授权机制的实现上有何过人之处?, 如何在Spring的基础上...

    2020年讯飞开发者大赛温室温度赛道 Top3解决方案完整源码+说明.zip

    2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也...

    2019年讯飞开发者大赛应用分类标注赛第一名解决方案完整源码+说明.zip

    2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也...

    基于1-wire器件的软件保护技术的研究论文

    本设计成功实现了基于1-W器件是软件加密技术的研究方案,论证了利用1-W器件作为软件加密技术的“软件狗”和其硬件序列号作为软件加密机器码的可行性和可靠性,是作为共享软件加密方的良好方案。 关键词:软件保护;...

    智慧城市物联网平台建设方案.rar

    作为一个精品资料,该文件包含了详细的技术规划指南、实施步骤、预期成果以及案例研究,为城市规划者、技术开发者和政策制定者提供了一套实用的参考框架。无论是对于正在启动智慧城市项目的组织,还是希望升级现有...

    跨平台高手必修课-Flutter动态化解决方案实战

    在本文中,我将带大家从0到1自主研发一套Flutter动态化框架,并深入掌握跨平台动态化解决方案,助力你在跨平台技术上有质的飞跃。 一、首先,我们先来认识Flutter: Flutter是Google开源的构建用户界面(UI)工具包...

Global site tag (gtag.js) - Google Analytics