• 2005-04-29

    业务和技术

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/1150446.html

    沉重的翅膀——软件开发,业务?技术?

    银狐999找了一个很好的话题,一个前行中的程序员如坐针毡的话题,他的讨论难以让我大呼过瘾,却开了一个好头。在《自娱自乐》中,我多少触及了这个敏感的话题,Killvin朋友质疑了我的部分观点。当时之所以写出那样的观点完全是来自我的自我反省,之前的几年时间里,我过于将自己的精力集中在技术上,而忽视了业务在软件开发的重要性。其中的那些刻薄言语,与其说是写给别人看,倒不如说在教训自己。

    万事都有起因,软件开发的起因就是业务需求。失去了业务,软件也就是失去了其依托的基础,成了无本之木。而对于业务而言,技术并不是绝对的必须。失去了交通工具的人们至少还有两条腿。但技术却可以让效率得到极大的提升,进而开拓人们的视野。失去了交通工具的支援,恐怕大多数人便无法了解外面的世界很精彩。业务和技术好比算法和优化,错误的算法会让最优秀的优化失去意义,而在相同的算法情况下,优化能力就可以清晰体现程序员功力的差异。

    开发一个软件的目的多半是为了帮助某些用户更好的提高工作效率,创造更大的价值。而这一前提是有人拥有这样的技术,可以帮助用户来做这件事,程序员大多数时候扮演的就是这样一个角色。因为不同的人有不同的关注点,用户最为关注的自然是他所需要的功能,在他们眼里,迷一样的程序员拥有完成各种功能的能力。而程序员的关注重点是技术,但却不能只了解技术而不关心业务,否则我们的程序根本就是无从着手。任何软件开发都存在业务,或许你会把OS、编译器甚至科学研究作为反例举出来,那只不过是因为它们的业务恰好和我们通常认识上的技术重合罢了,正是因为这样,这些领域才会被人认为技术含量比较高。

    之所以我感觉银狐999的讨论不过瘾,因为他举的所谓“技术”的例子没有什么分量,架构、重构、设计模式这些东西都是程序员的基本技能,而运用开源框架不例外。做该做的事当然不会让人感觉有分量可言。做技术有两种方式,一种是做开拓的技术,无论是科学研究,还是某些改变程序员开发方式的技术都可以归于此类,另一种是运用别人技术,使用开源框架大多归于此类。前一种人做技术是为别人的技术铺路,后一种人做技术,一方面可以为人创造应用,另一方面如果进行技术改进的思考,一不小心就会迈入前一种人的行列,可谓进可攻,退可守。做技术最大的快乐在于创造,前一种人自不必言,后一种人如果不能通过自己创造的应用得到快感,那做技术也就失去了前进的源动力,这也是现在许多程序员的痛苦所在。

    虽然对程序员而言,业务和技术都很重要,但把努力五五开是不现实的,因此必须在二者之间进行抉择,选择自己的侧重点,而影响人们选择的根本在于利益。选择了就要坚持,不管在哪个方向,只有成为专家才有赢得人们尊敬的可能。选择技术,并不代表放弃业务。软件开发中最重要的一种思想就是抽象,不断提高自己的能力,就是应该提升自己的抽象能力,这样,才能站在一个更高的角度来看业务,让自己的技术有更大的适用度。

    分享到:

    历史上的今天:

    规则思变 2004-04-29
    引用地址:

    评论

  • 那就是PM啊,关注需求也关注技术.其实两方面都要精通几乎是不可能的.专业的事交给专业的人来做,细化分工.
    回复青蛙说:
    没错,是不可能都精通,所以要有侧重,但不等于完全放弃。
    2005-05-12 17:26:28
  • 来捧个场吧,谢谢

    http://falaosao.blogbus.com/
  • 利益,是政治的目的.



    其实这个这个翅膀并不沉重,只是不愿面对,因此程序员是个弱势群体
  • SP!
  • 你的blog很少更新了,也缺少了"技术"的成分,看起来很不过瘾:(



    其实业务和技术本身就是天平的两个极端,你可以成为技术专家也可以成为领域专家,而这样的两类人物却总是说着不同的"语言",我倒是觉得能够成为一个中间人是很有意思和挑战的事情。
    回复Killvin说:
    因为最近写blog不是很方便加上一直有些事情,所以写的相对少了一些。

    我最近也感觉技术写得少了一些,我愿意接受你的建议,多写些技术。毕竟咱是干这个的,这是安身立命的本钱。

    中间人多数情况下是由技术这边成长出来,而且事实上,我的讨论也是站在技术的这边——广义上的。我的观点是,应该都关注,但不同的人侧重不同。
    2005-04-30 08:48:05