怎样的项目才能称为“成功项目”?

640?wx_fmt=jpeg

作者:邹溪源,长沙资深互联网从业者,架构师社区合伙人!

引子

这个故事讲的是一家拥有百年历史的制造业大厂的信息化转型过程中的波折。这家企业拥有超过三万名员工,它是某行业的领先品牌,但是在信息化程度上却非常古老。

有许多人说,国企的项目都是坑,相当一部分项目都是为了骗经费而忽悠人的,换一拨管理层,基本上就得换一拨项目,油水全被领导捞走了。我很遗憾,没能经历这些事情。这个项目实打实都是做出来给基层用的项目,也确实获得了各方较高的满意度。

以中台为政治正确的互联网开发者们会说,这个项目从商业层面和技术上来说似乎毫无价值,首先它不是互联网产品,其次它没什么技术含量,什么大数据,云计算,容器,微服务,无服务,它都不需要,这甚至有点像我们身边许多人十年前就做过的项目,技术上平淡无奇,看起来毫无挑战。

显然并非如此,每个项目存在都有价值。作为过程中的亲历者,我希望通过总结这个项目过程中存在的不足,引起思考和引发讨论。尤其是随着时代的进步,像这样信息化转型的传统制造业企业,或许越来越罕见,这样的项目看起来非常独特,但也是软件项目中的一个典型,对于未来从事行业互联网开发的软件从业人员来说,也许能带来一些思考。

背景

2015年开始,制造业企业开始流行起一种新的趋势:工业4.0,在这个大背景下,国内则提出了中国制造2025的计划,旨在通过几年努力,实现中国制造业的智能化水平在上一个台阶。

该大型国企作为该某领域的领先品牌,其生产的产品远销国内外,也是军民融合的典型代表,但是在过去的发展过程中,由于产品本身比较特殊,许多关键步骤仍然是采用手工完成,无法完全实现自动化替代,包括检验管理体系也同样建立在一大堆纸质表单的基础上完成。集团管理层看到了中国制造2025带来的巨大机遇,也想奋斗一波,但要做的事情实在是太多了。

康威定律说,一个组织的软件架构设计,实际上是组织管理形式的体现。在9012年的今天,为了维持这样一套以纸质表单为核心的检验管理体系,需要维持庞大的管理体系,带来了巨大的管理成本,对于组织来说本身成为了一种巨大的负担。更何况这种管理形式,问题实在是太多了。

1,需要花费大量的时间和精力来维持现有组织,哪怕是非关键岗位的离职,都可能影响一些流程的开展。(纸质资料的交接,其实跟口口相传没什么区别)。

2,过程资料存储困难,为了存储资料,更是需要专门安排档案室和档案保管员,一旦出现产品质量问题,需要进行问题追溯时,要从档案中检索问题要花许多时间。

3,一旦发生灾害或事故,例如火灾洪灾,就意味着过程资料将成为废纸,产品的关键过程信息将无法寻觅。

在互联网技术飞速发展、实体经济受到巨大冲击的今天,原有管理模式,过于臃肿,已经无法适应组织发展的需要。行业越来越不景气,企业的管理成本居高不下,负担越来越重,每年裁员裁了许多人,却没能从管理效能上带来多大的提高,因此提升企业的信息化管理水平其实势在必行。

但是如果要实现一步到位,直接构建基于工业4.0的智能制造新体系,在这个行业都不太现实,毕竟许多产品都是属于定制生产、小批次制造,部署全套自动化制造生产线成本非常高,事实上新生产线也在建设,但是一直没有投产,老的生产线也得维持好,这样才能持续创造价值。做好眼前能做的,实现检验管理的信息化(无纸化),然后再逐步实现制造业的智能化,只有实现了这一小步,才有未来的无限可能。

立项

之前提到中国制造2025的大背景,还有一个小背景。企业内部企业的中高层普遍都是八十年代末毕业拥有更高学历的管理层,不乏清北的高才生。他们那些大学同学正是这一波大时代的受益者之一,有许多同学都借助于企业的腾飞实现了个人价值,但是留在这家国企的高管们,却看着企业越来越差,也想有所作为,却感觉一个拳头打在了棉花上,他们的压力很大。

然而,大家都清楚,传统国企的体质僵化,很多时候看起来两个字所谓“变革”,实际上却有点像个美梦而已,就拿“信息化”系统建设来说吧,信息化对于国企来说并非第一次提起,许多国企的老员工,乃至管理层其实已经经历了过去十年信息化失败之苦,许多信息化系统在领导们的支持下,看似搞得轰轰烈烈,热热闹闹,但是最终都难逃被抛弃的下场,而每个信息化项目的失败,都会让好几位负责对应信息管理工作的牵头人背锅,并最终从公司离开。

