从严治码-别人在项目中下毒,我该怎么治?

01  从软考说起

       

   

640?


    从4月份开始,由于备考《系统集成项目管理工程师》的原因,博客没有持续更新,在上半年考试结束之后,又对项目进行了一些收尾的工作。下面就这段时间的学习作一个记录和总结吧。

    在学习的过程中,提炼了一些自己认为比较重点的内容进行整理,在项目管理的五大过程和十大知识领域中,其中所囊括的内容可应用到所有的行业中,项目管理的知识具有通用性和适用性,比如土建工程的项目可行性研究报告和信息系统的项目可行性研究报告其输出基本一致。

    从这些管理方法中,也期待能够思考一些对自己项目管理有用的体会,这篇文章抛砖引玉,希望能够对大家产生一丝共鸣。


640?

从立项开始,专家的支持很重要


    在一般的系统集成项目中,当一个项目启动后,要进行需求分析、评审、管理等过程,在政府性的采购项目中,这些集成工作都会按照正常流程在进行,一步一步的把项目进行持续交付,直到收尾,这是一个相对规范的过程。    由于目前我国互联网行业的迅猛发展,大量的系统集成项目人员大量进入了私营企业内部进行工作。并且,由于国家喊出“大力创新、万众创业”的口号下,千千万万的项目就此落地开花。

    互联网项目只争朝夕,时间就是生命,一个创意从灵感突现到写下第一行代码,可能就是在一天之内;市场,并没有留给创业者太多的思考时间,继而进一步挤压了项目管理的空间,仓促立项、野蛮开发、后期维护BUG不断,甚至导致项目流产。  

      由此可见,难道下毒的一定是程序员么?不少项目,从立项开始,就是一个毒药。  因此,从项目管理的角度来说,控制好项目的立项,就是控制这个毒药泛滥的源头。

    在五大过程和十大知识领域中,包含了一个很重要的工具和技术,就是“专家”支持,比如政府采购项目中,技术专家的评审必须占评标委员会成员席位的2/3以上,这是硬性指标。借助专家在系统集成项目管理领域的专业知识,确保项目高效、稳定、规范的进行运转。


快速迭代的中国式笑话,从严治码全靠资深开发者


    快速迭代是把双刃剑,在庞大的资源面前,快速迭代就像装上了涡轮的汽车,其迭代能力得到进一步的提升,运转效率也更高,项目文档、报告、配置都得到了很好的提升和保障。但是依然存在许多问题。

     例如上面提到了仓促立项、野蛮开发,这种类型的项目通常通常会打着快速迭代的口号,大量的削减了项目执行过程,比如不作项目可行性研究详细报告,甚至不作可行性研究初步报告,仅凭脑子里面的灵光一现,就马上投入资金、项目强行上马。

---------这可能就是系统集成项目行业中自嘲的:我有一个很好的想法,就差一个程序员了!

    很多时候,上面的自嘲并非玩笑,比玩笑更可怕的是,这个玩笑是真实的存在。在这种背景下,系统集成项目管理具有非常迫切的现实需求意义。    在很多私营企业中,很多时候都是老板一言堂,说干就干,而且要大干快上;项目管理的过程在这些企业中就像笑话一般的存在,并且由于“全栈工程师”的原因,系统集成的开发人员通常身兼多职,既是裁判员也是运动员,少部分系统开发人员本身也并不具有项目管理的思想,他们一心只想着完成老板的要求(并非需求),然后拿到工资,至于是否规范、以后怎么样,天知道,大不了辞职一走了之。

    他们不知道什么叫CCB,换句话说,老板就是CCB,在这样的企业中工作,大海航行靠舵手,老板缺乏软件管理的基本知识,开发者们一味的为了完成自己的任务,拿钱,也不会自然而然不会顾及软件的质量。

    于是,在这样的开发过程中,代码质量显然是一个令人窒息的话题,各种不同的技术体系、各种毫无底线的技术缺陷层出不穷,也正是这样的项目,最终成为了开发者们秀代码质量下限的练兵场。

    这个时候,资深工程师就是企业的中流砥柱了。在项目过程中,具有优秀项目管理思想的资深开发者们,应该主动承担起排头兵的角色,尽力的控制软件项目的代码质量,确保项目开发的可控发展。


