你好,我是宝玉。我今天分享的主题是:掌握工程思维,把每件事都当作一个工程项目来推进。
我大学学的是软件工程专业,毕业十多年后再回顾当年学的专业课,好多专业概念已经记忆模糊,唯有对一位老师的教诲记忆深刻,对我毕业后的职业生涯影响深远:
软件工程是一门用工程化方法解决软件项目问题的学科,其本质也是一门工程学科,这门课的知识在学完后,不仅可以应用在软件项目中,还可以应用于日常生活中遇到的一些问题,Everything is a project。
这句话对我影响很大。我真的开始在日常生活中尝试应用“Everything is a project”的概念,小到做作业,大到完成工作中的复杂项目。
解决这些问题的方式,就是参考软件生命周期和瀑布模型,把一件事情分成几个阶段:分析、设计、实施、测试、完成,然后制定相应的计划。这种方法不仅非常有效,让我的做事效率大幅提高,而且让我在看待事情上,能够更全面地、站在更高的角度去思考。
2010年在上海的时候,我机缘巧合参加了一个关于产品设计与用户体验的线下活动,我可能是与会人员中,为数不多的非专业产品设计的同学。
在活动中组织者安排了一个游戏环节,每5个或6个人分成一个小组,来设计一个给老年人使用的手机,限时30分钟。完成后,每组选一个人上台花5分钟展示作品,最后投票选出做得最好的一组。
我的第一反应就是把它当作一个项目,于是快速地拟定了如下计划。
这个计划小组成员都很认可,于是我们严格按照这个计划进行手机的设计。同时我观察了一下其他组的情况,大家都在热火朝天地讨论各种想法,似乎没有意识到时间其实是有限的。
轮到演示的时候,我们组毫无争议地拿到了第一,因为我们不仅准备充分,而且设计的手机功能完整,而其他很多组甚至还没来得及把想法完整地画下来。
后来我才了解到,这种有目的、有计划、有步骤地解决问题的方法就是工程方法。工程方法不是软件工程独有的,几乎所有工程类别都可能会应用,例如建筑工程、电子工程等,只不过步骤可能略有不同。
工程方法通常会分成六个阶段:想法、概念、计划、设计、开发和发布。
如果你用这六个或者其中几个阶段对照日常工作和生活中遇到的问题,会发现绝大部分问题都可以看成一个项目,并且拆分成几个阶段,按照计划一步步完成。
可能会有人说:“我不用这种工程方法去做事,一样可以做成呀,并没有什么区别。”确实,做一件事有很多种方式,但用工程方法去处理事情,有两点好处:
前面提到的“设计一个老年机”的游戏就是个很好的例子,后来我在不同场合、不同人群中都组织过这个游戏,无论我如何强调时间限制(30分钟)和产出(必须要演示结果),绝大部分人还是会把时间和注意力放在各种稀奇古怪的想法上,并沉浸其中。等到时间快到了,他们才发现还来不及把方案画到纸上,甚至还没确定该选哪个方案。
这种现象其实很常见,我们在日常处理事务时,天然地会选择自己感兴趣的、擅长的那部分,而容易无视整体和其他部分。
所以问题的核心并不在于是不是用工程方法,而是有没有把这件事当作一个项目,是不是能看到这件事的全貌,而不是只看到局部。
在工作分工越来越细致的今天,一个项目里面有产品设计、开发、测试、运维等诸多岗位,每个岗位都有自己的价值追求,测试人员关注找出更多Bug、开发人员关注技术和高效开发功能、运维关心系统稳定。
分工带来的好处,就是复杂的任务可以分给不同的人来做,这也有助于技能的专业化,提高工作效率。但如果只站在自己的立场去考虑问题,没有人关注整体价值,就容易相互误解,产生矛盾、增加成本。
以下这些工作场景,估计你不会陌生。
这样的场景问题还有很多,为什么会出现这种情况呢?事实上,这在很大程度上都归因于大家只是站在自己岗位的角度来看问题,没有站在项目的整体角度来看。
如果能站在项目整体来看问题,你就会去关注项目的质量、项目的进度、项目的成本、项目的最终用户,那么上面这些场景将变成:
看起来很理想化对不对?但如果大家真能从自己做起,这样的结果并不是太难达到。
肯定有人会想,我又不是项目经理,干嘛要操这心呀?在这个问题上,我的看法是:每个项目成员,如果能多站在项目的角度去考虑,那么这样不仅对项目有利,更对自己有好处。
项目做成了,大家脸上都有光,也得到了更多的锻炼;项目没做成,不仅脸上无光,甚至可能面临丢工作的危险。很多人都有技术升管理的理想,能多站在项目整体角度去考虑的人,在日常工作中,也一定会有更多的锻炼机会,自然会多一些提升的空间。
我把这种思维方式称为“工程思维”。如果给一个定义的话,工程思维,本质上是一种思考问题的方式,在解决日常遇到的问题时,尝试从一个项目的角度去看待问题、尝试用工程方法去解决问题、站在一个整体而不是局部的角度去看问题。
在我的职业生涯中,一直习惯于用“工程思维”去思考问题,遇到问题,会尽可能把它当成一个项目,用工程方法有计划、有步骤地去解决它,这让我积累了不少的工程方法实践经验。
同时,我也更多站在整体的角度思考,这让我在项目中能更好地和其他同事合作,有更多的晋升机会。我还记得,我第一次开始管项目的时候,并没有慌张,而是把项目任务按阶段一拆分,然后按阶段制定好计划,再按照计划一点点执行、调整,很快就上手了项目管理的工作。
改变,最有效的是方式是改变思想,这往往也是最难的部分。
当你开始学习这个软件工程专栏,我希望你不仅仅学到软件工程的理论知识,更希望你能用“工程思维”来思考你遇到的各类问题。
你不需要现在是一个项目经理或者管理者,也一样可以在日常生活中应用“工程思维”。比如学习这个专栏,你会制定一个什么样的计划?每个阶段达到一个什么样的成果?比如你今年有没有去旅行的计划?你会怎么制定你的旅行计划?
如果有兴趣的话,你还可以看看我以前写过的一篇文章“记录下两个孩子在MineCraft里面还原公寓的经历”。
这也是一个很有意思的工程思维实践,帮助孩子们在游戏里面还原公寓。这本质上也是一个项目,需要制定计划,需要设计、实现。我希望他们从小就有工程思维,能在未来有目的、有计划、有步骤地去解决日常生活的问题。
最后,我希望你思考一下,你在日常生活中,会不会习惯上把一些事情看作项目?或者你看完这篇文章后,有没有觉得有一些事情可以看作项目?你会怎么应用工程方法来实践?
此外,在你参与的项目里面,你会站在项目整体的角度来考虑一些问题吗?你觉得如果站在项目整体的角度看,是不是可以对你的工作方式有所调整?欢迎你在留言区分享讨论。
感谢阅读,如果你觉得这篇文章对你有一些启发,欢迎把它分享给你的朋友。
评论