Today, a software development company’s office reminds an amusement park, rather than a workplace. There is no need to visit Disneyland anymore, because ping-pong tables, golf fields, game consoles, and color chairs are spread across the office rooms, connected by roller coaster rails and water slides.
Yesterday I had a conversation with one hiring manager I know. He’s been complaining that it’s very hard to attract good developers because the competition is too tight. Then I asked him:
Why should developers choose your company?
For the next half an hour, he’s been proudly telling about “exciting” projects, competitive salary, and a fancy office in the city center. During his elevator pitch, he was not shy to mention disruptive technology, innovation culture, and dynamic environment, also known as “our management can’t stop changing priorities”.
When I asked him what motivates software developers, he shrugged.
Companies waste millions on building the environment they think makes developers happy, without understanding what actually makes developers tick.
Unless your goal is to win a ping-pong tournament, remember: when developers change jobs, the last thing they care about is your fancy office and table tennis. Developers need autonomy, mastery, and purpose.
Autonomy
Autonomy is a certain amount of freedom every developer needs. Here is how companies destroy autonomy:
Product Owners decide on requirements and priorities. Architects make key technical decisions. Managers decide who will work with whom. People you’ve never seen before suddenly become your colleagues. You’re not allowed to work remotely unless the world is at risk of extinction.
Modern corporate offices only provide an illusion of autonomy. Open spaces are not that open, because invisible electrical fences are installed everywhere. Permission, consensus and strict adherence to the process is required at every step, which reduces creativity and innovation levels down to zero. Product Backlog is God; don’t question priorities; your ideas can wait.
To promote autonomy:
-
Lead through vision and empowerment, instead of giving detailed instruction. The idea is to give people the information they need, the authority to take action and figure out implementation details. It’s called Mission Control.
-
Design full-cycle teams, where a team is responsible for the full software life cycle: analysis, design, development, testing, deployment, ops, and support. Eliminate cross-team dependencies and unnecessary consensus.
-
Allow personalization of work. Let Mike attend daily standup from Starbucks. Let Kate move and work remotely from Barcelona. Let Jeff try out his new idea now, not at the next Hackathon.
Autonomy doesn’t happen automatically. Organizations must be carefully designed with autonomy in mind.
Mastery
Mastery is our desire to improve. When professional growth slows down, developers dust-off their CVs and become “open to job opportunities”. A good developer will never trade mastery for money, perks, or a pompous office. We built a modern computer in the garage.
To promote mastery:
-
Pick team leaders wisely. A team leader is not an average developer with secretary duties no one else wants to carry out. A team leader is an inspiring master craftsperson; the role model; a person other teammates aspire to become. A team leader promotes technical excellence, spreads optimism, mentors people, and gives away the most interesting tasks to others.
-
Amplify learning with pair programming. By pairing with colleagues and regularly switching pairs, people pick up new coding tricks every day, learn to listen, learn to explain, come to work prepared, open up, build relationships. To grow well-rounded developers, consider not only pair programming but pair testing, pair ops, pair speaking, pair interviewing.
-
Demand mentoring at all levels. Make knowledge sharing and mentoring a prerequisite for a promotion: you can only grow if you grow others. How many successful developers your seniors have been able to grow? Of these developers, how many keep growing the newcomers? Of these developers, how many believe in themselves and have the confidence to speak at conferences?
Don’t promote smartasses. Promote mentors.
Purpose
Purpose transforms a group of people into a team. Purpose makes you code until late night and wakes you up at 6:00 am excited and ready to rock.
Unfortunately, developer work often reminds playing Fruit Ninja: you cut through a never-ending stream of random
tasks falling on you from JIRA. The faster you cut, the faster new tasks appear. That’s how companies turn passion into depression.
When the work is meaningless, it’s only a question of time when developers will find the true meaning of work. The culmination will be your corporate blog re-implemented using a reactive microservice architecture.
It doesn’t matter if you send rockets to space or keep a legacy accounting software alive. To reinforce the sense of purpose:
-
Develop psychological ownership. Psychological ownership is when an individual feels psychologically tied to something. Working in a stable, long-lived team builds a sense of belonging. Responsibility for a single codebase builds a sense of ownership. Serving one customer grows into meaningful relationships, empathy, and trust. Caring for things that matter to us is endowed with purpose.
-
Use goals or missions. Even a good old Scrum recommends defining a Sprint Goal because a sprint is not just a bag of random tasks. Sprint Goal is what the team plans to achieve during the sprint. All tasks must adhere to the goal, otherwise, people end up working on unrelated tasks, which downgrades the team into a group of people. The goal is what mobilizes, unites, and gives a sense of accomplishment.
-
Let developers see the impact of their work. If you build software for traders, go to the trading floor. Meet real people, see customers using and enjoying the stuff you built. Forget about B2B or B2C. We are in P2P business, where people build things for people. Let customers go to the engine room and see craftspeople at work. Celebrate ups and downs together. Engineers shall not eat pizzas alone.
Summary
In this crazy hiring race, we have lost sight of what really matters. In an attempt to attract and retain the best talent, money is being wasted on modern offices, perks, parties, ping-pong tables, and promo videos showcasing that all.
Leaders and people in charge of hiring must understand what motivates developers, and start designing organizations accordingly. Instead of building a fancy place to work, give people a reason to come to work. Otherwise, you’re just putting lipstick on a pig.
Developers don’t need ping-pong tables; they need autonomy, mastery, and purpose.
以上所述就是小编给大家介绍的《Developers don't need ping-pong tables》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Big C++中文版
霍斯特曼 / 姚爱红 / 电子工业 / 2007-3 / 85.00元
本书是一本关于C++的优秀教材,南圣何塞州立大学知名教授Horstmann编写。全书深入探讨了C++的知识,并着重强调了安全的标准模板库;本书较厚,但它可用做程序设计专业学生的教材(两学期)。全书在介绍基础知识后,作者论及了一些高级主题。书中面向对象的设计一章探讨了软件开发生命周期问题,给出了实现类关联的实用提示。其他高级主题包括模板,C++标准模板库,设计模式,GUI,关系数据库以及XML等。本......一起来看看 《Big C++中文版》 这本书的介绍吧!