三个多月过去了,我们软件开发经历了Alpha版本、Beta版本、Beta2 版本,最终做出来了,在该月末就会发布,alpha版本过后组员一起开了会,然后在beta版本,beta2版本我们软件设计和alpha版本UI设计基本完全不一样, 工作量也比alpha版本大很多,队员们的热情也此起彼伏,设计草案也换了很多……回首起来,确实值得很多反思

…………

…………

…………

如果我们重新来过,那么我会做的比现在更好么? 如果我们继续改进,那么我们会有什么其他突破?如果?

下面我将从这几个方面来一起回首我们的软件开发以及改进流程

我们软件具体实现和设想已经在上一篇博客里写的很清楚,这里我就不在此阐述

http://www.cnblogs.com/OMG-Team/archive/2011/11/26/2264704.html

1. 软件的设想和计划

可以说任何事情都要有个大纲,大纲可以保证我们正确无误的沿着计划前进,我们在Beta版本继续明确了我们会议助手的核心:帮助那些参加会议的人高效而又便捷的参加会议,听talk,记录自己喜欢的论文和会议。 为了更快地展示会议的日程,我们设想分两个层次,第一个层次是session和下面的talk,第二个层次是talk detail 界面, 然后支持session , talk 添加按钮并闹钟提醒功能。然后为了实现我们强大的功能,我们选择添加作者以首字母为索引的作者列表,然后点击作者列表可以到作者的详细界面,添加地图,添加记事本,添加关键字搜索,添加会议设置,添加主办方提供的其他信息。其实我们只是为了完成这个设想而假设了很多结果,这个肯定会有用,那个肯定也会有用,想着feature越多,肯定越好

Feature越多,功能越强大? 这样是对的么?

虽说我们做过了用户调查,但是我们调查的结果并没有很满意,我们并没有很好的手段去了解用户的痛苦,去聆听他们的心声,因为真实的用户都是我们的导师,我们害怕耽误他们的时间,所以用户调查做的不是很好,用户在开会的痛苦除了如何高效地展示agenda之外我们的定位也不是很准。 通过现在的用户反馈,除了展示agenda和展示用户提供的其他信息(宾馆,会场等) 我们发现其他feature并不是很突出,或者说对用户来说要不要都是差不多。

而且还有一点是: 我们的设计缺少用户粘性,有可能这个软件用户用了一次,就不用了,因为这个软件不是social的,都是individual,没有一个用户交流的场景。

根据真实用户反馈,其实开会时候,很多参会人员都会推荐这个会议,那个会议,都会讲述自己看了写什么论文,或者感觉什么论文不错,也会交流自己的心得,甚至会交流自己的联系方式

因此如果我们重做的话,除了展示agenda以外,我们想可以有多个标签,如果感觉喜欢或者有意思的或者已经读过的,或者将要读,或者推荐给其他人的都可以进行分类,一旦标好之后,我们就可以通过这些标好的论文或者会议进行交流了。 可以实现近场通信,或者和周围的服务器进行通信,这样我们既可以满足用户的多样化需求,也可以满足用户快速交流的需要,甚至有这样一个场景,用户两个手机像握手一样摇一摇,就可以通信了。

2. 人员管理分配以及具体实现

我们软件工程有5+1,其中一个是临时调配过来的,对以前的代码也不是很熟悉,所以我选择分配给他比较独立的任务,而其他五个代码能力相差很大,可以这样说其中有一个人代码能力很强,代码风格也很不错,但是此人很有自己的特点,对任何事物欲望不是很强烈,而且比较独立,所以很难改变他的想法或者激励他干什么事情,平常开会时候精神状态也不是很好,从此看出,他对这个任务不是很喜爱。 其他四人代码能力平平, 对c#也是刚刚入门,在alpha版本出现了一个很不好的现象就是那个人能力超强,基本上把所有代码都写了。 其他人的代码贡献率很低。为了排除这个现象,同时保证确保整体的代码质量,我决定前期把所有人的任务分配的差不多,那个代码能力很强人的负责底层代码的构建,其他人负责没有涉及构架代码的其他模块,而且也保证了每个人的代码分配,最后一旦其他人的代码完成了,可以把重心都转移到整合和框架的扩充上面。