沟通是一种艺术


    沟通是一门艺术。在图书馆里面堆砌了大量的关于人际沟通方面的书籍,用以帮助人们进行有效的沟通。    在系统集成项目中,沟通管理作为一项重要的内容被单独列出,一个运转良好的项目,必然是一个有效甚至是高效沟通的过程,这种对项目干系人的沟通管理,持续贯穿到整个项目的生命周期中,项目经理作为其中的纽带,负责将整个沟通过程进行无缝的连接;对干系人的沟通,又分为水平沟通和垂直沟通,其中最为有效的方式,就是面对面的沟通,在系统集成项目中,距离不会产生美,只会带来冲突和矛盾。    沟通的方式很多,比如常见的文档、邮件、即时通讯工具、会议、讨论、通知、访谈、专家指导,沟通的线路数量随着干系人的持续加入会成指数级上升,比如当前项目组中有5名成员,此时,沟通线路为25条,如果后续新加入4名成员,该项目组的沟通线路将会上升到61条,在如此复杂的沟通线路中,想要进行有效的沟通,就必须充分利用各种各样的沟通管理工具,以达到沟通管理的高效输出。    有效的沟通是解决冲突的重要途径,冲突的形成就是有障碍的沟通,在干系人信息不对称的时候,就会造成信息孤岛,冲突就无法避免;另外,有效的沟通一定是妥协的结果,妥协的力量来自方方面面,有可能是项目基线的调整,也有可能是资源的投入,无论是何种结果,都需要完整的记录到项目文档中,就像领导开会通常都是用脑子和嘴巴直接传递信息,但是作为领导的助理,则必须将信息文档化、流程化。


收尾环节


     有一项非常重要的工作,在项目管理的过程中常常被弱化甚至被忽略,那就是项目收尾。

      有些项目的收尾工作非常复杂,有些则非常简单,但是无论如何,我们都可以围绕项目自身,去做一些必要的工作,千万不能就地解散,各回各家各找各妈;部分收尾工作内容具有普适性,根据项目干系人的不同,他们关注项目收尾的工作内容的重心也不尽相同。

     建设方关注的是项目的建设质量,是否如期按照项目基线和详细设计完成,承建方关注项目交付后资金交付,项目组内部需要进行项目总结、资料归档;有些项目还需要组产品交付后启动新的工作,比如项目后续维护管理,或者是一些长期的项目,需要持续交付,直到项目的终止。

    到了收尾环境,如果代码质量不佳,似乎已经病入膏肓,然而难道就这么不治了?

    显然不是,不管何时做好软件项目的代码质量,都是项目管理的重中之重。

思考



   

    软件工程项目质量,看似是个老调重提的话题,但是却从来没有划下休止符的那一刻,似乎从软考《系统集成项目管理工程师》教材上来看,可以给我们带来一些方法,但是却似乎也更像是学术圈理想的美梦,最终该如何控制?


640?wx_fmt=jpeg


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

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

相关文章

CodeCraft-20 (Div. 2) C. Primitive Primes 思维 + 数论

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你两个长度分别为n,mn,mn,m的多项式&#xff0c;将他们乘起来&#xff0c;问系数modp0\bmod p 0modp0的项的指数是多少&#xff0c;两个多项式所有项的系数gcd1gcd1gcd1。 n,m<1e6n,m<1e6n,m<1e6…

【LOJ166】拉格朗日插值2【拉格朗日插值】【NTT卷积】

