Live data from Hacker News

Software engineering topics I changed my mind on

chriskiehl.com

621–630 of 704 posts

Re: Software engineering topics I changed my mind on

#621
post #613
post #584

Earlier quoted context omitted.

Lots of advantages to diversity: - you get a wider range of product ideas coming from all parts of the org. You'd be surprised how many engineering decisions only favor the group of people who develop them, you are less likely to consider non-white-male demographics as a homogeneous group, leaving those users out as prospective clients. - you have a less diverse QA and testing without diversity. That means you're onl…

> you get a wider range of product ideas coming from all parts of the org > you're only testing your products against white people I think these depend strongly on the kind of software you're building. This may be a benefit if you're building a highly user-facing consumer app, a TikTok kind of thing. It's less likely to be useful if you're building an interbank payment platform.

Maybe. Or maybe they'd highlight a bug in your system with working with different numerical and units systems that might not have been considered, so that your system can be preemptively prepared for expanding into new regions.

But yes, it largely benefits user facing or multi regional Software

Re: Software engineering topics I changed my mind on

#622

Earlier quoted context omitted.

> Standups are useful for communication between a team in general, if kept brief. Just once I'd like to work for a company that tries to stay in communication without so many explicit/manual/sync check-in gates. * No stand-up, engineers required to write a 250-words or less blog post 2+ times a week. * No announcing PRs, reviews &c to each other. Make watching the board a habit, one you "pull" rather than that is pus…

A place I used to work had engineers documenting their work essentially in the form of a blog. It was actually really a useful habit, and reviewing the project blogs once each week made it really easy for me to find cases when I could help a colleague who was working on something I'd had experience with before.

I'd venture that the parent was talking about engineers "documenting" their work for managers, whereas I think you mean documentation for other engineers. Very different audiences and thus different things to say. (And widely different lifespans for the information.)

The latter no doubt is hugely useful (I'm on a long slow effort myself to get my co-workers to document their work more robustly). But writing status reports for managers/PMs on a weekly basis is, in my not so humble opinion, a complete waste of time for the company, and a sign of poor organization.

Re: Software engineering topics I changed my mind on

#623
post #605
post #590

I haven't done 100 coding interviews. But here is a suggestion to fix the interviews: Let the candidate bring their own code! First this gives you a unique inside in the programming style the candidate prefers. Second the candidate knows the code very well and is probably more relaxed when he needs to answer your questions about the code (given that she/he didn't copy-paste the code from somewhere). It is similar to…

The problem with that is that we can't be sure that it is their code. And let's be honest, it doesn't really work for designers either. Because the problems of hiring programmers isn't unique to programmers. Hiring gets harder the more you need out of your workers. Take any reasonably skilled position, hiring is incredibly difficult because it's hard to evaluate a person's skill in the blind. Hell, it can be difficul…

I am a veterinarian and recruiting is way more straightforward. You’re not going to test the person on the spot. It’s way more about personality fit, what you like/dislike to do, and where you see yourself a few years later down the road. And then a real paid tryout.

Also I just changed jobs and was able to write code quickly because they were recruiting with tasks in mind for me. Sometimes it feels like the position is just opened to have more velocity on the sprints.

Re: Software engineering topics I changed my mind on

#624
post #513

Earlier quoted context omitted.

That's very condescending. I'm asking because I don't see why my colleagues would be any better than they are if they were black, brown, jewish, muslim, female in various combinations, maybe I hold my colleaguestoo high?

> That's very condescending You're right. I apologize. Often times in tech, the people asking questions like that are uninterested in the answers. My own view is that I have been blind to the advantages that my background (white, male, straight, upper-middle-class) has given me for my entire life over other friends and colleagues. And I'm trying to learn more, read more, and pay more attention to these things. Ijeoma…

Thanks for this reply.

The Cheetos idea was good indeed. But this is a 1B$ company. Where i work we turn about 7M$ around a year. We're not going global and we're not delivering software. We're an MSP.

I intentionally left out those facts that we're not ever going to operate on a global scale, and that we're not from the US, rather Sweden with 9M inhabitants. The reason i left this out is because i wanted to question the "truth" that a diversified workforce is the always the best. I'm not saying it isn't important, but I'm also not saying that it always is.

I'll add Ijeoma Oluo to my to-read list, i hope you got my point though. WHY is something true, when you know the why you also know when it is and isn't applicable to your situation, giving you the upper hand.

Re: Software engineering topics I changed my mind on

#625
post #621
post #613

Earlier quoted context omitted.

> you get a wider range of product ideas coming from all parts of the org > you're only testing your products against white people I think these depend strongly on the kind of software you're building. This may be a benefit if you're building a highly user-facing consumer app, a TikTok kind of thing. It's less likely to be useful if you're building an interbank payment platform.

Maybe. Or maybe they'd highlight a bug in your system with working with different numerical and units systems that might not have been considered, so that your system can be preemptively prepared for expanding into new regions. But yes, it largely benefits user facing or multi regional Software

What if we're not building software and not operating on a global scale? Is it equally important because of ethics or is it just when a different perspective might be useful once going global?

Re: Software engineering topics I changed my mind on

#626

Almost 20 years of professional experience here: I fully agree with this list. I even want to add a few things: > Clever code isn't usually good code. Clarity trumps all other concerns. My measurement is "simple and clean" code. Is it simple and clean? No? make it so! > After performing over 100 interviews: interviewing is thoroughly broken. I also have no idea how to actually make it better. If a good developer you…

