最近半年开始甚是热爱羽毛球运动。在公司和部门的组织下,每周进行两次运动,每次大概2小时,有时候也可能有第三次。最近对羽毛球运动也开始有所感觉,于是不自然地和我的本职软件开发做了类比。

羽毛球的学习过程,非常类似我们做软件的过程。

刚开始,是哪儿有人往哪儿打。对于这点,我妈妈是有说法的。打球嘛,就是娱乐,如果老是调动人,那多没意思啊。嗯,这是典型没有技术的人爱说的话。做软件开发的早期,不也正是如此吗?用户的业务在哪里,就做什么需求。感觉,这就是软件开发初期,所做出的和用户双赢的姿态吧。不过,当我们回过头来看这些的时候,会发现,姿态没有问题,问题在于我们和用户都不够专业!任何一方都只是简单地去和另一方结合而已。

后来,发现光简单打是不行的。最典型的,是要练习高远球。练习臂力、练习体力、练习姿势。做软件也是如此,做到一定的时候,要开始积累技术了,包括软件开发的和市场营销的。练习了内功才能厚积而薄发嘛。我们公司在这方面做得非常好。

再后来,发现还是不行。一和高手过招,就被调得满场跑。对,说起来就是一个意识问题。意识和技术同样重要,在发展的初期,往往会互补互助。技术不行的时候,意识好一点也可以应付。意识不行的时候,技术好,也还凑合。做软件也是如此啊。意识就好比我们的专业知识,技术就是软件开发能力。这两点都是应对新问题和新对手所需要具备的。在市场上,可以同时看到,两点中其中有一点做得好的产品就有一定的生存能力。

再来讲讲策略。拼体力的策略,是羽毛球运动中最基本也是最简单的策略。我们软件开发,也都必须在这个上面练习过关。不管你多么有能力,都必须有足够的毅力和精力来应对用户的无休止的需求变化。在这种情况下,软件开发更可以说是一个艰苦的过程,但正如羽毛球一样,也是一个非常锻炼人的过程。

打空档是一个基本的策略。发现对手哪里位置空呢,就打向哪里。这样,对手往往会走到里引导的方向上去。做软件的策略也是这样。当简单地满足用户的需求耗费着我们大量精力的时候,我们必须找到方法,跳出去!运用我们专业的知识,找出目前用户没有关注到,但又是非常重要的方向,这样,我们可以引领用户的需求。也为我们的体力节省,提供了很好的方式。

压底线是一个非常有效的策略。这在对手的回球能力不行的情况下,确实非常有效。打过去的底线球,会让对手不能顺利回到有利位置。这是典型的使用先进的技术,让用户始终被流行引领着。就如Intel公司著名的摩尔定律。微软公司Office战略也是如此。利用自己的技术领先,完全可以做到这些。Google也正在朝这个方向前进着。

扯动是相持阶段非常有效的策略。来回扯动会让对方在过程中,暴露出空档。只要你能够抓住机会,就会容易抓住主动权。做软件也是如此,但是这很难讲清楚。简单一点,先做起来,然后在做的过程中发现用户的潜在需求。比如先给用户做一些简单的应用。先让用户按照他的业务走起来,然后分析其中有意义之处,随之插入!

当然了,由于我的技术没有达到顶级的,因此更高层次的策略我不一定能够理解。但我相信策略层次的东西,往往是想通的。平时的一些对比思考,也让我借助一些明白的事理反过来理解一些未知领域的意识层次的东西。

这篇文章,也许并没有带给你什么新的思想。但是我希望你也能如同我的思路一样,用生活地方式去理解我们决定用一生去奋斗的事业:软件工程。

转载于:https://www.cnblogs.com/ohmyjava/archive/2007/06/13/2141891.html

