"careless" employees
Recently a friend said to me, "My remote engineer contractors aren't committed enough. They say they'll get a feature finished by the end of the week, but they don't finish in time! How can I get them to be more committed?"
Another friend said, "My engineers in China are not invested. They're not detail-oriented. Our error rate on the site is insanely high. The engineers just do a half-assed job. I wish I could hire engineers who care more."
A third person said, "My engineer is too young and isn't careful. He doesn't check his work. He lets serious bugs get onto the site."
In all 3 cases, after hearing about how these engineers are careless, I had this exchange:
Me: "Do you do code reviews?"
Friend: "No." (except first friend who does them retroactively after the code is already checked in)
Me: "Do you send out technical designs for review, before you start coding?"
Friend: "No."
Me: "Do you have unittests to catch the regressions?"
Friend: "No, we barely have time to develop the features. We don't have time to write automated tests."
Me: "Do you have manual QA?"
Friend: "No. I try to test the site when I have time."
Me: "Do you have a standup every morning, so that you know about schedule delays after at most one day?"
Friend: "No. We're such a small team. It seems overkill."
Why, why, why would people expect to get great results if they flout all the best-practices that have developed over the past 20 years? And then blame the poor engineer?
Let's say I ask an architect to build a house. But because his hourly rate is expensive, he's not allowed to make a blueprint first, or build a small-scale replica, or to spend time holding discussions with subcontractors. Every minute needs to be spent doing hands-on work on the house. The house ends up being completed late due to re-work, and after being finished, it has all sorts of problems. Do I blame the architect?