Source: http://www.xymyeah.com/344.html
This article is published in the software world in April.
Recently, many people have asked me if there are any suitable people to recommend to their company. They are recruiting and interviewing many people, but experienced developers are too difficult to find. A friend asked me if I needed someone, while one of his developers asked me if I had a good chance. He wanted to change jobs.
A recent report said that one of the biggest problems facing local software companies in China is the lack of senior technical talents. This problem is mainly caused by the lack of talent cultivation and management mechanisms of local software enterprises. A large influx of talents into foreign-funded enterprises and frequent flows lead to a lack of experienced talents.
Everyone will dream of their ideal job. Developers who are doing technology require Simplicity: a position that can continuously learn new knowledge and new skills, a harmonious team, a comfortable and relaxed development environment, and a space for growth. These simple requirements are just what many companies ignore. Many of these are factors that a person decides to resign.
Some companies think that the development team is the cost center, so they buy them the cheapest desks and chairs-it is precisely because developers rely on such tables and chairs to create value for the company every day; some companies feel that they can make profits without stopping the implementation of a set of software. The most annoying thing for developers is to do repetitive work. Some companies require developers to go to work, developers will never leave work one minute later. Some companies never hold internal technical exchanges and training activities-the technical improvement developers hope is not only achieved by reading books.
Companies rely on software to make profits. To develop a successful software project, the role of a person is the first. Personal strength is insignificant compared to the entire team. The success of a slightly larger project is the result of collective efforts, rather than relying on one or two hero programmers. To maintain a stable and efficient team, building an environment and atmosphere that attracts developers is one thing that managers of all companies should consider. The departure of a core product developer may paralyze the current project or order, which has become a major concern affecting the survival of many small and medium enterprises.
My company is not only famous for its agile process, but also attracts a large number of high-level developers with its unique culture and team atmosphere. They not only agree with agility, but also look forward to this air of equality, freedom, relaxation, and happiness.
People and teams
A typical agile team has four roles: Project Manager, Business Analyst, development engineer, and test engineer. At the same time, different personnel may also need to be: Art Designers, database engineers, System Engineers, Interaction designers, etc. Although different people in the project need to determine a role and assume corresponding responsibilities, there is no hierarchical distinction between people who are completely equal within the company. This culture of equality prevents the loss of communication between people due to the level gap. At the same time, the company encourages everyone to develop into comprehensive talents in other areas of interest to them. For example, if a person is a developer, he can also help the project manager to learn the project management method and eventually become a dedicated project manager.
Communication is an important factor for project success. Ensuring smooth communication between internal and external teams is one of the responsibilities of the project manager. The company encourages employees to exchange views and discuss issues. Within the company, if you have spare time, you can arrange a lecture at any time. These lectures are organized and held on a voluntary basis by employees. There are various topics, not only limited to technology. Economic, Legal, and business knowledge are all areas of common interest. In projects, regular learning lunch is also a major feature of the company's projects. Sitting in front of the dining table with the customer, enjoying the lunch provided by the company while discussing the technology in the project, the learning and communication atmosphere of the Team will naturally grow infinitely high.
In addition to spontaneous and free communication, there are also some agreed communication time and forms, such as daily standing meetings. You need to explain what you did yesterday, what you will do today, and whether you need help from others. The Standing Meeting encourages everyone to tell the truth. If you have difficulties, you can boldly seek help from your most trusted companions. No one will laugh at you, and no one will ignore your predicament coldly. A self-organized team should be a warm and harmonious group. Everyone will try their best to help others solve their problems and accumulate more experience.
Figure omitted: Standing Meeting
Both in the project and in the personal development process, review and summary are indispensable steps. There will be a summary activity when everything inside the company is coming to an end. Iterative summary, project summary, release summary, and companion training summary. During this period, what is done well, what is not done well, and how to make improvements. Any process and score cannot be static. Only constant reflection and summarization can further improve the future development. The project team will hold a summary meeting together. In this activity, no one can blame or attack others. Everything should be based on mutual trust, our goal is to improve the next work efficiency and enhance the confidence of our peers, rather than fighting and shirking responsibility. The company's performance appraisal for employees is also similar to the evaluation by a partner who has worked together, with an all-round 360-degree appraisal. This regular summary and review gives employees and teams the opportunity to grow themselves.
In addition to internal communication, the company also encourages employees to conduct technical innovation and participate in other social activities, such as participation in open source software development, writing books, contributing to magazines, and participating in and holding technical community activities. These contributions to the technical community not only improve the individual abilities of employees, but also show the overall abilities of employees and increase the company's awareness. It is a win-win situation for companies and individuals.
Environment and tools
If you have the opportunity to go to our office, you will find that every wall is full. The wall may be filled with small cards of various colors. These are the requirements of ongoing projects. Each card is a user story. developers can implement system functions based on user stories. This clear management method that is pasted on the wall is called visual management. In the company, the status of various processes such as development, recruitment, and sales is listed on the wall. One can be publicized as a progress chart of the work, and the other can enable everyone who is interested to come up with his ideas or ideas at any time to brainstorm and make the work the best.
Figure omitted: Wall
The company uses a large long table as a development table. There is no partition between seats. On the one hand, it is suitable for pairing programming practices in Agile development, and on the other hand, it can reduce the barriers to communication caused by the partition. If you go to a company that uses a partition and compare the company's working environment, you will obviously feel that the frequency and breadth of communication are significantly different. The company provides developers with comfortable seats with handrails and can adjust the height and playback angle to suit different needs of everyone. If you are tired of working at noon, you can lie in a chair and take a nap for a while so that you can put yourself into work in the afternoon.
Figure ‑ development table and chair
In projects, whiteboard and paper are indispensable communication tools. There are no more cheap and useful tools. The two developers encountered a disagreement. They went to the whiteboard to write and draw pictures. Soon, a clear system context appeared in front of them. When the differences reach an agreement, the development will continue, while the images will remain on the whiteboard. Any programmer who goes through the road can stop watching them. If you are interested, you can ask the author for further exploration. During the development process, you can immediately write any problems or records you encounter on the White Paper at hand. Some simple algorithm drafts are also completed on white paper. The White Paper is mostly printed with one used paper, which is environmentally friendly and economical.
Like most foreign companies, our company provides free drinks and snacks to employees. Every morning, the company's toaster will work constantly, and the aroma of the toast will fly in the air with the smell of coffee. After lunch, I took out a can of jianyi cola from the refrigerator, which was cold and refreshing. After drinking it, I could take a rest to start the afternoon work. At five o'clock on the afternoon, when I started to feel hungry, I went to the snack area to find a piece of chocolate to supplement my physical strength. By the way, I took a few minutes to have a good workout.
Figure omitted beverage snack Zone
The company also has a TV set and a PS2 in the office. After lunch and after work, you can have a live football match with your colleagues, I have deepened my feelings with my colleagues. Companies also often organize various sports activities. Renting a badminton court once a week helps employees who have been working in front of their computers exercise well.
The above are some of my company's practices in building team culture. I suggest this for your reference. I hope more company managers can learn more or less from this experience, improve the physical and humanistic environment of the company's developers.
To transform the company's development environment, you can start from a very simple one, for example, opening up a food area in the corner of the Office to provide free drinks and food; hanging a whiteboard in the corridor, someone can record things at any time and provide employees with more comfortable seats. These things do not cost much, but the results are obvious. Both the technical department and other departments will be happy with the company's personal actions. With high morale, you will naturally be more active and efficient in doing things. The company does not need to change all at once, but a little bit of detailed changes can be supported by all the staff. Although there are some investments, employees will return more to the company.
Whether it is agile development or lean management, the role of the team is the most important. If we can make full use of our dynamic roles, we can continue to work well. I don't think we can accomplish anything. If all companies can provide a good environment for developers, it is not only a blessing for developers, but also a great blessing for the entire Chinese IT industry.
More: http://www.xymyeah.com/344.html