在IT从业人员看来或许很简单的信息化建设,从来没那么顺顺利利,极有可能会由于基层的抗拒最终失败,并给信息化建设的参与者带来职业生涯上的污点。

于是在国企把信息化提上议程之后,获得了两种不同的声音。很戏剧性的,不懂信息化的业务部门是信息化的支持者,他们说这个事情一定要搞,砸锅卖铁都要上,再难也要上。另外一种负责信息化工作的信息中心的负责人对信息化的态度很明显,要我支持,没问题,我可以把网络做好,但是要我参与软件的研发过程,恕我无能为力。

因此最终牵头组织这个过程资料信息化的,是平时对这一块需求最大的检验管理部门。在他们的推动下,项目正式提上了议程。

这是个涉及面非常广泛的项目集,包括了三个项目,分别是面向民用领域单一事业部的A项目,面向融合领域的B项目,以及面向整个集团全方向的C项目。事实上集团曾经购买过现成的产品,但是都没能用起来,所以这个项目集最终是以定制开发的形式承包出来。

  • A项目

A项目作为最先立项的项目,万事开头难,承受了巨大的压力,许多人在等着看一出好戏。

A项目的负责人W部长今年三十八岁,在此之前他一直是从事检验管理出身,对产品检验有自己明确的要求,他奠定了整个项目的基调。没有设定特别宏大的目标,不是做一个通用的大系统,就做一个简单实用的系统,能够给基层带来方便,为管理层带来便利就够了。

项目的早期,承建单位曾经试图引入新技术和更加友好的用户体验,但是w部长却不这么认为,他说在这样的老国企,没必要用新技术,一切以满足可用性为目标,操作越简单越好。于是最终承建方设计了一个基于cs的数据采集系统和基于bs的管理系统。不仅功能尽可能的简单,而且连流程都能省就省,尽量让参与者减少学习成本。

这个设计简单实用的系统,恰好满足了敏捷项目所要达到的构建简单项目、实现快速迭代小步快走的管理目标。驻场开发期间,及时发现问题和解决问题,让软件得到了非常充分应用,获得了甲方的高度评价。

而且如果说早期项目的应用的推进需要靠组织的强势推动,到了后期就令人欣慰了,由于这个系统无需特别复杂的操作流程就能完成资料的录入,提交和汇总,基层岗位的工作人员只要会用计算机、简单培训就能迅速上手,无形中为项目的快速铺开奠定了良好的基础。而且承建方与甲方的基层人员之间沟通融洽,有问题及时反馈,及时处理,为项目推进带来了非常不错的效果。

在项目运转正常一年之后,主导项目工作的部长调任了,新接手的负责人是曾经不太看好这个系统的车间主任,他也被基层工作人员带动,成为了这个项目的拥趸。

  • B项目

借着A项目成功的东风,马上启动了B项目。

前面提到了,B项目是面向融合产业的,因此对这个项目的要求也相对而言更高。

当这个项目完成立项后,B项目建设方的组织架构也发生了比较大的变更,首先是之前推动A项目的集团公司大领导由于工龄届满,已经退休,而集团的整个管理层都相继发生了变化,包括推动项目立项的一位高级工程师也从公司离职,意味着项目早期干系人已经完全换了。

组织架构调整其实是为了给年轻人机会。调整后,B项目负责整个项目的,都是87后的年轻人。

这群年轻人们,相对于A项目的负责人来说,对信息化有了更加深入的认识。事实上而言,A项目建设,其实不过是一个类似于协同办公的一个模块,他们认为这个项目没什么技术含量,甚至有点low。他们经常出去考察学习,对用户体验和功能应用都有很多想法,他们渴望真正打造一个能够真正打造一个符合企业未来发展目标的信息化一体化平台。

这些想法再跟现有政策、以及组织架构混合在一起发酵,最终变成了一个无比巨大的项目,用专业术语来说,就是一个“大泥球”系统。

在项目立项之初,合同上原始需求其实只有19个条目,而且为了让这些内容容易落地,前期的推动者甚至尽可能的减少流程的复杂度,但是等合同签订后、组织结构调整完,新的干系人们在原合同的基础上,对范围进行了大幅修改。最终等需求调研落地,变成的是一个基本上涵盖了公司大部分审批事项、涉及几十个流程,涉及全公司数百人、超过十几个小系统的大项目。

为了完成这个项目,双方投入了最少20个人,超过十人的研发团队驻场开发了超过半年时间,也没折腾出几个让甲方满意的东西。建设单位现场条件恶劣、涉及流程复杂、涉及特殊的管理机制,要开发的功能点特别多,不断的完善,不断的修改,整个项目研发前前后后折腾了至少一年时间之后,才通过直接负责人的认可,但是给领导汇报时,却根本不可用,得推翻重做。

