http://blog.salsitasoft.com/how-we-built-a-25-developer-service-company-and-growing-strong/
What programmers hate above all is having a bozo non-technical manager hounding them with stupid questions and demands. Stick to technical or product-savvy managers who make visible contributions to projects and earn the developers' respect.
Useless restrictions and bureaucracy are a close second. Be as accommodating about vacation, working hours and remote work as possible. Money, free food and company karaoke outings are nice, but freedom and flexibility are far more important.
https://dzone.com/articles/what-do-programmers-want
Minimal bureaucracy. For the development process, this is more or less fixed with agile development methodologies, which seem almost universally adopted. General administrative overload is mostly a problem at larger companies in my experience.
Users. One of the joys of coding is making something that is useful to others. Making something that nobody uses is boring. Having users (the more the better) focuses the development effort and gives valuable feedback. The only exception would be a start-up, but then the overriding priority must be to get users as soon as possible.
https://rework.withgoogle.com/blog/five-keys-to-a-successful-google-team/
Who is on a team matters less than how the team members interact, structure their work, and view their contributions.
What programmers hate above all is having a bozo non-technical manager hounding them with stupid questions and demands. Stick to technical or product-savvy managers who make visible contributions to projects and earn the developers' respect.
Useless restrictions and bureaucracy are a close second. Be as accommodating about vacation, working hours and remote work as possible. Money, free food and company karaoke outings are nice, but freedom and flexibility are far more important.
https://dzone.com/articles/what-do-programmers-want
Great colleagues. It is very stimulating to work with smart programmers who are passionate about software development. Time and again I see how discussing a problem or a design with a colleague leads to a solution that is better than either of us would have come up with by ourselves. Not only does it lead to better code, the process itself is also very enjoyable.
How do you know if someone is a good programmer? A very good sign is if they keep learning and improving their skills, for example by reading books and blogs, taking courses, and going to conferences. It is not a necessary condition though; I’ve worked with plenty of really great developers that don’t. Finally, good developers tend to attract other good developers, because of the reasons above. The fact that a company has many great developers makes it easier to recruit more.
Challenging problems.Minimal bureaucracy. For the development process, this is more or less fixed with agile development methodologies, which seem almost universally adopted. General administrative overload is mostly a problem at larger companies in my experience.
Users. One of the joys of coding is making something that is useful to others. Making something that nobody uses is boring. Having users (the more the better) focuses the development effort and gives valuable feedback. The only exception would be a start-up, but then the overriding priority must be to get users as soon as possible.
https://rework.withgoogle.com/blog/five-keys-to-a-successful-google-team/
Who is on a team matters less than how the team members interact, structure their work, and view their contributions.
- Psychological safety: Can we take risks on this team without feeling insecure or embarrassed?
- Dependability: Can we count on each other to do high quality work on time?
- Structure & clarity: Are goals, roles, and execution plans on our team clear?
- Meaning of work: Are we working on something that is personally important for each of us?
- Impact of work: Do we fundamentally believe that the work we’re doing matters?