尖端技术与经过现场测试的技术。你将如何取得平衡

发布于 2024-09-07 11:17:39 字数 1431 浏览 9 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

迷途知返 2024-09-14 11:17:39

您很可能与一群人一起工作,这一点也应该考虑在内。测试/评估技术成熟度的一些方法:

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

  2. 用谷歌搜索一下人们遇到的问题。如果你没有找到太多,那么这就是你遇到问题时会遇到的问题

  3. 找到一些风险非常低的新的小项目(例如只有你或几个人会使用的东西),应用新技术 。

  4. 尝试在不成熟的事物中找出最成熟的事物。例如,如果您正在考虑 NoSQL 类型的数据存储。当您与已经存在了数十年的 Oracle 等 RDBMS 进行比较时,所有 NoSQL 的东西都是不成熟的,因此请寻找那些拥有专业支持组织或通过支持小组提供支持的最成熟的解决方案。

  5. 最简单的项目启动是重写现有的软件。您已经有了自己的要求:就像那样。只需选择软件的一小部分,用新技术重新编写,最好是可以通过单元/负载测试来锤炼的东西,看看它的表现如何。我并不主张重写整个应用程序来证明这一点,而是主张重写一小部分可衡量的应用程序。

Most likely you work with a team of people and this should be taken into consideration as well. Some ways to test/evaluate technology maturity:

  1. Is your team and management receptive to using new technology at all? This might be your biggest barrier. If you get the sense that they aren't receptive, you can try big formal presentations to convince them... or just go try it out (see below).

  2. Do some Googling around for problems people have with it. If you don't find much, then this is what you'll run into when you have problems

  3. Find some new small project with very low risk (e.g. something just you or a couple people would use), apply new technology in skunkworks fashion to see how it pans out.

  4. Try to find the most mature of the immature. For instance if you're thinking about a NoSQL type of data store. All of the NoSQL stuff is immature when you compare against RDBMS like Oracle that has been around for decades, so look at the most mature solution for these that has support organizations, either professionally or via support groups.

  5. Easiest project to start is to re-write an existing piece of software. You already have your requirements: make it just like that. Just pick a small piece of the software to re-write in the new technology, preferably something you can hammer at with unit/load testing to see how it stands up. I'm not advocating to re-write an entire application to prove it out, but a small measurable chunk.

香草可樂 2024-09-14 11:17:39

一些经验法则。

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

确保使用它有优势。如果这项很酷的新技术不能给你带来一些优势,你为什么要使用它?

规划学习曲线。新技术的某些方面是您不了解的。您和您的团队将不得不花费比您想象的更多的时间来了解它们。

如果可能的话,首先在一个不太重要的小项目上尝试新技术。您公司的会计系统不是试验的最佳场所。

有一个备份计划。新技术并不总是值得的。知道你什么时候处于“棺材角”,是时候跳出来了。

A few rules of thumb.

Only use one "new" technology at a time. The more new things you use, the greater chance of there being a serious problem.

Make sure there is an advantage to using it. If that cool, new technology does not give you some advantage, why are you using it?

Plan for the learning curve. There will be aspects of the new technology that you do not know about. You, and your team, will have to spend more time learning about them then you think you will.

If possible try the new technology on a small less important project first. Your companies accounting system is not the best place to experiment.

Have a back up plan. New technologies don't always turn out to be worth it. Know when you are in a "coffin corner" and it is time to bail out.

鹤舞 2024-09-14 11:17:39

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

但我从未遇到过对经过现场测试的技术不满意的客户。他们通常不知道或不关心生产产品所使用的技术。他们的首要任务是它在日常互动中的运作方式。

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

1)迁移到新平台能给我带来什么好处。如果它为我提供了显着减少的开发时间或显着提高用户的性能,我将考虑半前沿技术。

2) 新平台有哪些风险。我是否可能会遇到一些在新平台中尚未解决的场景?对这个新平台的支持是否有可能会失败,而我将独自承担支持已弃用环境的责任?如果我遇到项目的关键时刻,是否有可以使用的支持渠道?

