各位,在你们的眼中,如何理解软件开发?我想这个问题定然会得到许多不同的答案,对于软件开发的定义,百度百科中提到:
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。
个人认为,**软件开发过程就是一群人的思想相互碰撞的动态过程,既然是一群人,那么就人与人之间各有不同、各有所需;既然是思想相互碰撞,那么就可能会难以捉摸;既然是动态的,那么就一定会有变化。**这也就不难理解为什么说软件开发是一项复杂的系统性的技术工程。
本人自2009年开始参与到软件开发的大军中来,掐指算来,已是十年有余。在软件开发领域十余年的摸爬滚打,积累了些许经验教训,对软件开发的理解也在逐步加深。鄙人不才,愿借此机会,与各位聊聊软件开发的那些事儿。
今天这里要聊的其中一个话题与软件开发类型有关。
从软件开发类型来看,一般有项目开发、产品开发、技术研发等几类。
在我们公司,从这几年的实践来看,我们的软件开发几乎都是项目型的软件开发,而且几乎都是以乙方身份承接的项目开发。项目型软件开发的最大特点就是定制化开发。谈到定制化开发,想必大家都非常清楚,不同客户的需求各不相同,即使是同一类型的客户同一类型的软件需求也会有差异,开发的可控性和难度必然加大。这里似乎说明了一个问题,定制化软件开发不好做。事实上,定制化软件开发确实存在多方难点,也确实很难通过完成所有客户提出的定制化需求就能做得很成功,这里还涉及到很多商务、技术、管理等方面的综合因素。但是,这并不是意味着定制化软件开发就没有前景、就没有空间。
要想在项目型软件开发方面有大的突破,个人认为至少要考虑两个因素:一是可持续性,二是规模效应。
软件开发的可持续性意味着同一类型的软件项目我们可以持续做,继而带来业务的可持续、技术的可持续、团队的可持续。这有点像我们常常说的做完一期做二期,做完二期做三期,做完三期来个技术、业务大升级,再接着做。这种模式下,软件利润也许会有更大的空间。诚然,可持续性也有大有小,小的可持续性更多就是一个单点效应,特别是在项目规模仅在百万级别甚至更小一些的时候,虽然持续做几期规模或许也能有大几百万甚至上千万,但这并不是一件容易的事情,或者应该说对我们而言还是挺困难的一件事,至少这几年我们所做的各类型软件项目也鲜有非常成功的案例。大的可持续性有两层意思,一是大项目的可持续性,比如从一个千万级别的项目开始,历经几年时间下来,一般会有持续的需求需要开发,升级改造必不可少,这个从某种意义上来说就可以将其归结为一个典型的大项目的可持续;二是项目的规模化效应,通常由某一个软件项目开始横向拓展,比如从一个客户单位拓展到另一个客户单位甚至更多的客户单位。
软件开发的规模效应意味着在几年内能够有效地促进业务发展,有利于形成一条业务线。这里也有两层意思,一是规模大,只有大项目才有可能形成规模效应,才有可能衍生出其他相关软件项目,继而带动技术服务、运维服务等其他相关项目;二是范围广,一个好的软件项目会借助政策、市场、客户、业务等方面的力量,能够迅速将受众面铺开,陆续在更广阔区域、更多客户单位落地,从而形成规模化效应。
上述谈到的都是项目型的软件开发,即使有规模效应,也依然是需要定制开发的,不过从可持续性角度来看,定制开发也有其相应的好处,有需求就需要定制开发,有定制开发就为可持续性开发创造一些必要条件。
除了项目型软件开发,还有就是产品型的软件开发,或者直接称之为产品开发。产品型软件开发的最大特点就是可复制性及可运营性。可复制性更多针对的是销售型产品,可运营性更多针对的是平台型产品。在目前我们公司所在的行业特点及我们多年来承接项目的情况来看,要做产品开发不是一件易事,需要市场、人才、时机等各方面的综合作用并顺势而为。
此外,技术开发更多是指技术预研与基础平台的研发,更偏向于架构等技术层面。做技术开发的根本目的是服务于项目型和产品型的软件开发,以此打下坚实的基础,提升核心技术研发能力,跟上时代发展的步伐,以更好地驱动业务发展。
来源:CSDN
作者:踏雪无痕大黄蜂
链接:https://blog.csdn.net/huangxinfeng/article/details/103882368