ms2软件开发和管理四周培训总结

转载 2006年06月09日 11:54:00
 Vision:  一个软件如果没有明确的Vision,就如同在旅途中失去了方向。而且此Vision要能被团队所有人接受,并能够激发大家的工作激情。所以在软件开发的开始阶段,确定Vision是件极其重要的事情。好的Vision会让团队所有人充满激情,并能够很容易的被外界所认可。我就经常拿着我们LLK的Link our lives这个Vision和We don't deliver game, we deliver pleasure and friendship这条Mission到处宣传,宣传之中充满自信和自豪:P。其实做任何事情也是这样需要明确Vision。人生更是如此,需要让自己过得充实过的激情的Vision。我们人生的Vision是什么?近期这几年的Vision又是什么?我们需要多多考虑这些问题。
       “要为自己的人生画饼“   -- 摘自维英某次演讲名言
 
       Scenario和Persona在软件开始开发之前,需要弄清楚这个软件的用户是谁,他们的需求是什么。找几个典型的Persona来体验几个典型的Scenario是非常重要的。这会让开发人员明白他们要做什么,软件究竟需要提供什么功能。我们的LLK最初的Scenario就没有从Sponsor的角度出发,绕了很大一个弯再回来。为人处事也是如此,如果能多站在别人的角色上想一想,我想事情做起来会很顺利。
 
       Feature List and Spec: 我想编程人员是很不愿意写着两个东西,总是Feature跟着程序变,spec很多时候也只是为了完成任务而已,包括我自己。一个成功的软件在开始coding之前,需要有详细的Feature List和Spec, 特别在一个团队中,而且它们需要在团队中一起讨论得到,每个人都要参与进来,每个人都应该清楚。如果没有这些文档,软件开发就会变得混乱。我们Team就没有详细的Spec,以至于很多时候在重复讨论一个问题,来回反复。
 
       Design and review: 软件的设计得好坏直接关系到软件的质量,代码的质量也是跟软件质量息息相关。如何做一个好的设计和编写高质量的代码呢,让团队一起来Review你的设计和代码,让别人尽可能多的Chanllenge你。团队每一个人的设计都需要让其他人知道,让问题尽可能在开发的早期全部暴露出来。Review也是学习的过程,年轻不怕犯错误。Review也会真正的让写程序变成一种态度。
 
        Test: 以前做的最多的Test就是写完后在程序里Debug几下走一遍流程。经过这课后发现原来有这么多种的Test。以前总是认为Unit Test没啥用,其实它是软件质量的一个很重要保证。最有趣的是usability test,也就是我们常说的用户体验。
 
        Commuication: 这个简直太重要了,血一样的教训。这也是为什么微软会设立PM这个职位。很佩服上上周四那位ATC的女PM,简简单单的评述一天生活就道出了PM所需要的素质。团队需要Commuication,不然就仅仅是几个人凑在一起而已。项目过程中出现的太多太多的问题都可以归功于Commuication上。
 
        Triage: 这个很有趣,一般是在很棘手的问题或者项目后期对一些Bug或者还没实现Feature的讨论。就是团队的人坐在一起讨论这些Bug是不是要Fix,哪些Feature一定还需要实现,哪些需要Cut掉。需要最后给出决定。
 
       Post Mortem: 中文翻译或许就叫经验总结大会。一般是在项目快结束的时候,团队所有人坐在一起讨论发自内心的讨论哪些地方做得好,哪些做得不好,为什么会这样。这个很重要也是很必要的,因为人生就需要经常总结和反思。我们Team前天两个小时的Post Mortem好的方面写了一张纸,需要improve的地方整整写了四张纸。慧城弟,等你的整理呢!昨天下午还意味无穷,接着和慧城弟两个人post mortem了一个下午,时常结合到了人生的高度:)
 
        Leader: 不是第一次做Leader了。小时候经常当班长,本科的时候当过数模协会会长,网站的技术总监。。。还有很多活动中的Leader(大多数情况下是没有人想当_-_)。但这一次是我做的最用心的一次了,不再是随随便便的没当回事,时常在想应该怎么做才能做好呢。感谢邹欣和Steven在这方面对我的指导,从你们身上我也学到Leader需要的一些素质。Leader需要把握项目的整体,驱动团队向前,把整个团队牢牢的团结在一起,而且很多时候要快速的对情况做出反应,快速的作出适当的决定。其实在这四周里,我们Team很多人都给我提了很多很好做Leader的建议。虚心并能快速的学习是我的一大财宝,我现在也越来越意识到自己的这一个优点。还好,对于结果来说,我这个Leader还是当的相当成功,因为我们的团队所有人给结果都打了80-90分。但过程并不是那么可控,没有严格的按照这套流程走下来,好多时候出现的危机是靠几个牛人加班加点的弥补。我想多多经历这样的过程,才会对软件开发和管理有更深的认识和理解。
 
       最后的总结:实践实践再实践,因为理论总是死的,只有在实践中思考,在实践中学习,在实践中总结才是最好的方法。软件是如此,人生也是如此。

相关文章推荐

嵌入式软件开发培训笔记——C高级 存储类、链接和内存管理

(1)概念:分配和释放内存的方式。 (2)管理方法: 1)静态内存管理方式     在程序中定义变量,在编译阶段为其分配内存空间,该内存空间的生命周期在程序运行过程中由系统帮助我们维护,不需要我们在代...

SAP公开课笔记:基于HANA的软件开发 - 第四周总结

第一章 通过OData暴露和消费数据的基础架构 这章的内容很简单。在开始真正开始开发之前,回顾了一下第一章所提到过的传统软件开发架构和使用XS架构的区别。值得记下来的是ICM是整个架构的一部分。 ...

《敏捷软件开发过程及最佳实践》培训总结

整理资料,发现很久以前的培训总结,分享之 fasiondog 敏捷不是“银弹” 当前“敏捷”是一个比较流行的词汇,当敏捷不是大家想象的银弹,对人员的培训及方法的掌握仍旧是不可替代的。敏捷开发来自欧...

Qt软件开发文档2---QT构建dll库,并使用dllmanager管理dll库

1.QT创建新项目 以treeViewDll为例 文件中含有treeviewdll_global.h 在treeview.cpp 中正常写入需要的内容 treeViewDll中声明在manag...

嵌入式软件开发培训笔记——java第五天(API——math/string/集合/日期时间以及java线程)

目录     掌握命令行参数的使用     掌握Math类中常用的方法     掌握String/StringBuffer/StringBuilder的用法     掌握几种常用集合类的用法     ...

嵌入式软件开发培训笔记——Linux网络编程及I/O模型

一、基础知识     1、网络体系结构(协议模型)         协议模型的特点         OSI和TCP/IP协议模型     2、TCP/IP协议模型   &...

嵌入式软件开发培训笔记——shell基本命令

(1)关于shell,linux中的shell可这样认为——是linux内核的一个外层保护工具,并负责完成用户与内核之间的交互; 明确几个概念:命令、shell和shell脚本 Shell是一个命令行...

嵌入式软件开发培训笔记——嵌入式linux内核与文件系统移植与分析

一、内核的移植配置 内核版本linux2.6.35 1、基本内核配置      1).   主Makefile         ARCH        = arm   &...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)