Project management 前沿技术与现场测试技术。你将如何取得平衡

Project management 前沿技术与现场测试技术。你将如何取得平衡,project-management,project-organization,Project Management,Project Organization,我已经思考了一段时间了。在组织中规划新项目/维护现有项目时,如何选择技术(我不是说Java vs.Net vs.PHP) 选择最新技术的理由 它可能会克服现有技术的一些限制(在可伸缩性方面,不要考虑SQL和RDBMS)。有时,最新的技术是向后兼容的,只有在不破坏旧功能的情况下才能获得新功能 它将提供更好的用户体验(可能是视频的HTML5,只是一个想法) 将减少开发时间/成本,并使代码库的维护相对容易 选择经过现场测试的技术/反对选择前沿技术的论据 它没有经受住时间的考验。可能会有不可预见的问题。

我已经思考了一段时间了。在组织中规划新项目/维护现有项目时,如何选择技术(我不是说Java vs.Net vs.PHP)

选择最新技术的理由

  • 它可能会克服现有技术的一些限制(在可伸缩性方面,不要考虑SQL和RDBMS)。有时,最新的技术是向后兼容的,只有在不破坏旧功能的情况下才能获得新功能
  • 它将提供更好的用户体验(可能是视频的HTML5,只是一个想法)
  • 将减少开发时间/成本,并使代码库的维护相对容易
  • 选择经过现场测试的技术/反对选择前沿技术的论据

  • 它没有经受住时间的考验。可能会有不可预见的问题。复杂的解决方案可能会在维护阶段导致更多问题,并且应用程序可能会成为
  • 标准可能尚未到位。标准可能会发生变化,可能需要进行大量的返工,以使项目符合标准。选择经过现场测试的技术将节省这些工作
  • 该组织可能不支持这项新技术。支持一项新技术(或就此而言,支持一项不同的技术)需要额外的资源
  • 使用尖端技术可能很难获得合格的资源
  • 从开发人员的角度来看,我看不出有什么理由不在业余时间接触一些新技术,但他/她可能仅限于开源/免费软件/开发人员版本

    从am组织的角度来看,它就像一把双刃剑。在一个“现场测试”的技术中坐太久,优秀的人可能会离开(更不用说,总是有喜欢熟悉技术的人拒绝更新他们的知识)。尝试一种非常规的方法,你可能会超出预算/时间,更不用说不可预见的风险了

    TL;DR


    底线。当你认为一个技术成熟到足以被一个组织所采用?

    < P>如果开发公司的产品开发的产品是众所周知的,那么我很乐意对他们的新产品投下安全的赌注。 例如,我非常乐意在Rails 3或Ruby 1.9上开发,因为我非常确信它们在最终确定时会很好

    然而,我不会用superNewLang编写太多代码,直到我确信他们有一个很棒的、支持良好的产品,或者他们有一个我无法离开的特性


    我将倾向于获得最值得信赖的产品,它适合我的所有需求。

    最有可能的情况是,您与一个团队合作,这一点也应该考虑在内。测试/评估技术成熟度的一些方法:

  • 您的团队和管理层是否愿意使用新技术?这可能是你最大的障碍。如果你觉得他们不善于接受,你可以试着用大型的正式演讲来说服他们。。。或者只是去尝试一下(见下文)

  • 在谷歌上搜索一下人们在这方面遇到的问题。如果你找不到很多,那么当你遇到问题时,你就会遇到这些问题

  • 找一些风险很低的新小项目(例如,只有你或一对夫妇会使用的东西),以skunkworks的方式应用新技术,看看结果如何

  • 试着从不成熟中找出最成熟的。例如,如果您正在考虑NoSQL类型的数据存储。与Oracle这样的关系型数据库管理系统相比,NoSQL的所有内容都是不成熟的,已经存在了几十年,因此请看看最成熟的解决方案,这些解决方案有专业的支持组织,也有支持小组

  • 最容易开始的项目是重新编写现有的软件。你已经有了自己的要求:就这样做吧。只需选择一小段软件在新技术中重新编写,最好是您可以通过单元/负载测试来测试它的性能。我并不主张重新编写整个应用程序来证明它,而是一小部分可测量的内容

  • 一些经验法则

    一次只能使用一种“新”技术。你使用的新东西越多,出现严重问题的可能性就越大

    确保使用它有好处。如果这种很酷的新技术没有给你带来一些优势,你为什么要使用它

    规划学习曲线。新技术的某些方面你还不知道。你和你的团队将不得不花更多的时间去了解他们,而不是你认为你会

    如果可能的话,先在一个不太重要的小项目上尝试新技术。你们公司的会计制度不是最好的实验场所


    有一个后备计划。新技术并不总是值得。知道什么时候你处于“棺材角落”,是时候摆脱困境了。

    在“现场测试”和“过时”之间有区别。开发人员(包括我自己)通常更喜欢前沿的东西。在某种程度上,您必须让您的开发人员对他们的工作感到高兴和感兴趣

    但我从未有客户对现场测试的技术不满意。他们通常不知道或不关心生产产品所使用的技术。他们的首要任务是如何在与it的日常交互中工作

    在开始一个新项目时,在评估我是否应该转移到一个新平台时,我会想到两个问题:

    1) 使用新平台有什么好处。如果它为用户提供了一个显著减少的开发时间或显著的性能提升,我将考虑一个半溢出的边缘技术。p> 2) 什么ri