程序员编程大多数用哪个软件
重点 (Top highlight)
I have been working with different software companies for over six years. From financial software companies, which focus on their own products, to software agencies, which build and maintain different projects for different industries and also worked as a freelance developer and have had my own clients.
我已经与不同的软件公司合作了六年以上。 从专注于自己产品的金融软件公司,到为不同行业建立和维护不同项目的软件代理商,还担任自由开发人员并拥有自己的客户。
Throughout all of those years experience, and in every one of the companies I have worked for, there is a pattern that always repeats itself.
在所有这些年的经验中,以及在我供职的每家公司中,都有一种模式会不断重复。
Developers seem unable to properly collaborate with product people or the client directly.
开发人员似乎无法直接与产品人员或客户进行适当的协作。
However, whilst I was working as a freelance developer, something changed. Sure, at the beginning it was the same pattern, a list of features/tasks, and a deadline, but the more I met with a client, the more I understood their business and more importantly, the more I understood their brand.
但是,当我作为自由开发人员工作时,情况发生了变化。 当然,一开始它是相同的模式,功能/任务列表和截止日期,但是我与客户的交流越多,我就越了解他们的业务,更重要的是,我对他们的品牌也越了解。
The greater engagement I had with a client, the greater the opportunity to discuss and question certain features, measure the user impact, suggest other ideas, and in general, improve the quality of the overall product and fix the user’s pain points. Soon, we were able to forget about dates and focus on the product itself.
我与客户的互动越多,讨论和质疑某些功能,衡量用户影响,提出其他想法的机会就越大,总的来说,可以提高整体产品的质量并解决用户的痛点。 很快,我们就可以忘记日期,而专注于产品本身。
I would work together with the client and we would come up with many great ideas and the project would end up being extended, and yes, that can be chaotic from a corporate standpoint.
我将与客户一起工作,我们将提出许多很棒的主意,并且该项目最终会得到扩展,是的,从企业的角度来看这可能是混乱的。
We moved dates!!!
我们搬了日期!!!
We changed requirements, we changed the initial contract and we signed off on a new contract but the product was a success, the client was extremely happy and I believe, in the end, that was the real goal.
我们更改了要求,更改了最初的合同,并签署了新合同,但是该产品取得了成功,客户非常高兴,我相信最终,这才是真正的目标。
Had I done what I was asked for initially, the product would have missed out on a huge amount of value. Our job is not to do what we are told to do, our job is to create something that solves problems.
如果我完成了最初要求的工作,那么该产品将错失大量价值。 我们的工作不是做被告知要做的事情,我们的工作是创造解决问题的方法。
“Be stubborn about your goals but flexible in your methods” — Unknown
“对目标固执,但方法灵活” –未知
软件公司的问题 (The problem with Software companies)
When a developer talks to a client, they tend to be defensive, especially when it comes to receiving feedback. Everything the client says is treated as a threat and disagreements often occur. Developers seem reluctant and/or unable to collaborate…
当开发人员与客户交谈时,他们倾向于防御,尤其是在收到反馈时。 客户所说的一切都被视为威胁,并且经常会发生分歧。 开发人员似乎不愿意和/或无法合作…
Why is this/strong>
为什么是这样/strong>
Many circumstances seem to pit developers and clients against each other, making them enemies rather than allies. I believe the main reason for this behavior is that from the beginning of a project, developers are only given the requirements and the deadline. They then have to complete the tasks in a set amount of time in order to receive their payment.
在许多情况下,开发人员和客户似乎相互竞争,使他们成为敌人而不是盟友。 我相信这种行为的主要原因是,从项目开始时起,开发人员仅获得要求和截止日期。 然后,他们必须在设定的时间内完成任务才能收到付款。
That’s okay, but it’s not surprising why developers act defensively if the client starts to give feedback in an early review session and then complain that it didn’t reach the goal/revenue the company had expected, which is information that the developers were not made aware of before or during the development stage. If the client then suggests a solution, the developer feels threatened and may also be wary of missing upcoming deadlines.
没关系,但是如果客户开始在早期审查会议中提供反馈,然后抱怨客户没有达到公司预期的目标/收入,这就是开发人员没有做出目标的信息,那么开发人员会采取防御性行动也就不足为奇了在开发阶段之前或之中意识到。 如果客户随后提出了解决方案,则开发人员会感到受到威胁,并且也可能会担心错过即将到来的截止日期。
Software development is rarely a streamlined process, from the initial idea up to the creation of a product there are many iterations, pivots and changes in between that you only get to see when you are in the development/building process
从最初的构想到产品的创建,软件开发很少是一个简化的过程,在它们之间有许多迭代,枢纽和变化,您只能看到自己何时处于开发/构建过程中。
Developers may lie about feasible solutions depending on how much time it takes to build vs the value of the feature. They may say that a certain feature is impossible to create, refraining, and limiting themselves from even thinking of ways to make it possible. They will make excuses and provide the quickest and effortless solution possible.
开发人员可能会根据可行的解决方案,取决于构建所需的时间与功能的价值。 他们可能会说某个功能是不可能创建,限制和限制自己的,甚至无法思考实现该功能的方法。 他们会找借口,并提供最快,最轻松的解决方案。
Client/developer relationships are based on money, fear and necessity. The client provides a contract with the job specifications and developers work to fulfill the contract in order to get paid. When an issue arises (because, let’s be honest, they always do), developers will prioritize the deadline and the money thus creating a barrier between the two parties stagnating collaboration. In this way, the client will be the only one who cares about the product and the only one providing any valuable ideas and insight.
客户/开发人员关系基于金钱,恐惧和必要性。 客户提供一份具有工作规格的合同,开发人员会努力履行合同以获取 酬。 当出现问题时(因为,老实说,他们总是这样做),开发人员将优先考虑截止日期和资金,从而在停滞合作的两方之间建立了障碍。 这样,客户将是唯一关心产品的客户,也是唯一提供任何有价值的想法和见解的客户。
Meanwhile, the developers’ concerns are the missing-of-deadlines, coming under scrutiny from their boss and/or possibly getting fired.
同时,开发商担心的是最后期限的缺失,受到老板的审查和/或可能被解雇。
As developers, we are sometimes unable to think outside of our current task in order to see how it connects to the vision of the product, we do only what we’re asked, we follow the specifications but we never think more than that. Even if we identify that the given specification may not be the best solution and could possibly cause other problems in the future, we are afraid to speak out because it will have a detrimental effect on our ticket completion rate. And after all, that’s how our performance is measured rightBy how many tasks we complete/p>
作为开发人员,我们有时无法思考当前任务之外的内容,以了解它如何与产品愿景联系在一起,我们仅执行要求的操作,遵循规范,但我们从来没有想到更多。 即使我们确定给定的规范可能不是最佳解决方案,并且将来可能会引起其他问题,但我们还是害怕大声疾呼,因为它将对我们的机票完成率产生不利影响。 毕竟,这就是对我们的绩效进行正确衡量的方式吗我们完成多少任务
Available options for developers:
开发人员可用的选项:
1. Complain about the description of the proposed solution and work together to propose a better one.
1.抱怨所提出解决方案的描述,并共同提出更好的解决方案。
Output:
输出:
- Zero tasks got completed
零任务完成
- Uncertain results
不确定的结果
2. Solve the current task and do not ask questions.
2.解决当前任务,不要问问题。
Output:
输出:
- Receive the boss compliment
得到老板的称赞
- The task got completed
任务完成了
- Kept the ticket/task completion rate high
保持故障单/任务完成率高
- If issues come up later, they would be the client’s fault
如果问题稍后出现,那将是客户的错
让我们考虑另一种情况 (Let’s consider a different scenario)
From the start of the project, developers are included in business discovery. Clients and developers brainstorm ideas that bring value to the product and users. Developers are the tech experts and with no deadline discussed yet, everyone will feel free and dare to talk about crazy ideas, even if they have not done it before or think it would be difficult to build. A true collaboration will happen and everyone will be thinking about features and ways in which they can deliver the user the best possible product and experience.
从项目开始,开发人员就包含在业务发现中。 客户和开发人员集思广益,为产品和用户带来价值的想法。 开发人员是技术专家,并且没有讨论最后期限,即使他们以前没有做过或认为很难构建,每个人都会感到自由和敢于谈论疯狂的想法。 真正的协作将发生,每个人都将在思考可以为用户提供最佳产品和体验的功能和方式。
After the discovery stage, developers will estimate how much time it will take to build each feature and the client will prioritize and choose which features give the most value to the user and/or will bring more revenue to the business. A deadline will be set and agreed upon between all parties, creating a commitment and alignment, everybody is invested.
在发现阶段之后,开发人员将估算构建每个功能所需的时间,客户将确定优先级并选择哪些功能可以为用户带来最大价值和/或为企业带来更多收入。 各方之间将设定最后期限并达成协议,建立承诺并保持一致,每个人都将投入。
With the latter approach we achieve:
使用后一种方法,我们可以实现:
- Everyone is on the same page
每个人都在同一页上
- Every opinion counts, everyone is part of the team and belongs to something big
每个意见都很重要,每个人都是团队的一员,并且属于重要的事物
- The developer’s mindset is no longer to complete the ticket or make the grumpy client happy. Everyone understands the big picture and will collaborate to make a great product
开发人员的心态不再是完成票证或使脾气暴躁的客户满意。 每个人都了解大局,并将合作打造出出色的产品
- Everyone is committed to the same, pre-agreed goal
每个人都致力于相同的,预先达成的目标
- Everyone understands the business and what the key metrics are
每个人都了解业务以及关键指标是什么
- There’s a clear picture of what project success looks like
关于项目成功的模样一目了然
- When issues come up developers understand the whole picture and can be honest, suggest more creative, innovative ideas, ideas that may or may not fit in with the current deadline
当出现问题时,开发人员可以理解整体情况并且可以诚实地说,提出更具创造性,创新性的想法,这些想法可能与当前截止日期不符
When everyone knows the “why” and understands how the business works, everyone will go the extra mile together and truly collaborate to make the impossible possible.
当每个人都知道“为什么”并了解企业的运作方式时,每个人都会共同努力,真正合作以实现不可能的事情。
At the end of the day, the client will fumble and re-prioritize tasks if needed, but the end goal is no longer to complete the task and get the monthly check on the table. The goal is now to make a great product, make the client’s demographic happy and make the business grow.
一天结束时,客户会根据需要摸索并重新确定任务的优先级,但是最终目标不再是完成任务并获得月度检查表。 现在的目标是制造出优质的产品 ,使客户的人口统计满意并使业务增长。
All of that will reflect in the success or failure of the product when we focus on the right goal, if the product user is happy, the MVP will bring in enough revenue, more features will come up, a new contract will be signed, ideas that were left behind due to time will be relooked at, more brainstorming with developers, final tweaks and amendments will be made. With everyone working together as a team with a clear mission statement, the results will be better, more targeted and refined products.
当我们专注于正确的目标时,所有这些都将反映在产品的成功或失败上,如果产品用户满意,MVP将带来足够的收入,更多的功能将会出现,新的合同将会签订,想法将重新考虑由于时间而遗留下来的内容,与开发人员进行更多的头脑风暴,进行最后的调整和修正。 每个人都以明确的使命宣言作为团队合作,结果将是更好,更有针对性和更精致的产品。
The bottom line:
底线:
- Hire people driven by passion
雇用激情驱动的人
- Build awareness and empathy including the team in product discovery
建立意识和同情心,包括产品发现团队
- Make everyone feel they belong to something big, keeping the team engaged and excited about the people they impact and help, keep the vision alive in your team
让每个人都觉得自己属于大公司,让团队参与其中并为他们所影响和帮助的人感到兴奋,使愿景保持在团队中
- Build team empathy with the clients demographic, foster human connection, if possible meet the prospective users in person
与客户群体建立团队同情心,促进人际关系,如果可能的话亲自与潜在用户会面
- Celebrate small wins
庆祝小胜利
- Be open and clear
开放而清晰
- Prefer over-communication over poor communication
宁愿过度沟通也不愿沟通不良
- Build trust
建立信任
-
Clearly define what success looks like for the developer role, Do not only measure ticket completion rates but how many times this person helped others, raised red flags or unforeseen blockers, etc.
明确定义开发人员角色的成功程度, 不仅要衡量票证的完成率,还要衡量此人帮助他人的次数,举起红旗或无法预料的阻碍因素等。
- Make it easy for the team to collaborate/help each other
使团队易于协作/互相帮助
- Build an environment where people see failure as an opportunity to learn, grow and get better, this will promote creativity and fresh ideas
建立一个让人们将失败视为学习,成长和进步的机会的环境,这将促进创造力和新鲜想法
- Build different motivators at work other than simply “something I do to get paid”
在工作中建立不同的激励因素,而不仅仅是“我为获得 酬而要做的事情”
- Invest in the Company Culture, Culture is the key in making employees feel like they are part of a family to create a sense of belonging
投资公司文化,文化是使员工感到自己像家人一样建立归属感的关键
- When unforeseen blockers occur, outline tradeoffs, be honest with the client about available solutions and together reprioritize the backlog
当发生无法预见的阻止因素时,请概述折衷方案,对客户诚实地了解可用的解决方案,并共同重新安排待办事项的优先级
There’s always an invisible barrier that divides developers from clients, stopping them from truly collaborating as they aim towards different goals, the solution, of course, is to align our visions and merge our goals so that we move forward together as a single unit, with a common purpose.
总会有一个看不见的障碍,将开发人员与客户区分开来,阻止他们在针对不同目标的过程中进行真正的协作,解决方案当然是调整我们的愿景并合并我们的目标,以便我们一起作为一个整体一起前进。一个共同的目的。
Like the contentGet my latest articles in your inbox! (Once a month email).
喜欢内容吗在您的收件箱中获取我的最新文章! (每月发送一次电子邮件)。
翻译自: https://medium.com/swlh/why-most-software-projects-fail-and-how-to-avoid-it-2c56f458bc4c
程序员编程大多数用哪个软件
文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34187 人正在系统学习中 相关资源:大型软件系统技术路线分析.docx_软件技术路线-互联 文档类资源…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!