Soma这个问题问的非常的好。最近我也和像你一样代表我们用户团体的人谈过关于如今软件开发面临的挑战。今天非常高兴能与大家分享我的看法。我要声明的是以下的几个挑战不是按照特殊优先顺序或重要性进行排序的。
挑战一:合作
最近我一直在和我的伙计们讨论软件开发的复杂性以及造成这样的根本原因。很多人认为是软件本身导致了这个复杂性。其实不然,实际上是人自身的问题而并非软件的问题。目前软件开发的主要问题之一是市场上的很多软件供应商和软件环境不能使软件开发团队的成员互相合作。并且超出了操作团队或项目管理人员可管理的范围。
解决方案:解决的办法是在为顾客提供操作工具方面,这个行业需要更加明确地合作。这种合作必须能够从开发组拓展到操作组,设计组以及工程管理组等等。这是我们Visual Studio Team System family产品既定的目标,也是我们工具精简版的目标。中心驱动力是帮助他们通过软件来获得事业的成功,打破这些组织之间的“中国长城”式的隔膜,使他们更加有效地合作。
教训:我觉得教训很简单。那就是我们需要集中精力使人们在合作方式下一起工作。
挑战二: 管理流程
另外,软件是复杂的,管理这个复杂东西的另一个挑战是如何管理那些难以计数的流程。正是这些流程使帮助顾客获得商业价值的软件变得了不起。但是在IT商业团体中这是一件难以实现的事情,因为软件开发不是他们的强项。因此,他们寄望于向系统集成商和软件商求助。一些人建立了他们自己的内部流程。但是这些流程很难,他们的顾客不可能花两年的时间来学习怎么操作,把他们的大部分的时间花在管理流程上。目前还是很难,但希望我们这一类的企业能使这些变得简单些。
解决方案:关键是要使流程无形化。我们不能够没有流程,因为它们蕴含了无限的价值。但是我们可以让顾客在应用这些流程时变得简单些。这样他们就有一个更加高效、有策略开发的主动性。我们Visual Studio Team System 就有实现这项功能的工具。因为我们已经将方法应用于产品,也应用在了组织中,而且个体开发商对此的反馈还不错。此产品的应用理念是将繁重的流程变为对综合开发商来说更加自动化,严密化的简单流程。
教训:将流程整合于工具中,而且这些工具能够加强流程的特性,这样开发团队就没必要处理底层的流程了——他们只需要了解工具的使用。
挑战三:工具的可应用
当你每天使用工具时,它们便变得简单、自然并且可实现。今天市场上,许多开发工具都不太现实,特别是对于企业IT服务提供商来说。
解决方案:显而易见,对于顾客来说我们需要让这些工具可操作,易使用和高产能。这就是为什么相对于借助“购买”策略,从一开始我们便建立Visual Studio Team System。这是我们当考虑进入企业工具领域时,这个行业的很多观察者对我们提出的疑问。
教训:开发商团体的历史源于把生产力交给个人开发者,并且使他们因此而获得巨大的成功时。我们想把这个经验用于团队和组织生产力上。
挑战四:综合化
现在顾客比以前更加需要综合化,解决的方法是把它们整合在一起。不管它们是什么,用什么建成的等等。顾客不太关心实现的细节,最主要的需求是“我只要它能行得通”。
解决方案:顾客越来越多的放弃新生的好的工具,偏爱整体运行的综合系统。这已经不是令人惊讶的概念了,但是现在还有很少有人真正这样做。
教训:这个行业应该更加开放,确保系统间相互联系。这就是为什么现在服务导向建构的观念已经成为了大事。也是为什么.NET 和J2EE竞赛已不再像以前那样有争议了。当然,我们在.NET的开发上是处于领先地位,但是顾客需求的关键是他们想看到这个行业的整合,这就是为什么我们通过团队建立服务器,集中于确保顾客能看到应用。无论他们使用的是什么工具。从一开始我们便把建立VSTS以及Team Foundation服务器作为综合系统。
|