项目到今年项目依然没有上线,这离合同交付日期已经超过两年了,显然可以称之为“失败项目”了。

承建方虽然早期意识到了项目风险,但是建设方过于强势,无法拒绝;建设方贪多求快,忽略了组织本身的复杂性、低估了软件研发的工作量以及软件实施的难度,最终双方都竹篮打水一场空。

  • C项目

C项目是在B项目完成了到一半时启动的新项目,其目标是将A项目成功的经验,推广到全集团。(不包括B项目的事业部)。

C项目的实施异常顺利,合同期一年,实际上只花了8个月就把项目做完了。

总结

当我年轻时曾经向其他拥有丰富经验的项目经理请教什么样的项目才是成功项目时,他们说:

“刚刚好”:刚刚好满足客户的需求,就是一个不错的项目。

一个充满智慧的回答。不过“刚刚好”其实很难把握这个度,我觉得一定是功能简单、实用即可。

在这个故事中,那个最简单实用,几乎没有什么技术含量的项目在组织中获得了很大的成功,而一开始就打算做成全流程信息化的系统,最终却一败涂地。

这恰好就像我们经常见到的项目,简单纯粹的产品才能最先站稳脚跟、获得不错的用户反响,那些一味画饼的PPT项目,都是忽悠人,几乎没几个成功了。

除此之外,每一个软件行业从业者,越爱钻研技术,越容易陷入技术的迷思,总以为靠技术能改变世界,仿佛一个项目没用上什么新技术就容易就无法体现出自己的价值来。然而一个组织的技术体系,必须依托组织的实际组织架构而存在。再优秀超前的技术,脱离了土壤都是空中楼阁,永远没有最优秀的技术,能真正为组织带来价值的技术,才是最合适的技术。

长按订阅更多精彩▼

640?wx_fmt=jpeg

如有收获,点个在看,诚挚感谢640?wx_fmt=png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

彩虹表

一、简介 彩虹表就是一个庞大的、针对各种可能的字母组合预先计算好的哈希值的集合,不一定是针对MD5算法的,各种算法的都有,有了它可以快速的破解各类密码。越是复杂的密码,需要的彩虹表就越大,现在主流的彩虹表都是1…

深入Dapper.NET源码

经过业界前辈、StackOverflow多年推广,「Dapper搭配Entity Framework」成为一种功能强大的组合,它满足「安全、方便、高效、好维护」需求。但目前中文网路文章,虽然有很多关于Dapper的文章但都停留在如何使用,没人系统性解说底层原理。所以有了此篇「深入Dapper源码」想带大家进…

DDoS攻击与防御

一、DDOS介绍 要了解DDOS攻击是什么,首先要了解DOS攻击的基本原理是至关重要的。 DoS攻击是最早出现的,它的攻击方法说白了就是单挑,是比谁的机器性能好、速度快。但是现在的科技飞速发展,一般的网站主机都有十几台主机&#xf…

DRDoS(memcache漏洞导致的反射型分布式拒绝服务攻击)

一、DDoS基础 见博文:DDoS攻击与防御 二、Memcached 反射DDOS攻击原理 反射DDOS是发送大量带有被害者IP地址的请求给反射服务器,反射服务器对IP地址源做出大量回应,形成拒绝服务攻击。CLOUDFLARE的这张图很好的解释了DDOS反射攻击过程&…

田牌魔术 | .NET Core 3.0 + Azure 远程点亮树莓派上的一盏灯

点击上方蓝字关注“汪宇杰博客”导语3年前,我写过一篇《Windows 10 IoT Core Azure 远程控制LED》,实现了《生活大爆炸》中的注孤生实验,让信号从家里出发,绕地球转一圈,经过微软美国数据中心,返回家里点亮…

使用Hash碰撞进行DoS攻击

