当前课程知识点:软件工程 > 第4章 软件开发过程 > 4.4 微软公司开发过程 > 邹欣经理自我介绍
我叫邹欣
我是微软中国公司的
一个研发经理
那关于我自己呢
我大学就学的是计算机专业
然后我九六年
我就加入了微软公司
当时是参加一个叫做Out look
这样一个团队
事实上是一个Email的客户端
然后
在工作了几年之后呢
我的确对软件开发的流程
比较感兴趣
所以我就加入了一个团队
叫做Product studio
就是微软内部的一个工具
怎么样管理软件的开发
然后随着我们的小的工具
被发布在外面
就是我们想说
如何把微软这个开发工具
作为一个正式的产品
发布给别的企业
所以我就加入了
这个Windows Studio团队
我们一块发布了一个产品叫做
Teams fondshion serve
就是说怎么样让一个团队
来协作发布一个软件
这也是一个项目管理工具
然后从2005年开始呢
我就在微软工作
然后我前面的大概七年时间呢
我是在研究院做了很多的这种
叫做incubation或者inkonwbation
就是内部的一些创新的工作
我们跟研究员合作
说把这些比较先进的一些算法
一些实验 一些想法
一些计算的突破
我们把它做成一个
很好的小的产品
然后我们在内部去
相当于内部创业一样
说这个产品
我觉得这个想法
对你的产品很有帮助
你看看是不是要在下一个项目中
加上这样一些功能
或者说
这个产品你在现实中
碰到什么问题
我们研究院是不是能够帮你解决
所以做这个产品
做了很多很有意思的事情
在研究院里面
比如说其中一个就是
我们做了一个Face SDK
就是可以识别人脸
可以做一些人脸相似度的鉴定
可以做一些人类的变化等等
这个在最近一段时间
好像关于人脸方面的应用比较多
但事实上呢
这个关于人脸的很多研究
和最初的早期的工作
都是在几年前做的
然后在2012年的时候
我就加入了Bing团队
做一些Bing搜索的客户端的产品
然后去年我加入了Windows团队
就是和美国
还有别的地方的微软团队一起
就是做Windows10
就是Windows10的这个工作
其中参与的比较多
是一个叫Cortana
就是它的
新一代的人机交互的助手
就是叫Cortana
又叫小娜
所以这就是我的一些经历
然后我平时就是
因为我在研究院工作的时候呢
跟大学有很多交流
所以我在学校也有一些讲课
有一些经验分享
我自己也做很多的实习生的培训
以及后来我又写了一些书
介绍一些软件开发的一些经验
那还有一点呢
就是很多在校大学生
他当然想去跑到这种公司工作
这里有很多
现在风投比较厉害的公司
也有一些做的产品比较好的公司
然后大家有一个问题就是说
那我们
这样一些公司对学生
对工程师有什么要求
我个人感觉就是说
因为我平时也在课堂里讲课
事实上在学校里
或者在实验室里
或者在科研机构里
和在公司里做这个软件的方法
还是很不一样的
所以我们有四类
比如说我们都叫软件构建
构建一个软件
Building A Software
但是第一种叫Build to learn
比如说
我们在学校里学这个数据结构
算法 链表或者学操作系统
编译原理
事实上没有人在现实生活中
需要你去写一个操作系统
或者说你要用双链表
来实现什么东西
你在做这个系统的时候呢
事实上是做一些实验
我要学习一下这个操作系统
怎么做竞争管理
怎么做一些调度
怎么处理这样一些输入输出
那事实上
客户知道这个软件
你是在学习
这是所有大学生
我觉得写软件的主要方式
然后还有一点就说
那你做完之后
有时候你要去做一些演示
那这些演示有时候会说
你为了突出某一个特点
你把这个特点做了
花了很多精力
然后你想了一些
很吸引眼球的这样一些实用场景
但未必是一个主流的实用场景
这个你会获得一些相关报道
或者说 会我们叫做
Impress ordors
会让别人觉得
这个团队做的很不错
这个想法很新颖
从来没做过
但是你的功能未必很实用
所以我们有时候做很多比赛
有时候会做一种Build To show
就是说你做这个软件
事实上是给别人看
我多么厉害
那还有一种叫Build To Serve
比如说我们学校里有很多的
教学 一些网站 管理啊
像它的目的就是
也不是为了展现他多么厉害
而是说呢
我就要给你提供一个服务
因为它要求比较稳定
或者是跟上主流的这种变化
做好这点也不容易
比如说我们经常听到
说学校的一些网站
它只能用IE6来访问
但是我们所有的人都用了IE10
或者是别的一些浏览器
都很先进
那你这个Build To serve
就是说
我构造软件是要服务别人
那你这个目标
实际上就没有达到
所以这也是一种方法
那还有一种是说
那当我在一个公司里的话
那我当然是为了盈利
为了Profit
为了盈利地来做这些公司
那我一定要在市场上打败别人
这是说
或者是我要争夺更多的市场份额
然后我要做得更有效率
那么这些时候呢
我们叫做Build To win
那在软件开发的每一个环节呢
我们都得选择就是说
这个地方 这个功能
是不是我真正想超越对方的
那如果是
我要投入很大的人力和物力
来做到这一点
那如果做不到这一点的话
我的产品就没人用
然后我就会失去市场
然后我在以后的竞争中
会处于非常不利的地位
那也许做到后来
我的创业公司也好
我的大公司也好
我有很多年历史的老牌企业也好
也许就会没有出路
所以这个是很重要一点
就是当你要做到
Build To win 的时候呢
它就是一个工作
比如说我们考试 你可以讲
以前在考试的时候
你觉得我的平时成绩不错
考试有一题大概有这么多10分
那我觉得我做不出来
我就瞎糊弄一下
我就交卷了
那么我觉得我可能可以拿个A
或者这个B+
我就出去了
但是当你要做这个软件的时候呢
你不会说这个功能我做不出来
那我就算了
我也就做得很烂我就发出去
因为这样你肯定不会赢
对你公司有很严重的后果
所以在这个
Build To win的情况下呢
就是你对软件
你对人的投入
对你采用什么样的工具
对于你招什么样的人
都要非常严谨地对待
然后你才能够说
我能够用一个
合适的软件开发的流程
用合适的工具
招来合适的人
把这个东西开发好
而且你还要这么做
做多个版本
然后呢
所以它并不是说
像我们有时候做学校的项目中
我熬两个通宵我就可以做出来
我就交给老师
我就放假了
因为
你不能在公司里不断地熬通宵
因为你还下一个项目要做
这么做的话你身体吃不消
然后你也不能开发出
很好的软件出来
-1.1 软件无处不在
--讲课视频
-1.2 软件的本质特性
--讲授视频
-1.3 软件工程的产生与发展
--讲授视频
-1.4 软件工程的基本概念
--讲授视频
-1.5 软件质量实现
--讲授视频
-1.6 业界人士谈软件工程
-测验题--作业
-讨论题
--讨论题
-作业题
--第一张 作业题
-2.1 编程过程与规范
--讲课视频
-2.2 良好的编程实践
--讲课视频
-2.3 Python集成开发环境
--讲课视频
-2.4 代码静态检查
--讲课视频
-2.5 代码性能分析
--讲课视频
-2.6 结对编程实践
--讲课视频
-2.7 刘贺谈软件工程
--讲课视频
--讨论
-测验题--作业
-作业题
--第二章 作业题
-3.1 单元测试概述
--讲课视频
-3.2 黑盒测试方法
--黑盒测试方法
-3.3 白盒测试方法
--基本概念
--代码覆盖标准
--基本路径测试
-3.4 单元测试工具
--单元测试工具
--html
-测验题--作业
-作业题
--第三章 作业题
--作业题附件
-4.1 软件过程
--讲课视频
-4.2 软件过程模型
--讲课视频
-4.3 敏捷开发过程
--讲课视频
-4.4 微软公司开发过程
--邹欣经理自我介绍
--微软开发过程之一
--微软开发过程之二
-测验题--作业
-5.1 团队组织与管理
--讲课视频
-5.2 项目沟通管理
--讲课视频
-5.3 软件项目计划
--讲课视频
-5.4 软件项目估算
--讲课视频
-测验题--作业
-讨论题
--讨论
-6.1 敏捷开发之Scrum
-- 敏捷开发之Scrum
--html
-6.2 用户故事与估算
--讲课视频
-6.3 团队协作工具Tower
-6.4 配置管理
--讲课视频
-6.5 配置管理工具Git
--讲课视频
-测验题--作业
-作业题--作业
-7.1 需求工程师
--讲课视频
-7.2 需求定义
--讲课视频
-7.3 需求的类型
--讲课视频
--讲课视频(2)
-7.4 需求工程过程
--讲课视频
-7.5 需求的主要来源
--讲课视频
-7.6 需求获取技术
--讲课视频
--讲课视频二
--讲课视频三
-7.7 撰写需求文档
--讲课视频
-测验题--作业
-讨论题
--讨论
-8.1 用例建模概念
--讲课视频
-8.2 用例建模过程
--讲课视频
-8.3 用例建模精讲
--讲课视频
-8.4 建模工具介绍
--讲课视频
-8.5 微信抢票应用案例
--讲课视频
-测验题--作业
-讨论题
--讨论
-9.1 面向对象分析
--讲课视频
-9.2 CRC卡片分拣法
--讲课视频-1
--讲课视频-2
-9.3 面向对象设计
--讲课视频-1
--讲课视频-2
-9.4 类图建模
--讲课视频-1
--讲课视频-2
-第9章 面向对象分析与设计--测验题
-讨论题
--讨论
-10.1 顺序图概念
--讲课视频
-10.2 顺序图建模
--讲课视频
-10.3 顺序图风格
--讲义视频
-10.4 状态建模
--讲课视频
-10.5 状态图
--讲课视频
-10.6 状态图精讲
--讲义视频
-测验题--作业
-讨论题
--讨论
-11.1 软件体系结构概念
--讲授视频
-11.2 软件设计原则
--讲授视频
-11.3 软件体系结构风格(一)
--讲授视频
-11.4 软件体系结构风格(二)
--讲授视频
-11.5 软件体系结构风格(三)
--讲授视频
-11.6 软件设计过程
--讲授视频
-11.7 Web系统架构设计
--讲授视频
-11.8 数据库选择策略
--讲授视频
-测验题--作业
-作业题
--html
--html
--html
-作业题--作业
-12.1 交互设计概述
--讲授视频
-12.2 交互设计目标
--讲授视频
-12.3 GUI设计原则
--讲课视频
-12.4 KLM效率模型
--Video
-12.5 Fitts定律
--讲授视频
-12.6 交互设计过程
--讲授视频
-测验题--作业
-13.1 软件测试概念
--讲课视频
-13.2 软件测试类型
--讲课视频
-13.3 软件功能测试
--讲课视频
-13.4 软件性能测试
--讲课视频
-测验题--作业
-14.1 软件部署与交付
--讲课视频
-14.2 软件演化与维护
--讲课视频
-测验题--作业
-第一部分:基础知识
-第二部分:编程与测试(选做)