传送门 题意&#xff1a;给定n,m,f(0),f(1),......,f(n)n,m,f(0),f(1),... ...,f(n)n,m,f(0),f(1),......,f(n)&#xff0c;求f(m),f(m1),......f(mn)f(m),f(m1),... ...f(mn)f(m),f(m1),......f(mn) 模998244353998244353998244353 n≤100000,m≤1e8,n<mn \leq 100000,m \…

学习MVVM设计模式后第一次用于生产

WPF的MVVM设计模式从winform转变到WPF的过程&#xff0c;难点主要还是在MVVM的设计模式。当然&#xff0c;如果依然采用winform的涉及方式&#xff0c;在每个控件背后绑定事件的方式运用在wpf中&#xff0c;依然可行&#xff0c;但是假如GUI改版&#xff0c;其背后绑定的特别为…

剑指 Offer 14- II. 剪绳子 II

给你一根长度为 n 的绳子&#xff0c;请把绳子剪成整数长度的 m 段&#xff08;m、n都是整数&#xff0c;n>1并且m>1&#xff09;&#xff0c;每段绳子的长度记为 k[0],k[1]...k[m - 1] 。请问 k[0]*k[1]*...*k[m - 1] 可能的最大乘积是多少&#xff1f;例如&#xff0c;…

Educational Codeforces Round 108 (Rated for Div. 2) D. Maximum Sum of Products 思维 + dp

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你两个长度为nnn的数组a,ba,ba,b&#xff0c;你可以至多反转一段连续区间&#xff0c;求∑i1nai∗bi\sum _{i1}^n a_i*b_i∑i1n​ai​∗bi​最大是多少。 n<5e3n<5e3n<5e3 思路&#xff1a; 首…

【CF1215E】Marbles【状压DP】

传送门 题意&#xff1a;给一个长为NNN的序列aaa&#xff0c;每次操作交换两个相邻位置&#xff0c;求最少操作次数使得所有相同的值连成一片。 N≤400000N \leq 400000N≤400000,ai≤20a_i \leq20ai​≤20 我们发现aia_iai​很小&#xff0c;盲猜单独考虑 我们重新确认一个…

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

基于netcore2.0 mvc 开发的 快速搭建具有如下特色的后台管理系统用户管理菜单管理角色管理权限管理[精确到按钮]&#xff09;代码生成器代码克隆到本地 用vs2017或以上版本 打开工程。项目结构如下&#xff1a;找到DbModel下面的初始化db脚本里面包含4张表的schema和初始化数据…

剑指 Offer 25. 合并两个排序的链表

输入两个递增排序的链表&#xff0c;合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1&#xff1a; 输入&#xff1a;1->2->4, 1->3->4 输出&#xff1a;1->1->2->3->4->4 限制&#xff1a; 0 < 链表长度 < 1000 思路&#xff1a;和…

Codeforces Round #720 (Div. 2) C. Nastia and a Hidden Permutation 交互

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个序列ppp长度nnn&#xff0c;每次可以执行两个种询问&#xff1a; t1max(min(x,pi),min(x1,pj))t1\ \ max(min(x,p_i),min(x1,p_j))t1 max(min(x,pi​),min(x1,pj​)) t2min(max(x,pi),max(x1,pj))t…

【NOIP2018】赛道修建【二分】【树形dp】【multiset】【贪心】

传送门 题意&#xff1a;给一棵带边权的树&#xff0c;求MMM条没有公共边的路径的最小长度的最大值。 N≤50000N \leq50000N≤50000 抛开NOIP不谈&#xff0c;其实这题本身出的很好 显然二分 问题转化成了“最多可以找多少条长度不小于kkk的路径” 递归处理 对于每个结点…

asp.net core 系列之Startup

这篇文章简单记录 ASP.NET Core中 &#xff0c;startup类的一些使用。一.前言在 Startup类中&#xff0c;一般有两个方法&#xff1a;ConfigureServices 方法: 用来配置应用的 service 。 Configure 方法&#xff1a;创建应用的请求处理管道它们都在应用启动时&#xff0c;被AS…