一、哈希表碰撞攻击的基本原理 哈希表是一种查找效率极高的数据结构,很多语言都在内部实现了哈希表。PHP中的哈希表是一种极为重要的数据结构,不但用于表示Array数据类型,还在Zend虚拟机内部用于存储上下文环境信息(执行上下文的…

EF Core 实现读写分离的最佳方案

前言公司之前使用Ado.net和Dapper进行数据访问层的操作, 进行读写分离也比较简单, 只要使用对应的数据库连接字符串即可. 而最近要迁移到新系统中,新系统使用.net core和EF Core进行数据访问. 所以趁着国庆假期拿出一两天时间研究了一下如何EF Core进行读写分离.思路根据园子里…

SSL工作原理

本文介绍了SSL原理、安全机制、工作过程和典型网络应用。 缩略语列表 一、概述 1.1 产生背景 基于万维网的电子商务和网上银行等新兴应用,极大地方便了人们的日常生活。受到人们的青睐。 因为这些应用都须要在网络上进行在线交易,它们对网络通信的…

在 ASP.NET Core 项目中使用 AutoMapper 进行实体映射

一、前言在实际项目开发过程中&#xff0c;我们使用到的各种 ORM 组件都可以很便捷的将我们获取到的数据绑定到对应的 List<T> 集合中&#xff0c;因为我们最终想要在页面上展示的数据与数据库实体类之间可能存在很大的差异&#xff0c;所以这里更常见的方法是去创建一些…

.NET开发者必须学习.NET Core

很多的.NET开发者在接触.Net Core之前&#xff0c;对于linux系统一点也不了解&#xff0c;也未曾有过主动去学习的念头。在接触了.Net Core之后才会慢慢学习linux相关知识&#xff0c;很多同学想转Java&#xff0c;这个很扎心&#xff0c;你有很好的条件转向.NET Core为啥要转J…

Java事务管理

事务的ACID属性&#xff1a;原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily) ACID 特性 A&#xff08;原子性&#xff09;事务的原子操作单元&#xff0c;对数据的修改&#xff0c;要么全部执行&#xff0c;要么全部不执行&#x…

如何提高QnA maker机器人训练中文语义理解的能力

这是一个常见的问题&#xff0c;在人工智能的世界里面&#xff0c;图像理解、语言及语义理解、数据理解是三个核心领域。而关于语言及语义理解&#xff0c;又与具体的语言和文字密切相关。目前来说&#xff0c;大家都是用机器学习去训练模型&#xff0c;如果要更好的理解中文&a…

分布式数据一致性(数据多份副本一致性)

前言 分布式数据库的数据一致性管理是其最重要的内核技术之一&#xff0c;也是保证分布式数据库满足数据库最基本的ACID特性中的 “一致性”(Consistency)的保障。在分布式技术发展下&#xff0c;数据一致性的解决方法和技术也在不断的演进&#xff0c;本文就以分布式数据库作…

Bumblebee微服务网关之请求统一验证

对于微服务网关来说&#xff0c;统一请求验证是一个比较重要和常用的功能&#xff0c;通过网关验证后台服务就无须关注请求验证&#xff1b;对于多语言平台的服务而言制定验证方式和变更验证配置都是一件比较繁琐和工作量大的事情。Bumblebee提供JWT验证插件&#xff0c;只需要…

分布式事务基础

这一篇主要介绍分布式事务的基础知识&#xff0c;一些基础的算法、定理、简单应用等。下篇文章介绍互联网业界的具体实践方案。 1、CAP定理 CAP定理是由加州大学伯克利分校Eric Brewer教授提出来的&#xff0c;其核心思想是任何基于网络的数据共享&#xff0c;系统最多只能满…

支持前端、后台业务代码扩展的快速开发框架

框架采用.NetCore Vue前后端分离&#xff0c;并且支持前端、后台代码业务动态扩展&#xff0c;框架内置了一套有着20多种属性配置的代码生成器&#xff0c;可灵活配置生成的代码&#xff0c;代码生成器界面配置完成即可生成单表/主从表的增、删、改、查、导入、导出、上传、审…

保证分布式系统数据一致性的6种方案

分布式系统数据一致性的基础知识&#xff0c;传送门 1、问题的起源 在电商等业务中&#xff0c;系统一般由多个独立的服务组成&#xff0c;如何解决分布式调用时候数据的一致性&#xff1f; 具体业务场景如下&#xff0c;比如一个业务操作&#xff0c;如果同时调用服务 A、B…

15年来这8门编程语言位置十分稳定,C#从低谷开始爬升

TIOBE 编程语言排行榜 10 月份的榜单已公布&#xff0c;这期的标题比较有趣 —— “Top 8 of the TIOBE index quite stable for the last 15 years”&#xff0c;意思就是排名前 8 的编程语言在这 15 年里一直都十分稳定。有多稳定呢&#xff1f;根据 TIOBE 统计的数据&#x…

Dubbo相关

mark http://ifeve.com/dubbo-learn-book/ http://dubbo.apache.org/zh-cn/ Dubbo架构图 框架分层架构中&#xff0c;各个层次的设计要点&#xff1a; 服务接口层&#xff08;Service&#xff09;&#xff1a;该层是与实际业务逻辑相关的&#xff0c;根据服务提供方和服务消费…

同时支持EF+Dapper的混合仓储,助你快速搭建数据访问层

背景17年开始&#xff0c;公司开始向DotNet Core转型&#xff0c;面对ORM工具的选型&#xff0c;当时围绕Dapper和EF发生了激烈的讨论。项目团队更加关注快速交付&#xff0c;他们主张使用EF这种能快速开发的ORM工具&#xff1b;而在线业务团队对性能有更高的要求&#xff0c;他…