Programming for one’s self can be fun and fulfilling. You get to dream up challenging tasks to impress friends and peers. You get to show flashy boxes on the screen to prove to yourself how good you are at programming. Scratching your own itch will feel good, but it can be no more than an exercise in satisfying one’s own ego.
为自己的程序编程可能会很有趣并且很充实。 您可以梦想一些具有挑战性的任务,以打动朋友和同事。 您将在屏幕上显示闪烁的方框,以向自己证明自己在编程方面的表现如何。 挠痒痒是件好事,但这不过是满足自己自我的一种锻炼。
In this article, I’d like to explore programming for others. When others get involved in the creative process, your skills take on a radically new dimension. Working with clients is challenging because they don’t care how you solve their problem. What you call a “solution” can be considered “buggy.” What you consider “useful” can be received as “hard to use” or “too convoluted.”
在本文中,我想为其他人探索编程。 当其他人参与创作过程时,您的技能将焕然一新。 与客户合作具有挑战性,因为他们不在乎您如何解决他们的问题。 您所谓的“解决方案”可以被视为“越野车”。 您认为“有用”的内容会被视为“难以使用”或“过于复杂”。
Programming for others demands removing one’s self from the equation. Dealing with nonsense from clients while delivering a sound solution is challenging. But, it can be incredibly fulfilling if you know when and why to say no. I would like to explore how to effectively work with clients in the art of saying “no”.
为他人编程需要从方程式中删除自己的自我。 在提供完善的解决方案的同时与客户的废话打交道是一项挑战。 但是,如果您知道何时,为什么说不,那么这将是令人难以置信的成就。 我想探讨如何有效地与客户合作,说“不”。
Clients come in all shapes and sizes, from versed in tech to software illiterate. But, regardless of the people you work for, they chose to come to you with a problem.
从技术精通到文盲的软件,客户的形态和规模各不相同。 但是,无论您工作的人是什么,他们都选择带着问题来找您。
This means it’s your job to solve the problem, not theirs.
这意味着解决问题是您的工作,而不是他们的问题。
I once had a client tell me they used to write web sites in HTML. It felt like the mindset of that once proverbial twelve year old who wrote web sites in MySpace.
我曾经有一个客户告诉我他们曾经用HTML编写网站。 感觉就像那个曾经在MySpace上写网站的12岁小伙子的心态。
My client had always felt confident in their programming skills, and had become used to giving my team implementation-specific details. This caused the legacy system to have many disastrous usability issues: Terrible color palettes, unintelligible navigations, and frustrated customers.
我的客户一直对他们的编程技能充满信心,并且已经习惯于为我的团队提供具体的实施细节。 这导致旧系统存在许多灾难性的可用性问题:糟糕的调色板,难以理解的导航以及沮丧的客户。
To try and address this issue, I asked if the client could provide mockups in HTML. It wasn’t long before they realized that coming up with mockups is hard. As a result, I earned more freedom in delivering the best solution I could come up with.
为了尝试解决此问题,我询问客户端是否可以提供HTML样机。 不久之后,他们意识到提出模型非常困难。 结果,我在提供自己能想到的最佳解决方案方面获得了更多的自由。
It’s good to have clients with strong opinions — as long as you’re not getting micro-managed. But it’s more important to give yourself a broad canvas on which to imagine the best possible solution.
只要您没有受到微观管理,拥有好的客户意见就是很好。 但更重要的是给自己一个广阔的画布,在上面想象最佳的解决方案。
When a project fails to deliver, you’ll be the person cleaning up the mess. Your clients are relying on you for a reason and it’s your job to do what’s best for them.
当项目无法交付时,您将成为清理混乱的人。 您的客户依赖您是有原因的,尽自己所能来做是您的工作。
When you plop someone in front of a computer, they don’t care about flashy or sophisticated software. For the most part, people are only interested in what it can do for them. Does it make my life easy? Does it solve major issues from a legacy system? Is it fast? Is it intuitive? And is it pretty?
当您将某人放置在计算机前时,他们并不在乎浮华或复杂的软件。 在大多数情况下,人们只对它能为他们做什么感兴趣。 它使我的生活轻松吗? 它能解决旧系统的重大问题吗? 快吗 直观吗? 漂亮吗?
The difficulty is clients don’t even know what to ask for until they experience it. Your job is to engage and figure out sleek ways to deliver on that experience.
困难在于客户在经历之前什至不知道要问什么。 您的工作是参与并找到圆滑的方式来提供这种体验。
I once managed a support inbox where my clients were either angry or irritated. I dreaded getting any feedback. They even copied my boss into the chain of nasty emails! After implementing a major overhaul, I noticed their mood changed. It was a long-drawn-out battle but worth the fight. At the end, folks were happier and a lot more helpful.
我曾经管理过一个支持收件箱,在那里我的客户很生气或恼怒。 我害怕得到任何反馈。 他们甚至将我的老板复制到了讨厌的电子邮件链中! 进行了大修后,我注意到他们的心情发生了变化。 这是一场漫长的战斗,但值得一战。 最后,人们更加快乐,并且提供了更多帮助。
Great software should emotionally engage users, but anger is not the kind of emotion you are aiming for.
优秀的软件应该在情感上吸引用户,但是愤怒并不是您想要的那种情感。
This helped me see I wasn’t just writing software for the computer, but a person. Your job is to get clients to engage at an emotional level. Making the computer happy is not enough.
这使我看到我不仅在为计算机编写软件,而且是一个人。 您的工作是让客户以情感的方式参与。 使计算机快乐还远远不够。
Even when you let clients drive the solution for you, a client will not waste any time solving their own problem. A fascinating aspect of the human condition is clients would much rather wallow in misery than ask for help. This is why they hired you and are relying on you. When you face major set backs, it is often because they have other more engaging priorities.
即使让客户为您提供解决方案,客户也不会浪费任何时间来解决自己的问题。 人类状况的一个令人着迷的方面是,客户宁愿陷入痛苦而不愿寻求帮助。 这就是为什么他们雇用您并依赖您的原因。 当您遇到重大挫折时,通常是因为它们还有其他更具吸引力的优先事项。
Writing great software demands concern for the other—putting yourself in their shoes, experiencing what they experience, and suffering when they suffer.
编写出色的软件需要他人的关注—使自己陷入困境,体验他们的经验,并在遭受痛苦时遭受痛苦。
When I was managing an inbox of angry customers, at first I thought, “I am a web developer!” and I almost quit. But this attitude effectively put my clients beneath me. I didn’t exactly know this at the time, but somehow I felt I couldn’t just abandon them. Selfless sacrifice was necessary to take my skills to the next level.
当我管理一个愤怒的客户的收件箱时,起初我想:“我是一名Web开发人员!” 我几乎退出了。 但是这种态度有效地将我的客户置于我之下。 当时我还不完全知道,但是不知何故我不能放弃他们。 为了使我的技能更上一层楼,无私的牺牲是必要的。
To fulfill someone’s needs, it’s first important to let them know you care. At some point, you take on their experiences and sympathize on a personal level. In every way possible, take the time to work through their issues and figure out new ways to solve them.
为了满足某人的需求,首先要让他们知道您的关心。 在某些时候,您会接受他们的经验并在个人层面上感到同情。 以各种可能的方式,花时间解决他们的问题,并找出解决问题的新方法。
Your client may not care about a well-crafted solution and beautiful code, but your job is to show that you do. Once folks experience the fruits of your labor, they’ll get hooked.
您的客户可能并不关心精心设计的解决方案和精美的代码,但是您的工作就是证明自己做到了。 一旦人们体验到您的劳动成果,他们就会上瘾。
What you say you are going to do is exactly what clients expect. In this industry, when you over-promise and under-deliver, you lose trust.
您说的要做的正是客户的期望。 在这个行业中,当您过度承诺和交付不足时,就会失去信任。
I once sat with a client to reach an agreement before I could complete a major overhaul project. They said there wasn’t enough time for proper testing and the project would get put on hold. I said I could do what they asked in one hour. I got scoffed at.
我曾经与客户坐在一起达成协议,然后才能完成一项重大的大修项目。 他们说没有足够的时间进行适当的测试,因此该项目将被搁置。 我说我可以在一小时内完成他们所要求的。 我被嘲笑了。
When we finally sat down to test the system, I pulled out jQuery. I read the basic rules back to them and got testing and debugging done within the hour. My client left feeling confident in the solution. They knew they would get exactly what they expected, and that was everything they hoped for.
当我们最终坐下来测试系统时,我退出了jQuery。 我阅读了基本规则,并在一个小时内完成了测试和调试。 我的客户对解决方案充满信心。 他们知道他们会得到他们所期望的,这正是他们所希望的。
Working through the issues and delivering on promises earned their trust. Getting folks to trust you is the best way to build a strong relationship with clients.
处理问题并兑现承诺赢得了信任。 让人们信任您是与客户建立牢固关系的最好方法。
Saying no to customer nonsense is hard. Writing software is a social art that reaches far beyond the developer. Through this medium, you get to communicate emotion and confidence to another human being. You get to build relationships that will take your skills to the next level.
对顾客胡说八道很难。 编写软件是一种社会艺术,远远超出了开发人员。 通过这种媒介,您可以与另一个人交流情感和自信。 您将建立关系,将您的技能提升到一个新的水平。
What I find is not so much about the no but the underpinning yes. The art of saying “no”, is about keeping folks happy, showing that you care, and earning their trust.
我发现的不是关于否,而是确定的是。 说“不”的艺术是要让人们开心,表明您在乎并赢得他们的信任。
Have you ever had to push back on unreasonable client expectations? How did you manage it?
您是否曾经不得不拒绝不合理的客户期望? 您是如何管理的?
翻译自: https://www.sitepoint.com/art-saying/