Have you heard about Google’s Project Aristotle? It was a research project that aimed to find out what combination of personality types, skill sets, and backgrounds made up the most effective teams at Google. Are teams who hang out outside of work more effective? Do you group introverts with other introverts? Should teams share a preference for managerial style? Stuff like that.
(Bear with me—I promise this will tie back to retrospectives.)
So what did the researchers find out?
“We looked at 180 teams from all over the company,” Dubey said. “We had lots of data, but there was nothing showing that a mix of specific personality types or skills or backgrounds made any difference. The ‘who’ part of the equation didn’t seem to matter.”
—Charles Duhigg, What Google Learned From Its Quest to Build the Perfect Team
And later in the article:
Most confounding of all, two teams might have nearly identical makeups, with overlapping memberships, but radically different levels of effectiveness. “At Google, we’re good at finding patterns,” Dubey said. “There weren’t strong patterns here.”
Did you catch that? Let that sink in for a minute.
Researchers at Google, who have access to more teams and more data than perhaps at any other company in history, and who are experts at finding patterns could not find any strong patterns in what combination of individuals make up an effective team. “The ‘who’ part of the equation didn’t seem to matter.”
What could be simpler than returning HTTP status codes? Did the page render?
200. Does the page not exist? That’s a
404. Do I want to
redirect the user to another page?
302, or maybe
I like to imagine that HTTP status codes are like CB 10 codes. "Breaker breaker, this is White Chocolate Thunder. We've got a 200 OK here."— Aaron Patterson (@tenderlove) October 7, 2015
Life is bliss, well… until someone tells you you’re not doing this REST thing. Next thing you know, you can’t sleep at night because you need to know if your new resource returns the RFC-compliant, Roy-Fielding-approved status code. Is it just a
200 here? Or should it really be a
204 No Content? No, definitely a
202 Accepted… or is that a
Check out part 1 to learn why you don’t actually need an escaping function.
So you want a function to escape or validate user-input that is going to be inserted into a MySQL query as a column or table name?
Skip to Part 2 if you just want a drop-in escaping function. Keep reading if you want to know why you don’t need one.
Thanks to widespread adoption of ORMs, it’s rare that I need to construct SQL queries in code. However, there’s at least a couple situations where the need still arises:
- I want to perform some kind of advanced query that’s not exposed via the ORM
- I’m working in a legacy codebase that does not offer an ORM