事实证明这个方法挺好的,确实保证了整体的良好代码风格和质量,但是问题也相继出现,我们没有分很详细的task,没有很详细的时间,是一个模块一个模块的分给他们每个人,因此每个人的进度不好确保,不好量化,因此不好估计他们的工作。

我们又想了想,发现如果我们继续走一步,把每个人的模块化工作也量化好,尤其是底层框架那个大骨头也能量化好,这样的效率应该更高一点。

作为PM我又考虑到我们队员的整体代码能力不强,所以我把时间节点调的非常密集,共有两周的任务,我基本上都放在了第一周完成,虽说当时我们的一周没完成,但是至少保证了两周之内完成了。给我们很多预留了时间保证了我们的工作进度。

这一点挺不错的。所以趁着大家的热情,把主要任务放在前面,把时间压缩,能有效保证我们开发进度。

3. 代码质量

虽说我们团队有一个人代码质量很好,但是他始终替代不了我们所有人,在异常处理方面是最明显的,我们很多人都没有意识,如果代码出现异常怎么办?如果解析不成功怎么办? 但是经过后期的bug 修复,以及test 整体的代码还是挺强健。

代码质量其实是需要tester来进行监督的,可能是前期我们的tester充当dev的缘故,后期的tester 做的并不是很到位,很多情况下都是PM催着他们,有时是一遍遍催。可能我并没有很大调动他们的积极性,或者项目到了后期,大家的热情降低导致战斗力下降。

这方面,PM要加强tester的作战能力,调动他们的热情,比如聊天,或者物质奖励之外, 还应该监督tester有一个规范和严格的检测标准。

4. 团队的合作和效率

经过alpha版本的团队合作训练,我们总体的合作还是挺好的,有什么问题确实做到了即时报告PM,但是效率这方面还是有点欠缺,最主要因素是我们的代码实现能力还是有所欠缺,很多情况下是我们有一些想法,但是限于代码的实现有时候不得不折中或者妥协。但凡是都有第一次,相信我们的代码能力会越来越强,以后效率会越来越高。

5. PM协调

此次软件工程,说实话PM干的活挺多,既充当传统的PM角色,还揽有一个dev的活,这样的PM好么?

其实这样的PM不好

因为PM其实不是每天写些博客,监督下队员的进度就行了的,也不是认为你PM写代码就牛逼了,牛更加调动队员的积极性了的。

其实PM的核心在于想法,在于沟通,在于防微杜渐,在于保证进度,在于确保团队的方向,在于协调领导和用户需求。在于决策下一步该怎么走?走的好不好?在于观察队员们的战斗力,时不时给他们打打气,给他们聊聊天,看看他们的问题,看看他们的需求,第一时间解决。

而这次的PM充其量就是苦力,就是苦力鼓励机,PM用自己的时间和热情想鼓励大家,其实这样的鼓励是不持久的,是短暂的。

而事实证明也是这样的,即时现在我再苦力,在用心,他们的激情并没有很好的被调动,甚至现在的队员有时一动不动。

如果重新开始,PM会选择做好用户调查,提供更多简洁的设计,果断做些决策,加强PM的影响力和感染力。

分析每个队员的特点,并针对每个队员进行疏通,进行交流。

6. 总结

其实我们的软件不是一个完整的软件,是一个在学术搜索平台上搭建的一个新的应用,没有独立性, 很多想法受束,这也可能是我们队员后期激情不是很高涨的原因,另一个方面是我们的软件用户使用人群虽说很明确,但挺少,而且还面临着这样一个问题,要得到Host的支持和推广。

虽说路途有些纠结,但是既然是PM ,我就要站出来,为我们的努力说话,为我们的软件上线做出更多努力,更多推广,要让队员们看到即使前面的路有些艰难,我们仍会坚定地走下去。

转载于:https://www.cnblogs.com/OMG-Team/archive/2011/12/14/2288097.html