可持久化Splay 学习笔记

可持久化Splay是怎么回事呢&#xff1f;Splay相信大家都很熟悉&#xff0c;但是可持久化Splay是怎么回事呢&#xff0c;下面就让小编带大家一起了解吧。   可持久化Splay&#xff0c;其实就是将Splay持久化一下&#xff0c;大家可能会很惊讶Splay怎么可以持久化呢&#xff1f…

译 | .NET Core 基础架构进化之路(一)

原文&#xff1a;Matt Mitchell翻译&#xff1a;Edi Wang随着 .NET Core 3.0 Preview 6 的推出&#xff0c;我们认为简要了解一下我们基础设施系统的历史以及过去一年左右所做的重大改进会很有用。如果您对构建基础结构感兴趣&#xff0c;或者想要了解我们如何构建与 .NET Core…

【洛谷P4705】玩游戏【二项式定理】【NTT卷积】【生成函数】【分治NTT】【函数求导】【多项式对数】

传送门 题意&#xff1a;给定长度为N,MN,MN,M的序列a,ba,ba,b和ttt&#xff0c;随机选取x∈[1,N],y∈[1,M]x \in[1,N],y\in[1,M]x∈[1,N],y∈[1,M],对于i1,2,...,t,i 1,2,...,t,i1,2,...,t,求(axby)i(a_xb_y)^i(ax​by​)i的期望 N,M,t≤100000N,M,t \leq100000N,M,t≤100000 …

剑指 Offer 27. 二叉树的镜像

思路&#xff1a;递归 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:TreeNode* mirrorTree(TreeNode*…

Codeforces Round #626 (Div. 2) D. Present 按位贡献 + 快排新姿势

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个长度为nnn的序列aaa&#xff0c;让你计算 n≤4e5,a≤1e7n\le 4e5,a\le 1e7n≤4e5,a≤1e7 思路&#xff1a; 首先这个式子是n2n^2n2的&#xff0c;显然不能直接算&#xff0c;并且异或没有分配律&…

.NET开发框架(一)-框架介绍与视频演示

本文主要介绍一套基于.NET CORE的SPA高并发、高可用的开发框架.我们暂且称它为&#xff1a;&#xff08;让你懂.NET&#xff09;开发框架。以此为主线&#xff0c;陆续编写教程&#xff0c;讲述如何构建高并发、高可用的框架。&#xff08;欢迎转载与分享&#xff09;它标准化了…

【CF700E】Cool Slogans【后缀自动机】【可持久化线段树合并】【树上倍增】

传送门 题意&#xff1a;给定字符串SSS&#xff0c;求一堆字符串s1,s2,s3,...,sks_1,s_2,s_3,...,s_ks1​,s2​,s3​,...,sk​&#xff0c;满足s1s_1s1​是SSS的子串&#xff0c;且sis_isi​在si−1s_{i-1}si−1​中至少出现两次&#xff0c;最大化kkk ∣S∣≤200000|S| \leq …

P1377 [TJOI2011]树的序 笛卡尔树优化建树

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一棵二叉树的生成序列&#xff0c;让你输出一个字典序最小的序列&#xff0c;使其生成的二叉树与原来的二叉树相同。 思路&#xff1a; 首先想到暴力建树&#xff0c;让后输出先序遍历即可&#xff0c…

译 | .NET Core 基础架构进化之路(二)

原文&#xff1a;Matt Mitchell翻译&#xff1a;Edi Wang&#xff08;接上篇 译 | .NET Core 基础架构进化之路&#xff08;一&#xff09;&#xff09;Maestro 及依赖流.NET Core 3.0 基础结构难题的最后一部分就是我们所说的依赖项流。这不是 .NET Core 的唯一概念。除非它们…