Ask HN: Critique my company
Every time we hire a new developer I give them a few weeks to get up to speed with someone else and then I meet with them and we talk. I always ask "What do you see that we could be doing better? It could be anything, our process, the tools we use, our structure, anything." And I get literally nothing. I just can't believe it. Am I not asking the right question? Or I'm not asking it the right way? I thought maybe people were intimidated by me so I had someone else do it, HR, team leads, but we get the same result. There are even some pretty obvious flaws that we have like a homegrown, google docs based project tracking system and our lack of using third party libraries but the developers never mention it. And I'm sure there are many other issues that I have trouble seeing.
Prior to starting the company I worked at six different companies and outside of the first one, my first real programming job, I would always have lots of ideas in the first few weeks about how things could be improved. Some of my ideas were bad because I just didn't understand what was going on well enough but I like to think that some of them had merit.
Any ideas how we can get feedback from our new developers on how to improve?
73 comments
[ 3.7 ms ] story [ 134 ms ] thread[1] Are you hiring from a pool of developers who used processes/tools that are the same or inferior to what your company is using? In other words, your company is already excelling compared to their previous experiences.
[2] Could you be hiring from a pool of developers who have been previously conditioned or selected to "keep their heads down"? From the outside looking in, the finance world seems pretty rough and tumble. The geek/nerd response to being with a bunch of jocks is be to stay quite. [I'm a geek/nerd in case that can be taken the wrong way.]
[3] Lastly, honest feedback requires either anonymity or trust. Trust is tough. A single case of a guy getting marched out by security when he told his manager "I'm not happy with my salary." trumps all the other times a manager tells someone, "If you're not happy, come see me." Heck, seeing someone marched out by security for any reason destroys pretty much any trust in management. If your new hire worked a place like that before, it's understandable that he might be reticent to trust his new company.
The devs in question may have real issues with confidence. Straightforwardly saying up front that their feedback is hands-down not going to get them fired or affect their position or compensation may help a lot here. Explaining how to give feedback, eg by focusing on objective criticism and avoiding personal attacks (and similar common-sense sentiment) may also help.
It may also be useful to think back to when you'd just started at the six companies you mention, and spend some time remembering the mindset you had - in particular the divide that was present between the ideas you had and the difficulty, if any, that you had with actually sharing these ideas. For these new hires this same exact situation is playing out with your employees.
Maybe the company culture could focus more strongly on feedback from the start, instead of abruptly posing the question a few weeks in. It should be integrated into the onboarding, possibly be part of the hiring, etc etc, so that new hires associate "$company == feedback". That may help with the intimidation factor.
Hopefully an approach like this results in a steady stream of feedback from the start.
You're right that ideas developed when adjusting can sometimes have a kind of 20/20 clear vision, but that they can also be bad because they don't fully grasp all the implementation details or culture or whatnot.
It may be a good idea to wait two months+, or until the person in question is consistently producing output, not much surprises them and they seem almost bored, to start looking at some of the less likely-sounding tidbits that come back. I can tell you that if you waited say six weeks before asking me anything I likely would not spit out any useful metrics due to nerves and the newness of everything.
One idea that could be interesting is to start a feedback page somewhere (perhaps a wiki page - or a Docs document everyone can edit would be a start), and add everything you can think of. The hope here is that since there's a bug list, a) there's now an already-started thing so people don't have to overcome that intertia, and b) people will go "wow, this is fairly scathing" and won't feel so bad adding to it. :P
I was also wondering about making feedback anonymous; this could be a good last-resort, but I wouldn't immediately try this: "oh, that was me" is too likely to come out at the most (needlessly) awkward of moments, it promotes a "you can't be honest" mentality (!!!!!!!!), etc. Like I said, very last resort, not recommended.
This topic reminds me of the "customers don't know what they want" problem - asking customers directly what they want in terms of new features or improvements can sometimes simply not produce actionable results, or result in false leads that can take an extremely long time (and in some unfortunate circumstances a lot of money) to discover aren't the core issues. Figuring out how to find the core issues can be tricky. (I unfortunately don't remember where on here that I read about this, but I do remember there not being any simple solutions; if anyone has any links I wouldn't mind remembering!)
1. Implementation skills: can implement a solution, e.g. knows C++.
2. Problem solving: given a problem, can come up with a solution. "We need an API for X" -> can come up with a design for the API.
3. Identifying problems: can notice problems exist.
4. Teamwork.
(Probably other skill trees as well.)
Assuming confidence, trust and culture aren't an issue, it may just be the developers you're hiring lack the relevant skills to identify problems.
These skills are rarely if ever taught explicitly, so many programmers get by with just implementation skills, or just implementation and problem solving skills. As you realize, though, problem solving and even more so identifying problems are key to productivity (https://codewithoutrules.com/2016/08/25/the-01x-programmer/).
Maybe you should consider teaching these skills, or change hiring process to screen for them, or both.
1. The formality of the process.
2. A lack of previous informal conversations. The first time the boss shows up in a new hire's office, a good strategy is often to keep one's mouth shut.
3. Only asking new hires. A sophisticated new hire may realize that they do not know the big picture. Other new hires may not want to throw their team 'under the bus'.
4. The homegrown Google docs and in-house libraries are all "somebody's baby". And if they were a priority problem, then the founders would have fixed them. They haven't, so what is the point in mentioning something that obviously will not change.
My random internet advice:
1. Come up with a real plan to fix the problems everyone knows about.
2. Ask everyone how to improve the process, not just new hires.
3. Build a culture of trust.
Good luck.
Did you frame the conversation in advance with the new hire? Tell them - I want you to make a critical assesment of everything we do. We'll meet again in a month's time. I'll be looking for specific, actionable ideas on how we can do things faster/better/smarter. What would it take to grow 10%?
If new ideas your desired outcome-- formalize the process with a Quarterly Brainstorm/Review pulling together thoughts from the entire team. Then select the top 2-3 to work on. The process helps foster a culture of strategic thinking and innovation.
Let them know you are building a manual to help other new hires. Maybe even let Senior people add questions or answer it. This would be sort of like an internal StackOverFlow for just your company, but organize it as a manual.
So instead of them trying to identify what you should be doing better, they just inherently point out where they are getting tripped up in your process.
The only other similar thing that comes to mind is how Tim Ferris wrote about this method of maintaining a FAQ to automate the customer service process in the 4 Hour Work Week.
Maybe they could begin to repair the culture with the suggestion box, by asking why everyone is so hesitant to critique during face-to-face interviews. That alone should show that they're making an effort, and acting on any of the suggestions will further the cause. Basically, use the anonymous suggestion box to get rid of the anonymous suggestion box.
What generally happens with strong technical employees is this. While they're idealistic and new, they will be relatively honest and direct (simultaneously trying to be polite) for the first couple of years. After a while, they will try to figure out why they've been forced out from their company every 6 months.
It will click that maybe the boss didn't really mean it when he asked for an inventory of problems and concerns. Maybe all those people who smiled and nodded while a technical "debate" was going on were secretly developing resentment. Maybe people disliked them because their behaviors were interpreted as snobby, arrogant, insensitive, condescending, or detached, despite the politeness with which they delivered their opinions.
Then, they will either a) nope out of the career track entirely and become a consultant/freelancer/entrepreneur; b) lie to themselves and believe they can find the magical land where this doesn't happen, which only sets up for a harder fall down the line when you realize no such magical place exists, because people are people everywhere; or c) embrace the realities of human collaboration and try to raise a successful career from the ashes.
I've done both A and B. A usually loops back around to a full-time gig at some point. Some people will remain unaware and try to believe in B for the duration of their career. When you exit denial from B, you have to embrace C (even if you loop back to A, C is informative for your ongoing ventures).
Ask the ones who leave, but wait 5 months until they're comfortably settled into new employment. You can bet they'll give it to you straight, but you might not like that either.
Maybe instead of simple feedback it would be worth to just task the developer with improving something that they will see as problematic (kind of 20% time but for improvement).
Whatever you say, it can only make it worse.
Now, let me start by saying I don't intend for this to be a suggestion for everyone in every situation, I just want to suggest that sometimes it can make things better.
I left my job three months ago, but I had actually tried to quit about 6 months earlier, instead I ended up switching positions. None of the problems I was having really ended up getting resolved after the my first attempt to quit, which is why I ended up actually leaving after giving it 6 months. But from what I've heard from friends still there, since I left they've actually been trying to fix things.
For the last month or so, my boss knew I was again debating leaving and we ended up having at least one conversation a week about things that were wrong. For me personally, it was great, I didn't have that stupid voice in the back of my head telling me to downplay everything. I think he appreciated how candid I was too.
Now don't get me wrong, I'm not saying everyone should always do this. I worked for a company with ~150 people and I was the 12th hire, with my boss coming in shortly after me. However, saying you should never do it isn't true either.
Much happier now, it's worked out well for both of us.
But if people have problem with feedback why are they asking for it?
It's easy to say "Yes, I want harsh criticism!" Indulge this a few times and see what happens. I have been fortunate to meet one or two people who mean it and roll with it. However, most people who say this will end up reacting violently anyway, thinking of some reason why that specific thing you said was out of bounds. Never trust someone to act reasonably based on their promise to do so.
The issue of "leadership blindness", where you get tuned out because everyone you around is so interested in pleasing you and never wants to give you adverse information, is serious and real. It's one of the most important things for a company's leader to circumvent, and sadly, not very many corporate leaders have the humility to do so.
I experienced this even when I was just barely up the ladder. As soon as one starts climbing up (that is, gets any subordinates), the dynamic instantly changes.
To OP: give up on asking directly. It's not going to help. Any information you get in direct reply will be useless or worse. Do not expect to get it straight. Assume that there's a bug in your employees' log function that is causing only INFO level messages to get logged even though you asked for DEBUG. You need to think of other ways to get the data you need to run and evaluate your company objectively, knowing that `log()` is never going to work.
Then criticism becomes normal and non offensive and can be used constructively to make the team better because you are convincing peers not overlords.
Many of us have had "open-door" bosses and we've found out that they're actually not unlike "shut-door" bosses or bosses who haven't stated a door-type. The difference is that open-door bosses are professional managers who know that framing the environment in approachable terms makes their job easier (or are at least hypnotically copying the actions of those who know this), even if "open door" doesn't actually mean "open door".
Being "open door" doesn't change the overall situation though, it just makes it easier in the unlikely event that someone will want to come talk to you. Bosses still need to analyze their employees carefully and attempt to coax them into revealing their true feelings.
Consider that even in the most intimate relationships, like marriage, people frequently hide their true feelings for years. If they can live like that in their marriages, they can live like that in their jobs, too. Don't let problems fester.
If you wait until the time that your employees are coming to you under "open door" pretenses, the problem is usually pretty bad; you've waited too long to discover and fix it.
Corpo-speak has become detested precisely because normal people see the hypocrisy and condescension in them, but in the real world, this doesn't seem to matter much. I guess people prefer to hear the version that they don't really believe because it leaves open the possibility that you'll choose to honor it in their case.
Or, they don't really feel comfortable giving feedback about how to make it better. Maybe they already make such a good salary that they are afraid to risk it. In this case they are disincentivized from actually giving you the feedback.
Have you tried doing a hackathon week? No normal work except system operations but have everyone work on a new feature or streamlining of an existing process. Have you tried offering bonus for people who offer up new ideas and plans to improve the software and processes?
Not sure what the solution is, but I feel like building a culture around "best ideas win" and rewarding the process of coming up with improvements and implementing them could be good. You could seed this at first with improvements you were already trying, but when people see "Hey, Joe Schmoe came up with this great idea and now we do it" would be a boon to your improvement culture.
And it creates a great feedback culture as i can give feedback as a normal user or anonymously and i can even vote anonymously. The simplicity reduces the perceived effort and makes it more likely that someone gives feedback. The optional anonymity takes out the fear.
(Disclosure: I work for STOMT)
Sounds like what is happening here.
You need to put something concrete behind your words. One off-the-top-of-my-head suggestion: Have a few current engineers start working on some of your known problems as part of their responsibilities. It doesn't have to be 100% their job, just a "kaizen" approach is ok (improve some small part each time they use it). Let them know it will be part of their evaluations.
Now when you ask new employees point to these examples: "John noticed our tracking system was crummy and important issues were slipping through the cracks, so we offered to let him be in charge of re-vamping it."
Obviously you'll have to manage what you allow them to improve, and who gets to work on it. This idea isn't perfect, of course, but the idea is to show them you are serious about these suggestions.
X% of management is aligning incentives (X is some large number). Think about how to incentivize them to give the information you want, and how to remove disincentives. Money and responsibility / autonomy are the most basic incentives.
>X% of management is aligning incentives (X is some large number). Think about how to incentivize them to give the information you want, and how to remove disincentives. Money and responsibility / autonomy are the most basic incentives.
All of management is systemic. You can rarely change behavior by sitting down and tackling the problem head-on; people have an internal defense mechanism that interprets this as an attack and shuts everything down.
Any change one wants to make without triggering hostility/resentment has to occur as a side effect of gently and gradually manipulating the structure that the employee finds himself in, including the incentives and the environment.
Your example, which normalizes working on an internal processes and will make the employee feel like the odd one out if he doesn't have a suggestion for fixing the insides, is a pretty good one.
If a senior member of the company scheduled a meeting and then asked me on the spot what I would improve about the company I wouldn't be able to give any good ideas.
If instead they sent me a note saying that in three days they would like to meet with me for twenty minutes, and that during this time they would like to hear my thoughts so far about working for the company and to please think about ways in which you think the company can improve. I would be able to provide many ideas in this scenario.
Nowadays I send the email I will paste below to every new hire after a couple of months in the team..
Some people never bother to schedule the conversation (less than 20%) and I leave it at that. For the other folks - the big majority - I had great conversations/results from this effort. Learned a ton of surprising things, found hidden talents within the team, found and then went to fix serious problems.
The email:
Subject: Talk.
Oi <Joe>, how are you doing?
I would like to establish a communication channel between us, and as a first step towards this have a conversation - can you please schedule a 30 minutes conversation with me using https://<my-own-url>.youcanbook.me/ ? Feel free to pick any available slot there - if it is open it means I will be available and working at this time. We can talk using <videoconferencingservice> (if we happen to be at the same building we can have the conversation personally).
Before the conversation I would like to ask you to please think carefully about the following questions, and be prepared to discuss what you understand as most important:
- How can I help you?
- Is there anything you would like to tell me?
- Is there anything you would like to ask me?
- What is your profile? What are your strenghts that you like to mention? What do you like doing the most? What motivates you?
- If you were in my place, is there anything you would change? What?
- Who are the 2 people you most admire within the company? Why?
- What information you assume I don't have that you can give me and will allow me to do my work better?
- Where do you inconsistencies between what we preach and what is in our culture document at <URL> and between day-to-day practice?
- Is there anything you would change in our culture document? Is there anything missing that you judge it is important?
- What are you current attributions? Do you judge you day-to-day challenging enough and do you see the company helping you grow or do you feel you need more space?
- Is there any self-managed project ( <URL-TO-EXPLANATION> ) that you would like to establish?
- What do you understand as key to grow in our company?
- Do you receive enough feedback to grow and improve performance?
- Do you consider your leadership micromanages you, stays pretty far, or typically can find right balance in each situation?
- Do you feel your leadership cares about you?
- In your view does your leadership communicate very clearly what are the objectives to be achieved? Does it support the team in staying focused on what is most important?
- How do you evaluate the quality of the company information you receive? Do you feel you regularly receive relevant information from senior leadership to understand where we are going? How do you evaluate your own participation in setting the company direction?
- Do you feel your leaders have the necessary technical skills to manage your work effectively?
- Would you recommend your leader to other people in the company?
- What feedbacks you have to give me? What concerns you the most in my work? What makes you happy and you want to make sure I continue doing?
Regards,
Remember it's stuff you've seen everyday for 14 years, and these people have seen it for maybe 20 minutes. I'd suggest giving them some flow charts / high-level info either in advance or with 20 minutes of quiet time on-site.
The only people I'd expect to respond in the current setting would:
There's an enormous amount of perceived risk on their end as they have nothing really to gain, and everything to lose.
And I say perceived because it sounds like you're a good guy and are genuinely seeking honest feedback, but they don't know that, to them this whole thing might be a shit test and if they say the wrong thing they could get on your, the founders, bad side.
this may be exactly what you need for development, but it'd probably be healthy to bring in some more precocious elements ... maybe as interns so you're not committed to a culture shift
I think employees at that point would be more willing to offer up requests for improvement.
Maybe do your issue tracking first, and set aside some thing (story points if your agile, time per week/month, etc), visibly there for process/structure/tool improvement in the issue tracking.
That way you start by being self-critical, which makes people feel more open to complaining.
Btw, remember if you ask this... you have to follow through to _fix_ some of these problems or you can lose trust. Only ask if you really do want to hear feedback and action on some of them.