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