Another 20 year veteran here. (though don't picture a greybeard, I started professionally at 15)

The big lesson for me over the last 5 years now that I also operate my code is design patterns. I think most Software people start with hating design patterns, then some fall in love with them, then eventually some of us fall out of love again.

The advice would be:

"Optimize code cleanliness and readability for reading at 2am in the middle of a production issue when you're trying to understand just exactly how the system got into that state that you didn't think was possible."

That means every jump to another class and every jump to an interface with multiple implementations is a distraction. You should still of course create modular separations for testability and clarity. But that line is way higher than the Uncle Bob "If a function is more than 4 lines long you should refactor it".

For complex mission critical pieces of logic, overindex on procedural execution, with paragraphs of comments explaining why each line is doing what it's doing.

Actually, another wisdom about comments:

I went from thinking "Comments are great!" to "Comments are terrible, and are liars, write self-documenting code" to "Comments are literally an opportunity for you to speak directly to the person coming after you, and explain in clear plain english WHY you made the choices you did, what tradeoffs you considered and dismissed, what compromises you made, and what external factors led to those decisions."

Comments don't need to be passive voice professional corporate speak. Nor do they need to make you sound smart or clever. Speak directly to your audience of future more junior engineers.

Exception messages too (sanitize all exceptions before they get to the customer, of course)

Re: Software engineering topics I changed my mind on

#627
post #554

Earlier quoted context omitted.

Politically incorrect opinion incoming: the most efficient teams are homogeneous for the same reasons that military battalions are best off being homogeneous. 1. it improves communication 2. shared experiences and culture 3. overall better team cohesion and culture building I would go almost as far as saying that diversity is a red flag for a startup and that diversity starts to have benefits only in bigger companies

The research doesn't support that at all: https://hbr.org/2016/11/why-diverse-teams-are-smarter

That first study kind of put me off the article. Black defendant, white victim. Why did they choose just this specific very subject to racism way to measure if the group was better or not? It makes sense that if you have to collaborate whites and blacks both will have a bias towards defending their own, so they'd have to make up better arguments and highlight more facts to get their way.

I might've jumped to conclusions, but I wouldn't read too much into that example.

Re: Software engineering topics I changed my mind on

#628
This list is self-consciously blunt/rude (correlating programming practices with intelligence and sanity) and unaccountable ("who knows what I'll believe in a few more years"). It's an annoying combination. I imagine many reader will haughtily deploy these commandments against their colleagues.

Re: Software engineering topics I changed my mind on

#629

Earlier quoted context omitted.

That's very condescending. I'm asking because I don't see why my colleagues would be any better than they are if they were black, brown, jewish, muslim, female in various combinations, maybe I hold my colleaguestoo high?

Now this is what I call a tone deaf question! You shouldn’t be asking if a minority or person of color would perform the job any better? The real question is whether there are competent workers who are not white? And if your workforce is entirely white, you should be asking if you’re mixing up competence with familiarity. People usually trust what is familiar.

There's barely any non-white workforce available where i live and we operate. I stand by my question being perfectly valid, what does a diverse workforce that doesn't deliver software to the globe do better than one that isn't diverse? If the answer is as you're suggesting: that we're missing out on competent workforce because we're racist, then I don't see the importance in a diverse workforce, but rather importance in not being racist and hiring whoever's best. I'm not tasked with reqruitment, but I don't believe my colleagues responsible for this are racist. And we're short on people right now so if we had a !whitemale presenting himself with a skillset we need, we'd hire him/her in an instant I'm sure.

Re: Software engineering topics I changed my mind on

#630
post #621

Earlier quoted context omitted.

Maybe. Or maybe they'd highlight a bug in your system with working with different numerical and units systems that might not have been considered, so that your system can be preemptively prepared for expanding into new regions. But yes, it largely benefits user facing or multi regional Software

What if we're not building software and not operating on a global scale? Is it equally important because of ethics or is it just when a different perspective might be useful once going global?

So I think it would come down to a few things then.

certainly I think the ethics is important. Mostly because highly homogenous groups tend not to be inviting for outsiders to the group. It may be intentionally done, but undetected due to lack of diversity, but even harder to discover is implicit biases that form stronger in homogenous groups. So even if you're not actively pushing out minorities, you may be passively doing so which is IMHO unethical when knowingly allowed to fester.

But from a business perspective, this means you're dramatically reducing your hiring pool, even if unintentionally done. So you may be missing out on a lot of people who may improve your product.

Now of course hypothetical value is hard to quantify, but you can quantify how many people you're potentially excluding. A good way to do this is see how many percentage points your makeup is versus college graduates, especially local. It doesn't need to be a match but it also shouldn't be dramatically off.

Then repeat through each tier of your company. A lot of companies struggle with turnover even if their hiring is adequately diverse. This is potentially due to years of forming homogenous in crowds that promote within themselves.

Therefore diversity can help identify procedural issues in your company that could result in better hiring and promotion practices, even if it doesn't lead to diversity itself.

The best thing to do here is collect data. A good analogy may be that you shouldn't test your software with low variance data sets. So why would you test your company with low variance data sets? It would highlight bugs in the system that is your company

Post reply on HN