我个人认为,这是一篇不错的文章,虽然我不是Program Mananger,但是我几乎在做着和这个职位很相似的工作。在这里,我把这篇文章推荐给所有的程序员,我相信,这篇文章会让你明白,只有技术是远远不够的,因为没有Program Manager这个角色,程序员们只不过一些手中拿着利器却不知所措的散兵游勇。我希望我的导读和原文能给所有的程序带来启示。(本文同步发布于:酷壳 cocre.com)
原文在这里:
“How to be a program manager”
http://www.joelonsoftware.com/items/2009/03/09.html
这篇文章的作者叫Joel Spolsky,在Microsoft做过Program Manager,这篇文章非常值得一读。下面是我给大家做的一个导读:
首先,他讲了两个人,一个是负责WYSIWYG 字处理的天才级的Program Manager——Charles Simonyi,第二个是上世纪80年代的负责Mac OS上的Excel项目的程序员Jabe Blumenthal,他发现了程序员和市场人员的代沟,Marketing的人很难通过把MBA-Speaking翻译成实际的Feature,并且,有太多的和编码不相关的工作,比如说,和用户交谈,运行usability测试,Reivew竞争者的产品,并且得冥思苦想怎么能让事情变得更简单,而我们的程序员通常来说即不具备这样的时间,也不具备这样的能力。于是,Jabe开始了他的Program Manager的生涯。
工作范围
作者在第二节里说了一个PM主要负责哪些事务:
- Design UIs (用户界面的设计)
- Write functional specs (书写功能规格说明书)
- Coordinate teams (团队协调)
- Serve as the customer advocate, and (从用户角度思考问题)
- Wear Banana Republic chinos (Banana Republic是一个服装品牌,意思是作者在调侃PM需要衣冠楚楚,而不像程序员们只有T恤或牛仔裤)
接下来,作者讲述了他第一份Program Manager工作的经历,非常有意思,那是一个关于Excel 用户定制化的项目(陈皓注:应该是在Excel中加入VBScript的项目吧,就是所谓的宏)。
第一个阶段
- 首先,作者找了很多很多的用户谈论了这个什么是最有用最合理的实现,这是一个非常巨大的工作,花费了非常多的精力和时间。
- 然后,作者找到了Visual Basic团队询问了是否可能给Excel提供一个编译器和代码编辑器,以便实现“宏”。
- 接着,作者查看了一下Apple上面的AppleScript这种宏,取了取经。
- 最后,作者同 Word, Access, Project, 和Mail团队们讨论了很多很多。
作者说,这个阶段的工作让他满是伤痕,他甚至害怕听到手机铃响。
第二个阶段
- 确定大方向。他开始写下Visual Baisc应该怎么样在Excel里面工作的文档。并提供了一些简单的宏的样子,这应该是high-level的Functional Spec。
- 当大的方向确定后,他开始了一些更为细节的功能规格说明的书写。这就是所谓的Functional Specification. (陈皓注:FS这份文档应该只是说明从用户的角度上来看这个产品长成什么样,而不是实现)
- 虽然FS并不需要说明怎么去实现,但这份文档应该是需要非常详细地说明整个Excel和VBScript怎么相互交互的,这是其中最重要的部分。
- 当作者把FS的一个初始化版本发给开发团队(Ben Waldman)时,开发团队非常快地实现出了一个原型,并提供了面向对象的相关接口。但可惜的是,那并不是Program Manger所想要的。
- 作者描述了一个细节如果帮助开发团队解决技术难点的例子。那是关于把一个Excel中的一个cell的值取出来的例子。当时,developer团队认为这是一个难点,因为这个值可能是任意类型的。而VB中却需要先声明变量的类型。后来,作者找到了VB的开发团队,了解到了Variants 和IDispatch可以做到这个。
我们可以看到,FS在这样反复地和developer 团队推敲,甚至去帮助程序员解决技术难题,之后最终才能确定下来。一旦FS确定后,program manger需要做两件事:
- 负责解释相关的问题。
- 组织并形成相关的design。
也就是说,除了对FS解释外,需还需要把What needs to do 变成 How to do的设计文档。另外,Program Manager可能会有下面的工作:
- 测试人员会对FS有很多很多疑问,因为他们需要知道怎么样去测试这些FS中所包含的东西。
- 和文档团队商讨如何写一个好的教程或是一个参考文档。
- 和localization 团队制定localization 的策略。
- 和市场人员说明VBA的优势和功能。
我们可以看到,作者有太多,太多的会议和太多的与人沟通的事务,真是一个不简单的工作啊。
冲突管理
后面,作者着重讲了“Conflicts”冲突,这可能是所有的团队都会有的问题。而我们的Program Manager因为要和那么多的人沟通交流,所以,必然会需要有一种超人的能力去管理与人的发生的观点上的冲突。作者,在这里说了和程序员发生的很多争论,因为Program Manager是从用户的角度出发,而我们程序员总是从技术和实现的角度出发,不同的角度必然会引发冲突。作者举了一个例子,他说,用户们喜欢一个“心灵感应”的界面和一个30英寸的显示器,而我们的程序员喜欢的只是用Python搞的命令行接口。呵呵。另外,作者引用了一个Excel中的“pivot tables ”所引发的一个历时最长的争议作为案例。
最后,作者讨论了,争论是一个很好的事,就好像法院里的原告和被告都有自己的辩护律师一样,这有助于人们逼近事物的真相。对于软件开发也一样,良好的争论其实是对产品有好处的。我们应该在争论中关注事。
当在讨论到和程序相处的过程,作者说到了和程序员相外并不是一件很容易的事,因为你并不编码而也没有技术能力,通常会受到程序员的冷眼。所以在和程序沟通的过程中需要保证两件事:1)确信自己的正确的。2)让程序员尊敬自己。而对于第二点,如何让程序员尊敬自己,作者发表了自己的见解:1)demonstrate intelligence(展示自己的才华),2)open-mindedness(心胸宽阔),3)fairness(公平,正直)。千万不要搞办公室政治,或是开私密的经理会,等等。不然的话,你必然受到排挤。
推荐读物
最后作者给大家推荐了一些很不错的读物:
Making Things Happen (经理一般都在干什么?)
Don’t Make Me Think (如果你要写FS或UI设计,你应该看看这本书)
User Interface Design for Programmers. (作者自己的书,关于UI设计)
How to Win Friends & Influence People (在人际关系方面,需要看看这本书)
(完)
分享到:
相关推荐
"PluginManager"是Notepad++的一个重要插件,尤其对于那些希望轻松管理和安装其他插件的用户来说,它是一个不可或缺的工具。 在Notepad++ 7.5版本及以上,原生的PluginManager不再内置,用户需要单独下载。这个插件...
Actual Window Manager能够在一个包含你的任何窗口操作的特别的日志文件中保留记录,无论自动(如你窗口设置的配置那样),还是手动(用标题按钮,窗口菜单命令或热键),并自动定期发送此消息到Actual Tools这将帮助...
简单易用的图片处理工具,用于给那些精简安装office2003而苦恼的人一个单独安装Picture Manager的机会。 如果您未安装过Office2003,可以采用独立安装,安装时,运行PM11.msi,一路点 下一步 就可以了!( 如遇到...
Internet Download Manager是一款下载工具!它能提升你的下载速度最多达5倍之多,下载文件速度非常之快 安装步骤:解压后点idman607.exe安装完成后,再打开解压后的IDM文件里的crack文件 然后按自己的系统运行reg...
PluginManager是Notepad++的一个第三方扩展,专门用于管理和安装插件。这个工具提供了用户友好的界面,允许用户浏览、安装、更新和卸载Notepad++的各种插件,极大地简化了插件管理流程。它通过一个在线更新机制,...
源码版本为0.8.4,这表明它是该软件的一个较早版本,可能不包含最新的特性和改进,但对于学习和理解virt-manager的基础架构和设计思路非常有价值。在0.8.4这个版本中,开发者可能关注于软件的稳定性和兼容性,对于...
而SVNManager则是在SVN基础上提供了一个图形化界面,使得版本控制管理变得更加直观与高效。本文将深入解析“Windows下SVNManager的安装配置”这一主题,旨在为那些希望在Windows环境下搭建SVNManager服务器的读者...
总的来说,"PartitionManager"是一个功能强大的硬盘分区管理工具,它提供了全面的分区操作选项,以满足用户对硬盘存储空间的各种需求。其易用性和可靠性使得无论是个人用户还是企业用户,都能有效地管理他们的硬盘...
在现代商业智能(BI)领域,IBM Cognos Framework Manager (FM) 是一个强大的工具,用于构建和管理复杂的业务模型,以便更好地支持数据分析和报告需求。本文档旨在为初次接触 Cognos FM 的用户提供一个全面的指南,...
"install update manager卸载工具"是一款专门用于卸载系统中"Program Updates"组件的实用程序。在日常使用电脑的过程中,有时我们可能需要卸载特定的更新管理器,以解决软件冲突或优化系统性能。这款工具提供了简单...
2. **解压安装包**: 将下载的压缩包解压到一个合适的目录下,例如`C:\Program Files\Apache\Tomcat8`。 3. **配置环境变量**: 在系统环境变量中添加`CATALINA_HOME`,值为Tomcat的安装路径。此外,如果需要在命令行...
MICROSOFT FOUNDATION CLASS LIBRARY : SnmpManager AppWizard has created this SnmpManager application for you. This application not only demonstrates the basics of using the Microsoft Foundation ...
C:\Program Files (x86)\HMS\ACM\Communicator RS232-422-485\unins000.exe is the full command line if you want to uninstall Anybus Configuration Manager - Communicator RS232/422/485. Anybus ...
Remote Task Manager: readme ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Please read this file carefully (especially the "Installation" chapter) before installing the program to your computer. IMPORTANT! If you ...
完成以上步骤后,CISCO CallManager的核心配置工作即告一段落,内线电话在注册IP电话后即可使用,而外线通话能力则依赖于正确配置的Gateway和RoutePattern规则。此配置流程确保了企业内部通讯系统的稳定运行,同时...
软件介绍: Actual Window Manager是一款专业的窗口...安装说明:安装后不要立即运行Actual Window Manager,复制CK文件夹内的2个文件到C:\Program Files\Actual Window Manager目录下,覆盖原来的文件即可。
一、备份软件:Cisco CallManager Backup And Restore System (BARS) 4.0(5) Cisco BARS是专为Cisco CallManager设计的备份和恢复解决方案,版本号4.0(5),旨在为CallManager系统提供全面的数据保护。它能够自动化...
2. **解压安装包**:将下载的安装包解压缩到一个合适的目录中,例如`C:\TAM\`。 3. **检查系统要求**:确认您的Windows 7系统满足Tivoli Access Manager的最低硬件和软件要求。 4. **备份重要数据**:在进行任何系统...
今天小编为大家介绍一款专业好用的音乐管理工具软件——Helium Music Manager。Helium Music Manager号称是唯一的音乐管理应用程序,可以进行音乐标签修改、曲目重命名、音乐播放、管理播放列表等操作,支持支持Mp3...