与所有事情一样,这是成本/收益分析。一般来说,虽然我总是学习和培训新技术,但我不会使用尚未被大量开发人员广泛采用的技术(环境、库、服务器平台等)为客户构建一些东西。至少6-12个月。

There's a difference between "field tested" and "out-of-date." Developers (myself included) generally prefer bleeding edge stuff. To some extent, you have to keep your development staff happy and interested in their jobs.

But I've never had a customer unhappy with field tested technology. They are generally unaware or unconcerned about the technology that is used in producing a product. Their number one priority is how it works in their daily interactions with it.

When starting a new project, two questions come to mind in evaluating if I should move to a new platform:

1) What benefits do I get from going to the new platform. If it offers me a dramatically reduced development time or significant performance increases for the users, I will consider a semi-bleeding edge technology.

2) What risks are associated with the new platform. Is it likely that there are some scenarios that I will encounter that aren't quite worked out in the new platform? Is it likely that support for this new platform will fizzle out and I'll be left holding the bag on supporting a deprecated environment? Are there support channels in place that I can use if I get stuck at a critical juncture of my project?

Like everything, it's a cost/benefit analysis. Generally speaking, while I always learn and train on new technologies, I won't build something for a client using a technology (environment, library, server platform, etc) that hasn't been widely adopted by a large number of developers for at least 6-12 months.

︶葆Ⅱㄣ 2024-09-14 11:17:39

这取决于上下文。每个组织都必须做出自己的决定。关于这个主题的经典文献是 Geoffrey A. Moore 的跨越鸿沟

That depends on the context. Each organisation has to make its own decisions. The classic literature on this topic is Crossing the Chasm by Geoffrey A. Moore.

如果开发该产品的公司/社区以优质产品而闻名,那么我很高兴对他们的新产品进行安全押注。

例如,我很乐意在 Rails 3 或 Ruby 1.9 上进行开发,因为我非常确定它们在最终确定后会很好。

然而,我不会在 superNewLang 中编写太多代码,直到我确信他们有一个很棒的、支持良好的产品,或者他们有一个我离不开的功能。

我倾向于购买最值得信赖的、满足我所有需求的产品。

If the company/community developing the product is known for good products then I'm very happy to put a safe bet on their new products.

For example I would be quite happy to develop on Rails 3 or Ruby 1.9, as I am quite sure they will be fine when finalized.

However I wouldn't write much code in superNewLang untill I was convinced that they had a great, well supported product, or they had a feature I couldn't live without.

I will tend to get the most trusted product, that suits all my needs.

白昼 2024-09-14 11:17:39
  1. 你只需问自己一个问题……我感到幸运吗?
  2. 钱在哪里?
    • 即使 tech X 失败了,您能否足够快地获得大量利润?
  3. 如果不是,新技术会在很长一段时间内带来更高的性能吗?
    • 例如 64 位 CPU、Shader Model 4、重型多线程
  4. 你是否看到很多围绕它的意识形态宣扬
    • “范式转变”简介等 - 等待 2-8 年,直到它冷却下来并被取代:-)
  5. 它是否体积庞大并且需要 2 倍的一切才能运行?
    • 让你的敌人先付出代价:-)
  6. 你能接受一些基础教育和一个试验项目而不冒任何风险吗?
    • 不妨尝试一下,除非它看起来像一个 400 磅的不唱歌的女士:-)
  7. 对于此类问题没有通用答案 - 请转到#1
  1. You got to ask yourself only one question ... do I feel lucky ?
  2. Where's the money ?
    • Do you get to profit big and fast enough even if tech X is a flop ?
  3. If not, does new tech bring higher perf for a long time?
    • Like 64-bit CPU, Shader Model 4, heavy multi-threading
  4. Do you see a lot of ideological trumpeting around it
    • "paradigm shift" blurbs etc. - wait 2-8 yr till it cools off and gets replaces :-)
  5. Is it bulky and requires 2x of everything just to run?
    • let your enemy pay for it first :-)
  6. Can you just get some basic education and a trial project wihtout risking anything?
    • might as well try unless it looks like a 400 lb lady who doesn't sing :-)
  7. There is no general answer to such question - please got to #1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文