让我们回头想一想,一直以来,我们都在不停得做项目,赶项目。我们的项目一般是怎么做出来的!每个公司有不同的做法,但是起码在有些方面还是差不多的。相信从大家开始做项目到现在,做过了很多或大或小的项目,或多或少也有让自己很引以为豪的成功项目。
每次一有项目,通过几次会议之后,项目就开始了,先是分配人员,分析一些从客户那里拿来的需求,然后一些骨干的开发人员就开始为项目搭架子。于是一个项目就算是进行起来了。谈到了为项目搭架子,专业点说就是做架构了,说是做架构,其实就是把项目按照惯例分割为几个逻辑层,至于说这个架构好不好,有什么风险,是否可以适应以后的变化,采用的技术的风险和可行性分析,这些很少考虑,为什么呢?因为一般的都是这么开发的,应该没有什么大的问题。确实,很多的项目也确实是这样的开发的,而且很多也成功了。这些无可厚非,至于说什么标准不标准,是否遵循了什么开发的原则,没有多少人在乎,不管怎样,项目是成功了。项目管理论坛
就这样,一年又一年,开发项目,做项目,赶项目,完成项目。渐渐地很多人对做软件开发没有那么大的兴趣了:原本以为软件开发是一种高智商的活动,现在发觉有点像是体力活。一年一年,我们为一个个不同的客户开发出一个个不同的系统。
相信很多公司也常常提出很多很“诱人”的口号:通过做大量的项目,积累和开发通用组件,组件越多,以后开发就是仅仅只是堆积木了....但是真正的项目中,客户不停在催,上头也在催,最后就没有人顾及什么通用不通用了。项目开发是越做越累,相信这也是很多开发人员转行和转型的原因之一吧。
项目开发中,很多的原则我们是很清楚:什么单一职责,依赖反转,什么可测试性,维护性.....很多时候,在coding的时候,这些原创反倒成了多余,项目最后成为了功能代码的堆积,特别是在赶项目的过程中,代码堆积的效果就更加明显了:只要把功能搞定,其他的以后再说。可以往往这个“以后再说”就成为了“永不再说”。这个也无可厚非。
那么,什么是企业级项目呢? 为一个企业,机构,客户公司开发的项目就算得上是企业级项目了吗?一个很大的项目就是企业级项目吗?一个小的项目就算不上是企业级项目?其实,一直以来,我个人也对什么是“企业级”的概念不是很清晰。只是天天是在这么说。
说到企业级项目,随着而来的有很多概念:企业级架构,企业级开发。但是不管怎么说:企业级这个概念和项目的大小是没有什么很大的关系的,甚至可以说是几乎没有什么关系。其实企业级项目其实就是一带着一种“企业级”的思想来做项目。
在文章中的第一部分,我们到了现在我们做项目的方式:代码的功能“堆积”。通过这种堆积出来的代码就仅仅只是用于这一个项目,对于以后其他的项目几乎是没有什么用处的,也就说代码的重用行不够,而且往往在一个项目中,很多的代码都是杂七杂八的,很多相似的功能都是各自搞出一套代码。诸如之类的问题,导致项目越做越累,很多美丽的口号化为泡沫。
企业级的项目起码有以下几个特征:稳定性、灵活性、隔离性、重用性、维护性等
相信这些特性大家都不陌生,所以我就不具体的解析。说了这些多,可能大家认为我说的是废话,屁话,但是有一点可以说的:现在我们开发项目确实很多的时候忽略了这些东西,因为这个忽略,确实使得项目项目的开发加快,但是从长期的来看,项目开发还是越来越累的。如果在开发的时候,每次带着一点点这样的思考,尽量写出符合那些特性的代码,慢慢的,一种“企业级的心智”就慢慢出来了,一个很类似的比喻:在项目中,遇到了一个很难
的技术问题,我们往往花很多的时间来攻克,最后终于搞定。确实这个攻克的过程我们从思维上可以这样分析:我们思维和问题的答案之间隔了一道墙,我们一次次的尝试各种解决方案去攻克问题的时候,我们的思维一次次的在撞击这道墙,最后墙被撞破,我们也得到了问题的解决方案。项目管理者联盟
同样的道理,如果我们在项目中带着“企业级”思维,我们就在一点点的撞击那道“墙”,最后的结果就是:通用的功能被封装为了通用的组件,为以后的项目的留下积累。
虽然很少人敢说自己有“企业级的心智”,包括我。但是,不能因为这样就不去关注,因为带着这个思想作项目,思想能够得到一定的提升,而且还真的得到了不少通用的组件,虽然说组件善待完善,但是我们不是已经尝到了些甜头。