沉思录---Windows Phone软件开发Beta版回首相关推荐

  1. ROS Windows 人机交互软件开发探索与总结二(在win10平板使用ROS人机交互软件)

    ROS Windows人机交互软件开发及使用以上线古月学院,欢迎感兴趣的小伙伴订阅 如何实现windows ROS人机交互软件 win10 ROS安装之后将opt目录及vs2019目录拷贝到平板上即可 ...

  2. 独家对话华为王成录:手机 HarmonyOS 开发者 Beta 版将如约而至

    今年9月的华为开发者大会HDC2020上,华为发布了面向全场景的分布式操作系统HarmonyOS 2.0.这款操作系统一经发布便获得了业内的热切关注,在开源社区更是掀起了一股讨论的热潮.那么Harmo ...

  3. Ubuntu安装及Ubuntu下常用软件安装(不断补充)及Windows相关--软件开发用途

    之前一直使用Window系统,现在工作中大家主流使用Ubuntu,同事帮忙装个Ubuntu系统,事后写一下安装过程,以备后续再次安装查阅. 1Ubuntu安装 1.1Ubuntu文件下载: Ubunt ...

  4. 沉思录三:敏捷开发的精髓是什么

    面对一个架构设计繁复的linux服务器端应用,难于维护的局面,如何破局?我想起当年大家讨论敏捷开发的事情.若干年后,尘埃落定,敏捷开发遗留下的最实用和重要的是:结对review和自动构建. 为何想起敏 ...

  5. Flutter 桌面应用开发配置与打包 Flutter Windows 桌面软件开发

    在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...

  6. 敏捷软件开发(c#版)文摘

    第一部分 敏捷开发 第1章 敏捷实践 第2章 极限编程概述 第3章 计划 第4章 测试 第5章 重构 第6章 一次编程实践 第二部分 敏捷设计 第7章 什么是敏捷设计 第8章 SRP 第9章 OCP ...

  7. VC开发Windows客户端软件之旅——前言

    从第一次拖着行李入京找活,至今已工作若干年了.这些年一直追逐自己的梦想,跑过三个城市,换了三份工作,认识了很多业内的朋友.和朋友们闲聊时,发现很多人都已经不再做客户端软件了.有的转去做管理,有的转去做 ...

  8. 从Windows角度看Mac OS X上的软件开发

    如果原来从事Windows软件开发,想跨足或转换至Mac OS X环境,需要知道那些东西?有什么知识技能可以快速运用在Mac OS X环境上的?这两个问题应该是Windows开发者进入Mac OS X ...

  9. Windows Phone Developer Tools Beta 发布

    随着Windows Phone 7上市的临近,微软也在加大相应开发工具的完善.7月初,微软放出了最新的Windows Phone Developer Tools(beta版)开发环境,该版本将完全兼容 ...

最新文章

  1. 2021年大数据ELK(二十二):采集Apache Web服务器日志
  2. iOS 中 load 和 initialize的实现顺序
  3. 【算法】单源最短路径和任意两点最短路径总结(补增:SPFA)
  4. 引入其他配置文件(分模块开发)
  5. C语言求35 45的最大公约数,C语言怎么求最大公约数和最小公倍数
  6. Vue.js中的8种组件间的通信方式;3个组件实例是前6种通信的实例,组件直接复制粘贴即可看到运行结果
  7. 控制用户的访问之权限、角色【weber出品必属精品】
  8. 2.9 go mod 之本地仓库搭建
  9. Entity Framework 6 和 MVC5
  10. JPA+Hibernate 3.3 ——第一个JPA程序
  11. 第十一章、认识与学习BASH
  12. PTV-VISSIM交通仿真
  13. oracle导入dmp报20000,imp导入dmp文件报:IMP-00038: 无法转换为环境字符集句柄IMP-00000: 未成功终止导入...
  14. 欧拉角(转子动力学)
  15. html指南针绘制,Fireworks绘制指南针详解
  16. HttpMessageNotReadableException: Required request body is missing
  17. Causality Inspired Representation Learning for Domain Generalization 阅读笔记
  18. unity 控制点 贝塞尔曲线_在Unity中使用贝塞尔曲线(转)
  19. 企业法人如何去申报每个月的个税的呢
  20. 阿里技术专家甘盘:浅谈双十一背后的支付宝LDC架构和其CAP分析

热门文章

  1. 如何快速阅读一篇英文文献
  2. JDBC 此驱动程序不支持 Java Runtime Environment (JRE) 1.6 版
  3. Centos7/RedHat7 下 python3使用cx-freeze打包matplotlib程序遇到的问题和解决办法
  4. nginxtomca负载均衡
  5. MySQL----ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
  6. T2821 天使之城 codevs
  7. Android之线程池深度剖析
  8. Struts2 入门修行第一天 | 小节二
  9. leetcode算法题--仅仅反转字母
  10. leetcode算法题--两句话中的不常见单词