感悟 - 研发团队需具备的共同理念

一个研发团队,在漫长的软件开发过程中,在进度和成本的压力下,在各抒己见的争论中,总是免不了磕磕碰碰,如果没有一致的思想和理念,是无法开发出世界级的软件的。聊发感想。。。

1)做系统要有高度,高瞻远瞩

一个软件开发人员,首先要做的事情就是对自己做出来的软件负责,对自己的设计、自己的代码负责。做出好的设计,好的代码,提供给用户使用,这个责任心是最基本的了。可惜的是,就这些年所见,超过50%的软件开发人员的责任心远远没有达到这一点。最明显的例子就是,大部分开发人员总是在做到软件项目的后期,就非常厌倦(这个时候是最困难的时候),想着去做新的项目了...软件开发就是这样,行百里者半九十,对软件的负责任,也是对自己的负责任。

做好软件,仅仅是一个开始,只有在这个基础上,才能谈及软件系统的高度。所谓高度,涵盖了很多东西,包括系统的功能的可扩展性,系统的可重用性,易用性等等,正所谓,“思想有多远,我们就能走多远”,如果整个团队对系统的要求越高,才有可能做出顶级的系统。

大部分世界一流企业,都是很强调系统的高度的,最基本的就是CREATIVE。。。

2)为可变而设计,化繁为简

强调系统高度,有个不正确的做法,就是过度设计。在之前的一两年,是困惑我的一个问题,很难回答和辩解。有些同事,明明是简单的功能,却做了很复杂的设计,导致实现起来又困难,又别扭,而且也带来了系统配置的复杂性,开发人员怨声载道。

慢慢的就想通了,首先,设计是为可变而设计,如果不存在变化,就不应该去做过度的设计,Flexible的设计同时带来了系统的Complexity,是需要设计更多的功能去降低系统的Complexity的;其次,应该提倡Dynamic Design(这个是Martin Flower提出的),面向接口设计,毕竟所谓变和不变,总是在变化之中的。

无论如何,这个一个很需要平衡的点,也是很考验软件人员水平的地方。把简单的事情变复杂,是远远容易过把复杂的事情变简单的。

3)持续重构系统,罗马不是一天建成的

常常有团队成员抱怨,为什么一开始没有把需求分析好?为什么一开始没有和客户把全部需求定下来?为什么一开始没有把设计全部做好?

需求的变化,已经是软件项目不争的事实,无论怎样,在项目过程中,需求始终发生着各种各样的变化。系统也需要随着需求的变化不断提升,而衡量一个软件系统的质量,能否快速适应需求的变化,也是一个非常重要的指标。

一个软件,如果改不下去了,就是说,它已经适应不了任何需求的变化了,它的生命力,也就很微弱了,是注定要被淘汰的了。

对于系统的设计和编码,没有最好,只有更好,更好的设计和编码的改进,是提升软件生命力的必要行为。持续重构和提升系统,是每一个期望开发做世界顶级软件团队必须共同具备有的理念。

写到这里,不仅心想,能够构建这样一个团队,真是不容易。。。铁血之师,非一日铸造而成啊。。。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值