Every craft has its unsexy sides. Things that HAVE to be done, but nobody notices them directly. In a grocery store somebody has to organize how and when to fill the grocery shelves so they always look fresh. In a laundry you need somebody who thinks about how the processes should be optimized so that the customer gets his clothes in time.
The tricky part is: The customer won't notice when these subtle things have been done right UNTIL HE NOTICES THEY ARE MISSING! Like when the laundry is not ready on time but two days late, or the veggies in the super market have brown spots and look terrible.
Same goes for IT. You don't notice good transactions until your major customer knocks on your door and tells you that an important and expensive project has failed because the database entries of your product were mysteriously mixed up. You don't notice good security until customer credit card information shows up in Elbonia (and soon after word is in the national newspapers warning customers of your company).
The thing you really have to hammer in again and again and again is that software is NOT static. It has to be cared for even after its initial development phase is over. It is not just a product you buy once and forget about. Every car manufacturer knows that services is of prime importance to the products they build, simply because things WILL occur that have to be fixed and improved. It's the same with software.
So make a presentation, visualize, verbalize, translate your technical information into benefits. Business people don't care about your wish for code aesthetics in a refactoring project, but they WILL understand that your changes will help the product to become more reliable, gain a better reputation and reduce the amount of future service requests. Make them understand by showing them the benefits!
Same thing folks have been doing for thousands of years: draw pictures. Diagram the problems, use visual metaphors familiar to your audience, drag the problem into their territory.
Assuming they're not being intentionally obtuse...
A big +1 for analogies and metaphors. If possible, find one that will resonate with the personal interests of your audience (if it's 1-2 people). For general metaphors, I often find myself using commuter traffic or subways, for some reason.
e.g. We are currently migrating an app from an OODB to Postgres/Hibernate: the bulk of this work is done in Release '4'. Many domain experts have been asking why there are so few user-facing features in R4. I regularly tell them that we have been 'tearing up the city to put in a subway. It is very expensive and undeniably risky, but once it is done, the benefits in R5+ will be astounding, truly.' The true conversation is more involved, but I can return to this theme again and again, well after R4. Months from now, I hope to say "You asked for X and it is now very easy -- precisely because you let us put in that subway back in R4".
The surest way to get upper level management to buy off on development work is to present it in a quantifiable way. Ideally this quantifiable measure is in $$. You need to explain to them the consequences of skimping on data integrity, security, transactions, etc. and how that will affect the customer\user community and eventually the bottom line. You should be careful in these situations because sometimes management expects these non-functional requirements to "just work." If this is the case, you should either estimate high and work on these items alongside the visible UI work (ignorance is bliss) or you need to document these areas of need as you communicate with management so if things do go bad as you anticipate, it's not your job that is on the line.
Unfortunately, it usually takes a disaster or two before this stuff gets the attention it deserves.
It really depends what your management is like, but I've had luck with good old honest-to-goodness fearmongering. If you go through a couple of disaster scenarios, and point out someone's going to get blamed if they occur, that can be enough to make their arsecovering instincts kick in and finally pay attention :)
如果能够标记各种答案并在一个列表中查看它们,那将会很有用,但遗憾的是,该功能在 SO 中尚不可用。 我在 uservoice 上建议。
希望您能从我提供的参考资料中找到可以使用的东西。
I'm battling with essentially the same kind of situation. Whether it is sign-off by management or acceptance by a user/sponsor, the problem remains one of different vocabularies, priorities and perspectives. I asked a simmilar question here.
I also got diverse answers, tantalizingly close to useful, but not quite definitive enough. Browsing and searching SO using relevant keywords led me to find usable insights in various answers spread out over many unrelated questions. To find and extract these gems led me to pose this question on site-mining.
It would have been useful to be able to flag the various answers and see them all in a single list, but alas, that functionality is not yet available in SO. I suggested it on uservoice.
Hope you find something you can use from the references I gave.
Robustness. When it comes down to it, you need to talk their language, which is how it affects their bottom line. If its a security or correctness issue, you need to tell them that customers aren't going to want incorrectly acting products, no matter how nice they look.
I like the idea of Technical Debt, because it enables technical issues to be translated (albeit loosely) into money issues -- and money is something most managers do understand.
Although the idea of technical debt was originally applied to architectural issues, it can be used more broadly for any type of situation where there is pressure to take a shortcut -- that is, go into technical debt -- rather than do it right the first time. (Doing it right is the equivalent to saving up to buy something -- it takes time -- rather than buying it on credit and going into debt.)
Just as debts can be good (e.g. home loans) and bad (e.g. credit cards), so technical debt can be good and bad. I won't try to characterise the differences completely, but good technical debt can be tracked accurately, so that you know how much in debt you are.
So, try to explain your important, non-UI problem in terms of technical debt, and the cost of not fixing it in terms of paying interest on that debt.
A descriptive picture really helps non-technical people understand what you are talking about. For example, below is an example from Sun describing how information is processed in one of their somewhat complex applications.
Trying to explain this application in words would be impossible to a non-techy. Pointing at the diagram and say look, this part is our weak point, we need to improve it. That will make sense to them. If they feel like they have some understanding of what you are doing, they will be far more willing to support your request.
发布评论
评论(11)
每一种工艺都有其不性感的一面。 必须要做的事情,但没有人直接注意到它们。 在杂货店里,必须有人安排如何以及何时填满杂货货架,这样它们才能看起来总是新鲜的。 在洗衣店,您需要有人思考如何优化流程,以便顾客及时拿到衣服。
棘手的部分是:客户不会注意到这些微妙的事情何时完成,直到他注意到它们丢失了! 比如,衣服没有按时准备好,却晚了两天,或者超市里的蔬菜有褐色斑点,看起来很糟糕。
IT 领域也是如此。 直到您的主要客户敲门并告诉您一个重要且昂贵的项目失败了,因为您产品的数据库条目神秘地混淆了,您才会注意到良好的交易。 直到客户信用卡信息显示在 Elbonia 中(并且在单词之后不久),您才会注意到良好的安全性在全国性报纸上警告贵公司的客户)。
你真正需要一遍又一遍地强调的是,软件不是静态的。 即使在最初的开发阶段结束后,也必须对其进行保养。 它不仅仅是一种您购买一次后就忘记的产品。 每个汽车制造商都知道,服务对于他们生产的产品至关重要,因为总会发生需要修复和改进的事情。 软件也是如此。
因此,请进行演示、可视化、语言化,并将您的技术信息转化为优势。 业务人员并不关心您在重构项目中对代码美观的愿望,但他们会理解您的更改将有助于产品变得更加可靠,获得更好的声誉并减少未来的服务请求量。 通过向他们展示好处来让他们理解!
Every craft has its unsexy sides. Things that HAVE to be done, but nobody notices them directly. In a grocery store somebody has to organize how and when to fill the grocery shelves so they always look fresh. In a laundry you need somebody who thinks about how the processes should be optimized so that the customer gets his clothes in time.
The tricky part is: The customer won't notice when these subtle things have been done right UNTIL HE NOTICES THEY ARE MISSING! Like when the laundry is not ready on time but two days late, or the veggies in the super market have brown spots and look terrible.
Same goes for IT. You don't notice good transactions until your major customer knocks on your door and tells you that an important and expensive project has failed because the database entries of your product were mysteriously mixed up. You don't notice good security until customer credit card information shows up in Elbonia (and soon after word is in the national newspapers warning customers of your company).
The thing you really have to hammer in again and again and again is that software is NOT static. It has to be cared for even after its initial development phase is over. It is not just a product you buy once and forget about. Every car manufacturer knows that services is of prime importance to the products they build, simply because things WILL occur that have to be fixed and improved. It's the same with software.
So make a presentation, visualize, verbalize, translate your technical information into benefits. Business people don't care about your wish for code aesthetics in a refactoring project, but they WILL understand that your changes will help the product to become more reliable, gain a better reputation and reduce the amount of future service requests. Make them understand by showing them the benefits!
几千年来人们一直在做同样的事情:画画。 将问题用图表表示出来,使用观众熟悉的视觉隐喻,将问题拖入他们的领域。
假设他们不是故意迟钝的话......
Same thing folks have been doing for thousands of years: draw pictures. Diagram the problems, use visual metaphors familiar to your audience, drag the problem into their territory.
Assuming they're not being intentionally obtuse...
类比和隐喻的一大+1。 如果可能的话,找到一个能与您的受众(如果有 1-2 人)的个人兴趣产生共鸣的人。 对于一般隐喻,出于某种原因,我经常发现自己使用通勤交通或地铁。
例如,我们当前正在将应用程序从 OODB 迁移到 Postgres/Hibernate:大部分工作是在版本“4”中完成的。 许多领域专家一直在问为什么 R4 中面向用户的功能如此之少。 我经常告诉他们,我们一直在“拆毁城市以修建地铁”。 这是非常昂贵的,而且无可否认存在风险,但一旦完成,R5+ 的好处将是令人震惊的,确实如此。 真正的对话更加复杂,但在 R4 之后我可以一次又一次地回到这个主题。 几个月后,我希望说“你要求 X,现在很容易 - 正是因为你让我们把地铁放回 R4”。
A big +1 for analogies and metaphors. If possible, find one that will resonate with the personal interests of your audience (if it's 1-2 people). For general metaphors, I often find myself using commuter traffic or subways, for some reason.
e.g. We are currently migrating an app from an OODB to Postgres/Hibernate: the bulk of this work is done in Release '4'. Many domain experts have been asking why there are so few user-facing features in R4. I regularly tell them that we have been 'tearing up the city to put in a subway. It is very expensive and undeniably risky, but once it is done, the benefits in R5+ will be astounding, truly.' The true conversation is more involved, but I can return to this theme again and again, well after R4. Months from now, I hope to say "You asked for X and it is now very easy -- precisely because you let us put in that subway back in R4".
让高层管理人员认可开发工作的最可靠方法是以可量化的方式呈现它。 理想情况下,这种可量化的衡量标准以美元为单位。 您需要向他们解释忽视数据完整性、安全性、交易等的后果,以及这将如何影响客户\用户社区并最终影响底线。 在这些情况下您应该小心,因为有时管理层希望这些非功能性需求“正常工作”。 如果是这种情况,您应该估计高并与可见的 UI 工作一起处理这些项目(无知是福),或者您需要在与管理层沟通时记录这些需求领域,以便如果事情确实如您预期的那样恶化,这不是你的工作。
The surest way to get upper level management to buy off on development work is to present it in a quantifiable way. Ideally this quantifiable measure is in $$. You need to explain to them the consequences of skimping on data integrity, security, transactions, etc. and how that will affect the customer\user community and eventually the bottom line. You should be careful in these situations because sometimes management expects these non-functional requirements to "just work." If this is the case, you should either estimate high and work on these items alongside the visible UI work (ignorance is bliss) or you need to document these areas of need as you communicate with management so if things do go bad as you anticipate, it's not your job that is on the line.
不幸的是,通常要经历一两次灾难才能让这些东西得到应有的关注。
这实际上取决于你的管理层是什么样的,但我很幸运能够利用古老的诚实的恐吓手段。 如果你经历了几个灾难场景,并指出如果发生的话某人会受到指责,这足以让他们的追捕本能启动并最终引起注意:)
Unfortunately, it usually takes a disaster or two before this stuff gets the attention it deserves.
It really depends what your management is like, but I've had luck with good old honest-to-goodness fearmongering. If you go through a couple of disaster scenarios, and point out someone's going to get blamed if they occur, that can be enough to make their arsecovering instincts kick in and finally pay attention :)
汽车类比。
每个人都知道这个“系统”,它足够复杂来描述可怕的情况。
Car analogies.
Everybody knows that 'system' and it's sufficiently complex to depict the dire situation.
我正在与基本上相同的情况作斗争。 无论是管理层的签字还是用户/发起人的接受,问题仍然是不同的词汇、优先级和观点之一。 我在这里问了一个类似的问题。
我也得到了各种各样的答案,非常接近有用,但不够明确。 使用相关关键词浏览和搜索SO让我在许多不相关问题的各种答案中找到了有用的见解。 为了找到并提取这些宝石,我提出了这个关于站点挖掘的问题。
如果能够标记各种答案并在一个列表中查看它们,那将会很有用,但遗憾的是,该功能在 SO 中尚不可用。 我在 uservoice 上建议。
希望您能从我提供的参考资料中找到可以使用的东西。
I'm battling with essentially the same kind of situation. Whether it is sign-off by management or acceptance by a user/sponsor, the problem remains one of different vocabularies, priorities and perspectives. I asked a simmilar question here.
I also got diverse answers, tantalizingly close to useful, but not quite definitive enough. Browsing and searching SO using relevant keywords led me to find usable insights in various answers spread out over many unrelated questions. To find and extract these gems led me to pose this question on site-mining.
It would have been useful to be able to flag the various answers and see them all in a single list, but alas, that functionality is not yet available in SO. I suggested it on uservoice.
Hope you find something you can use from the references I gave.
正确的反问方式就是秘密。
The right kind of countering question is the secret.
鲁棒性。 归根结底,你需要谈论他们的语言,这会影响他们的底线。 如果是安全或正确性问题,您需要告诉他们,客户不会想要行为不正确的产品,无论它们看起来有多漂亮。
Robustness. When it comes down to it, you need to talk their language, which is how it affects their bottom line. If its a security or correctness issue, you need to tell them that customers aren't going to want incorrectly acting products, no matter how nice they look.
我喜欢技术债务的想法,因为它可以翻译技术问题(尽管是松散的)金钱问题——而金钱是大多数管理者都了解的东西。
尽管技术债务的概念最初应用于架构问题,但它可以更广泛地用于任何有压力走捷径的情况——即陷入技术债务——而不是一开始就把事情做好时间。 (正确行事相当于存钱买东西——这需要时间——而不是通过信贷购买并负债累累。)
正如债务可以是好的(例如住房贷款)和坏的(例如信用卡) ,因此技术债务有好有坏。 我不会尝试完全描述差异,但良好的技术债务可以准确跟踪,以便您知道自己的债务有多少。
因此,尝试用技术债务来解释你的重要的、非 UI 的问题,以及不解决该问题所付出的成本,即支付该债务的利息。
I like the idea of Technical Debt, because it enables technical issues to be translated (albeit loosely) into money issues -- and money is something most managers do understand.
Although the idea of technical debt was originally applied to architectural issues, it can be used more broadly for any type of situation where there is pressure to take a shortcut -- that is, go into technical debt -- rather than do it right the first time. (Doing it right is the equivalent to saving up to buy something -- it takes time -- rather than buying it on credit and going into debt.)
Just as debts can be good (e.g. home loans) and bad (e.g. credit cards), so technical debt can be good and bad. I won't try to characterise the differences completely, but good technical debt can be tracked accurately, so that you know how much in debt you are.
So, try to explain your important, non-UI problem in terms of technical debt, and the cost of not fixing it in terms of paying interest on that debt.
描述性图片确实可以帮助非技术人员理解您在说什么。 例如,下面是 Sun 的一个示例,描述了如何在其有些复杂的应用程序之一中处理信息。
(来源:sun.com) 对于非技术人员来说,
尝试用语言解释此应用程序是不可能的。 指着图说看,这部分是我们的弱项,需要改进。 这对他们来说是有意义的。 如果他们觉得对您所做的事情有一定的了解,他们会更愿意支持您的请求。
A descriptive picture really helps non-technical people understand what you are talking about. For example, below is an example from Sun describing how information is processed in one of their somewhat complex applications.
(source: sun.com)
Trying to explain this application in words would be impossible to a non-techy. Pointing at the diagram and say look, this part is our weak point, we need to improve it. That will make sense to them. If they feel like they have some understanding of what you are doing, they will be far more willing to support your request.