[阅读]个人阅读作业week7
People-oriented in Agile
- People-oriented in Agile
- One Leader
- Prepare
- Good ideas from users
- People-oriented
- Performance
- No silver bullet , But people management
- Summary
面向人的敏捷开发,恩,这就是我今天想要表达的主题。之所以想表达这个主题,主要还是因为我在项目中的职能:项目经理——在管理一个团队与沟通的过程中,关于这一点触动最深。
下面就以这一点为核心谈谈我的一些想法吧。
One Leader
The Cathedral and the Bazaar: “given enough eyeballs, all bugs are shallow”
这句话是The Cathedral and the Bazaar的主旨,按我理解来说它的意思是:只要搏人眼球,瑕疵无所遁形。
在大教堂的模型中,是由一个完整的开发团队来开发一个项目。而在集市的模式中,一个完整的项目是借助于互联网的东风由网上的各位爱好者贡献而产出的。粗略来看,集市模式看起来更好,因为它能减少大量的个人开发时间。瑕疵之所以无所遁形,是因为群众的眼睛是雪亮。同时,开源的代码让不同的思想在同一个项目中产生了碰撞,可能会产生非常奇妙的灵感。
但是我个人是谈不上赞同或不赞同哪种模式的。大教堂模型更像是当前主流公司所采用的模式,有一个完整的开发团队来开发某个软件或模块。在看过另外一篇文章Lost in CatB后,我觉得一味争论开源化还是商业化的问题本身是没有任何意义的,一味地肯定或否定某种模式只是片面之说,一种模式的存在即是其合理的表征。我更加赞同的一种观点是:不管是开源还是商业化,都必须要有一个人对整个项目负责。不是两个人,不是三个人,而是一个人。
这一点上让我感受颇深是因为另外一支队伍。这支队伍是我们团队初期预想的最有竞争力的一支队伍——最根本的原因是他们队伍里我欣赏的人很多。这就意味着团队里的每个人都有着独当一面的能力,独自解决问题的思路与别树一帜的想法。
但是他们的开发过程中出了一些毛病,我也能明显感受到:
- 名义上的项目经理参与不到真正的项目开发中来
- 实际上的项目经理没有完全发挥项目经理的职能,没有一个整体的规划和组织
我了解他们组的同学,也知道他们的设计师和文档撰写人员的厉害。他们的文档有些时候我真的是自愧弗如,而他们的设计师本身也是工程经验非常丰富,也非常有责任感。
但是,他们组缺少一个灵魂核心:项目经理。一个项目缺少好的项目经理等于缺少润滑剂。如果没有对一个项目负责的项目经理,项目虽然可能在磕磕绊绊中会前进一些,但是发展到后期就会彰显出它的不协调。
设计上的事情可能框架的设计师可以全权负责。但是要把这些理想的图纸付诸实践,到每一个人身上的时候,就需要项目经理来安排进度。
Prepare
Do less, start earlier。
Once we have the design, we can plan the construction。
看到这句话,突然感慨万千。联想到了我们项目初期时我做出的选择,现在看来那时的拼命确实是有必要的。
当时还是团队项目的第一周,本来是需要在第一周只需要项目经理做NABC需求分析的。但是深谙设计的重要性的我没有满足于现状。从第一周开始我就和设计师商量框架、实现方案、设计思路以及可行性。并且在第一周就已经制定出了可行的,学习成本较低,并且可以让大部分人都参与进来的技术方案。
不止这些,我还和UI设计师卤蛋一起商量网页原型设计,寻找好用的设计工具。其他人也没闲着:主程序员在寻找各个实验的标准原始数据录入表,而两外两位开发人员则在寻找标准的预习报告模版以减轻后面的工作量。
虽然第一周的工作在后来被验证依旧是没做到非常细致与缜密,但是第一周我们的规格说明书的雏形初成有着重大的意义。它不仅是团队风貌的展示,更是后面我们前端后端对接顺利的保障。界面原型设计是前端与后端工程师无形的接口,它在项目开始前就已经得到多次修缮,这使得前端和后端第一次对接非常成功。
Start earlier,上帝不会亏待任何一个早准备的孩子。
Good ideas from users
The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.
提到这一点我就不得不提到敏捷开发。敏捷开发中的迭代周期短,是因为在短周期的迭代后可以获得最新的用户反馈并及时更新需求以获得更好的软件满意度和质量,这也是敏捷开发的特点之一:Responding to change over following a plan。
因此,我们团队设计了一些激励措施例如发红包等来激励用户向我们反馈他们最真实的需求。并且由于我们产品本身定位方向切实戳中了学生通点,有很多热心的学弟学妹会主动在群里反馈一些可行的建议,这样动态调整需求,让我本身对第二轮迭代要做的功能进行了大幅度的修改,更加符合用户的需求。最好的建议往往来自想使用的人。
People-oriented
Agile methods are people-oriented rather than process-oriented.
Furthermore his studies of software projects have led him to conclude the people are the most important factor in software development.
敏捷开发是面向人而不是面向过程的,是要以人为本的。这一点上我的感触最深。我在团队项目中充分地感受到了我自己身为项目经理的胶水作用。我就像个跟屁虫,每天都跟在每一位我还不放心的开发人员后面一直追问他的进度,发展情况,是否遇到了解决不了的困难,是否希望可以调换任务,是哪里出现了问题等。即使有每日scrum meeting,我也会每日如此追踪,一直到督促他们完成当天的任务或者跟他们一起解决当天的任务为止。
而每个人在项目中发挥的作用都非常重要。
人和程序不一样,程序接收固定的输入,执行固定的步骤,给出可行范围内的解。但是人,只要是愿意参与沟通的,他们身上都会有无限可能。
Performance
但是典型的软件项目往往是没有规律及可预测环境的。项目成功的唯一正确度量就是:最终的结果通过整个生命周期里的实施达到了预期目标吗? 很难知道什么关键活动导致了项目成功和失败,很少有人能够通过旧有或现有的项目获得答案。几乎不可能判定哪些决策导致了成功或失败。
在这一点上我感触比较深的是,在团队最后绩效分配上我做出的选择。我最终还是没有选择严格按照当初定好的团队贡献分配策略来严格给分。一方面确实有很多地方是我的失误:
- 时间估计错误
- 任务量估计不足
- 中间形式规定含糊
这些都是我的失误,而且因为这些失误导致我和队员都付出了巨大的时间,却收获较小,有很多是可以使用非常简单的技巧就可以完成的,最终却绕了远路。我没法因为我安排任务不合理而使得任务最后完成效果较差而把他们的真正贡献打折。另一方面就是队员本身能力的确有限,虽然我已经设身处地地在分配任务时按照不同能力分配门槛不同的任务,但是也有很多时候效果依然不尽人如意。
No silver bullet , But people management
我认同在软件的开发中没有任何一项技术可使软件工程的生产力在十年内提高十倍的说法,但是我认为在软件开发的过程中,为了提高生产力,更需要的可能不是从软件开发的方法下手,而是要从团队的人力管理上下手。好的项目经理应当懂得如何为合适的人分配合适的任务。不论是瀑布模型,敏捷开发模型,模型本身都不应该是一个软件开发的关注重点——人才是软件开发的关注重点,模型只是建议,可人才是决定性因素。
一个团队是否能协调有力地前进,不在于他们采用了哪种模型,使用了什么工具,懂得了什么不一样的方法,而在于团队内的好程序员和他们的项目经理。
Summary
自我当项目经理以来,初期时每日兢兢业业,生怕哪天自己没有安排好后两天的进度计划而使整个项目被迫停止下来。虽然途中也遭遇了许多挫折,遇到了很多的意外情况,比如有时因为中间形式不规范(数据处理部分)而导致对接困难,大部分时候我遇到这种情况都得把双方的代码阅读一遍,然后修改代码格式才能对上。心里的疲惫与苦涩,导致有一天上午我真的有感受到身体负担过大而心绞痛。
每天都有人劝我早些休息,不要那么拼命,但是为了团队能协调前进,有些时候我不得不费非常大的力气去做一些很琐碎的事,很麻烦的事,很吃力不讨好的事。
但是这些都是值得的吧,至少在我看来,这些独有的经验与心路历程,都将是我一生的财富。
[阅读]个人阅读作业week7的更多相关文章
- [阅读]个人阅读作业week7(200)
个人作业week7——前端开发感想总结 此次作业因本人(学号1200)长期不上博客所以密码遗忘,输错次数过多账号被锁,所以在SivilTaram同学的博客下挂我的作业,希望助教老师谅解~谢谢! 1. ...
- 个人博客作业week7
个人阅读作业week7 一.瀑布 软件工程的瀑布模型是1970年由Winston Royce提出来的,即软件的开发按照一个严格的.顺序的.单次的瀑布流开发周期.例如需求分析阶段.概要设计阶段.详细设计 ...
- 个人作业week7——前端开发感想总结
个人作业week7——前端开发感想总结 1. 反思 首先要谈谈在这次团队项目的工作中,我这边出现过的较为严重的一个问题:我和HoerWing (后端担当)合作时,最初因为我没有使用github(始终连 ...
- 个人博客作业Week7(阅读文章,心得体会)
Alpha阶段结束了,内心可以说是五味杂陈.不是说我们的产品拿不上台面那般差劲,复杂的心绪主要来源于和别的队的比较,别的队才刚刚发布没多久访问量和注册量就破百了,并且还发起了找bug送红包的活动.可能 ...
- 个人阅读作业WEEK7 (软件工程的瀑布, 大泥球, 教堂,集市,和银弹)
一 . 关于银弹 (Silver Bullet) 银弹,被引申为解决问题的有效办法.IBM大型机之父福瑞德·布鲁克斯在1986年的论文<没有银弹>中表达了他的观点:软件工程中不存在银弹—— ...
- 个人阅读作业Week7
没有银弹 <没有银弹>,Brooks在该论文中,强调真正的银弹并不存在,而所谓的没有银弹则是指没有任何一项技术或方法可以能让软件工程的生产力在十年内提高十倍.文中讨论到了软件工程中主要的两 ...
- Lobooi个人作业:阅读与准备作业
这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience 这个作业要求在哪里 https://edu.cn ...
- RSS阅读器“阅读原文”报错400
问题 使用SpringMVC框架,实现了RSS订阅,在FoxMail的RSS订阅页面,点击[阅读原文],报错400 . 每个RSS文章的链接是:https://jiashubing.cn/forum/ ...
- [个人博客作业Week7]软件工程团队项目感想与反思
在阅读了推荐阅读的材料之后,我想了很多东西.最终还是决定,以团队项目的经历为主线,叙述我关于软件工程的一些思考与体会. 凤凰涅槃,浴火重生 如果要我来概况这几周团队项目的经历的话,那么句话是我所能想到 ...
随机推荐
- error while loading shared libraries: /usr/lib64/libc.so.6: invalid ELF header
在安装一个程序的时候提示libc.so.6过旧,但是查看libc.so的版本是最新的,于是尝试使用尝试软链接 ln -s /usr/lib64/libc.so /usr/lib64/libc.so. ...
- AT&T汇编语言——工具及程序组成
1.开发工具 在汇编语言中,用到的工具主要用下面几个: 汇编器.连接器.调试器.编译器 由于我在这里的是AT&T汇编语言.所以工具下也都是gnu下的那些. 1.1 汇编器(as) 汇编器有非常 ...
- 如何制作CSR文件?
如何制作CSR文件? 在申请数字证书之前,您必须先生成证书私钥和证书请求文件(CSR,Cerificate Signing Request),CSR是您的公钥证书原始文件,包含了您的服务器信息和您的单 ...
- Scala 深入浅出实战经典 第42讲:scala 泛型类,泛型函数,泛型在spark中的广泛应用
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- Objective-C中将结构体与联合体封装为NSValue对象
在Clang 3.7之前,Objective-C已经可以使用类似@100.@YES.@10.5f等字面量表示一个NSNumber对象:用类似@"xxx"的字面量表示一个NSStri ...
- log4j总结
log4j介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Sysl ...
- Asp.net Core CacheHelper 通用缓存帮助类
using System; using Microsoft.Extensions.Caching.Memory; using System.Runtime; namespace UFX.Tools { ...
- 关于mvc、webapi中get、post、put、delete的参数
webapi中post提交的数据必须是一个类,get提交的数量无所谓 多种参数get时,参数名不能相同: 在能通过c#的校验的前提下,参数名.参数数量不能全完相同 public string Get( ...
- Amazon的Fire Phone之于Android开发者
在上周Amazon也耐不住加入了手机竞争行列之中,发布了自己的Fire Phone,于是Android家族又多了一位变种成员,Android系统的碎片化程度也进一步加剧.因为工作的关系,我有幸在上个月 ...
- 批量Ping IP
刚刚接触Python 想做点什么 听说Python 在网络方便很厉害 后来总结如下: 第一:发现公司都固定IP 每次新来同事都要猜一个没有人用的IP 很费劲 第二:我们公司有的IP可以上QQ 有的不 ...