羽毛球 vs. 软件开发相关推荐

  1. 博世中国创新软件开发中心 BCSC

    Bosch China Innovation and Software Development Campus 博世中国创新软件开发中心 BCSC Welcome all CSDN friends to ...

  2. 【软件工程】RUP与软件开发5大模型

    软件开发的5大模型 1.瀑布模型:按照人的思维一步一步的开发下去,如果需求分析得当,每个阶段顺利,结果还不错! 2.快速原型模型:后来人们发现,自己不可能一下子就把所有的需求搞清楚,总是在开发的过程中 ...

  3. 【快速上手mac必备】常用优质mac软件推荐(音视频、办公、软件开发、辅助工具、系统管理、云存储)

    本文章的主要内容是我作为一名大四学生.准程序员.up主这三种身份来给大家推荐一下 mac 上好用的软件以及工具.本人也是从去年9月份开始从windows阵营转移到了mac阵营,刚开始使用的时候,也曾主 ...

  4. 一则android软件开发工程师的招聘信息

    岗位职责: 从事Android平台的客户端软件开发 任职资格: 1.一年以上Android平台开发经验: 2.两年以上Java开发经验: 3.熟悉Android开发架构和API调用: 4.熟悉HTTP ...

  5. ubuntu14.04如何在线安装eclipse以及C/C++开发组件,搭建软件开发平台

    在ubuntu14.04操作系统中进行C/C++软件开发,需要安装eclipse以及CDT等各种组件,下载安装包一一安装,之后再进行各种配置可能比较麻烦,在这里推荐一种在线安装方式,安装配置较为方便. ...

  6. (广州)软件开发定制服务,工作流引擎 OA 库存管理系统

    本人专注于工作流的研究设计同时提供软件开发定制服务,工作流引擎 OA系统 库存管理系统 如果有机会合作共事请联系:15817167503(本人在广州) QQ:1311663711 加时请注明软件定制 ...

  7. 每个程序员必看:如何在40岁后继续做软件开发?

    导读: 这是一个 42 岁的开发者所写经验分享文章.并且列出一些他 18 年多身为软件开发者的经验谈.许多部分看完后都会希望自己当时就能够了解,所以很推荐不论是新手或是老手都要好好阅读这一篇文章. 故 ...

  8. 为什么Scrum模式适合软件开发?

    2019独角兽企业重金招聘Python工程师标准>>> 摘自基于Visual Studio 2010 进行敏捷/Scrum模式开发 软件行业至今已经有超过40年的历史,很多在软件工程 ...

  9. 【转载】有软件开发,就要有软件测试!

    移动app市场很大且还在不断发展.有多大呢?两个最流行的移动平台,iOS和Android,为我们提供了一些数据: ▪▪ 1,250,000个可供下载的 app(去年增长了85%) ▪▪ 63,000个 ...

最新文章

  1. [JUC-5]ConcurrentHashMap源码分析JDK8
  2. oracle ebs fah,EBS常用表
  3. 把在win7系统下,把笔记本的无线网卡变成路由器,共享上网。
  4. 6翻了C语言,《嗨翻C语言》随书练习六 6章 二叉树简单例子
  5. 传统路由器被抛弃的理由—Vecloud
  6. 2019.01.28【NOIP普及组】模拟赛C组总结
  7. java中exception作用_java中的异常Exception的划分,以及他们的特性。
  8. RAX,eax,ax,ah,al 关系
  9. nginx: [warn] conflicting server name localhost on 0.0.0.0:80, ignored
  10. 代理服务器反向代理varnish配置文件解析
  11. 哔哩下载姬(B站下载工具)
  12. 相机相关知识及视场角的计算
  13. 证书信任管理器(用于https请求) X509TrustManager
  14. 2022学生党蓝牙耳机怎么选?最新蓝牙耳机排行榜
  15. 一文详解光场深度估计
  16. 软件系统开发|公众号都有哪些展现形式?
  17. python模拟登录163邮箱_selenium+python 模拟登陆网易邮箱
  18. 安卓中为了获取context的方法和区别(getContext,getActivity,this,mainActivity.this等)
  19. 用ultraiso安装linux系统教程,U盘安装Ubuntu 12.10 图文教程(ultraiso)
  20. 理解《Charting the Right Manifold: Manifold Mixup for Few-shot Learning》

热门文章

  1. 《开发者突击:精通ASP.NET AJAX网络程序设计》终于面世
  2. 使用驱动器h中的光盘之前需要将其格式化怎么办_电脑磁盘显示未分配怎么办?磁盘数据如何恢复?...
  3. Lock-Free / Lockless 相关术语
  4. 去掉图片黑背景输出为透明png(算法和工具)
  5. Java定时任务中间表,mysql 通过定时任务更新中间表
  6. java 动态给属性赋值_java中为实体对象的动态属性赋值
  7. 服务器需不需要虚拟内存,服务器要不要虚拟内存
  8. c++使用unordered_map与map的区别
  9. java notifyall 唤醒顺序_Java的多线程NotiFyAll()唤醒线程时的顺序问题 | 学步园
  10. 施工日志管理软件app_启用ERP装修管理软件的必要性