Good Design – Bad Design
Some things are designed well, and others aren’t. Posts in this category are meant to call out both, and in the case of bad designs, provide comparison or contrast to the same function designed properly.
Meaningless Metrics – Combined Experience
From time to time, I run across a vendor who says:
We have over 40 years of combined experience…
What does that really mean?
The intended meaning is that, if there are 4 people in the room, they each have about 10 years of experience.
But, it could also mean that one of them has 39 years of experience, and the other three have been in the business for only 4 months!
Further, let’s say that this particular vendor is an AI (Artificial Intelligence) consultant – why would I want 40-year-old advice from the mid 1970’s, when the largest computers of that era didn’t have as much computing power as my smart phone?
Senseless vs. Meaningful Calculations
Essentially, we have a set of scalars that are supposed to represent the respective sizes of each individual’s experience base within the group.
Let’s say we have 4 people:
- Timmy: 12 years of AI experience
- Stacy: 15 years of AI experience
- Johnny: 8 years of AI experience
- Alice: 10 years of AI experience
This gives us a set of 4 scalars: {12, 15, 8, 10}
Although there are many valid ways to compare and combine these numbers, there are also very many ways to combine them, that don’t make sense.
At the end of the meeting, Stacy proudly proclaims, “we have 45 years of combined experience“, because she added all of these scalars, but what does that really mean?
It’s not like the team are simply ONE person who becomes eminently more qualified with combined magnitude. Take the case of our most junior member – in theory, if we give Johnny another year of experience, he still sits within the footprints of all three of his other team members. The team’s range of experience is really based on it’s most senior member (Stacy).
It’s not like there is some kind of historical significance, as if getting to some magic number of combined experience qualifies the team for an historical marker. If they make it to 100 years of combined experience, they can’t proclaim “experience since 1917!”.
Talking about a set of numbers that each represents a constant value is just like combining height: Unless you plan to have them stand on each others’ shoulders, or make them lay on the ground end-to-end, the “combined height” would be completely pointless. The statement, “we have 22 feet of consultants visiting us today…” just doesn’t make any sense. Nor would it make sense to say, “it took 600 pounds of consultants to fix this problem”.
Instead, if we understand that we have a set of 4 people, and each scalar in the set represents ONE of the four people, we can come up with some meaningful metrics by comparing rather than combining:
- The team has an average of 11 years of experience (indicating a consistent qualitative aspect to the work product)
- The team has an experience base of 15 years (perhaps the senior team member has hands-on experience with older, but still practical technologies that are only taught in textbooks today)
- Everyone here has between 8 and 15 years of experience (Even the most junior member has a solid experience base, and practical knowledge)
Likewise, if we’re talking about numbers that reflect a rate, such as salary or billable rate, it might make sense to say, we had four consultants come in for a meeting. Their combined billable rate was $800/hr, and the meeting lasted two hours, so the cost of the meeting was $1,600.
Conclusion
When you use math to compare or combine a set of numbers, ultimately, you have to maintain perspective about what those numbers really mean.
If you combine numbers in ways that don’t make sense, you might create a meaningless metric.
Problem: You’ve got some 10-year-old code running on a 12-year-old platform that only supports TLS 1.0, and other “insecure” protocols that are deprecated or soon will be.
Solution: Reverse Proxy
Some of my favorite quotes…
Please note: This has NOTHING to do with pizza coupons nor discount codes. If you want pizza coupons, click here.
Every now and then, I run across the Geek Code, a compact notation for sharing basic profile and personality information.
I recently ran across this again, while looking for something else, and it inspired me to answer these questions:
- Could you define a compact yet robust notation for ordering a pizza?
- Could you order any pizza within an 80-character text message?
- Could you manage a single order with multiple pizzas within an 80-character text message?
Let’s find out…
The Danger of Artificial Intelligence
AI Done Properly:
“I know that you have selected several items colored red when buying things online. Therefore, I assume that your favorite color is red, and I automatically selected the color red when you asked me to purchase new curtains”
AI Done Poorly:
“I know that you have selected several items colored red when buying things online. Therefore, I murdered 200 people because blood is also red.”
In any major software development project, a broker tier is a critical element.
We’ll examine what a broker tier is, what it does, and several advantages to having one.
Note: This post was written PRIOR to Android 6.0 “Marshmallow” – please see the updates below for more details. “Marshmallow”, by and large CORRECTLY handles app permissions.
When you download an Android app, you are presented with a list of permissions that the application requires in order to run.
You can either accept all of the permissions as stated, or cancel the installation – there is no middle ground.
This approach makes Android generally untrustworthy, but there is a simple way to fix it.
My Recent Win with Ryobi
Background
I have two power hand tool sets – a Black and Decker 18V NMH (Nickel-Metal-Hydride) set, that I’ve had for 10+ years now, and a Ryobi 18V LiI (Lithium-Ion) set, that I’ve had for maybe 5.
I’m not a full time handyman – I’m a “weekend warrior”, that needs a reliable set of tools in order to perform simple home / vehicle repairs, and work on projects.
Although I originally bought my B&D set from Lowes (over a decade ago), they stopped carrying B&D all together, and neither did Home Depot carry B&D.
The B&D set fit my needs quite nicely, and I had a large selection of B&D accessories, batteries, and chargers. As with all NMH batteries, they slowly lose capacity every time you recharge them. It wasn’t uncommon to have to switch batteries, even for a small project.
As the batteries became harder to get, and in light of my coffee maker fiasco, I made the switch to LiI, and selected the Ryobi 18V tool set (bright green), which came with a drill / driver, reciprocating saw, a flashlight, and a circular saw. On top of that, I bought the string trimmer, paint sprayer, and a jigsaw, as well as a gang charger and a few more batteries. Unfortunately, Ryobi is only carried by Home Depot.
As stated, I use the Ryobi set all the time, and it’s probably right at 5 years old.
The Win
I had an “opportunity” to help someone out by repairing their aluminum storm door that had (believe it or not) rusted open, and was allowing water in to the door frame, damaging the door, frame, and floor.
In addition to the door closer being rusted open (how does that even happen?), the middle and bottom hinges were completely blown out.
Being a mobile home, the storm door used a piano type hinge, where a single vertical pin ran the height of the door, and connected three leaves on the door (each about 4 inches tall) to a rail in the door frame. In the middle and bottom locations, the rail was completely ripped away from the door frame, due to the closer being at the bottom of the door, and stresses due to wind, etc.
On top of the door hinges being stripped off the door frame, and the closer being rusted OPEN, the middle glass panel was not properly situated in its frame, and was hanging loose.
In this situation, we needed functional, NOT pretty.
So here is a list of my ad-hoc repairs:
- Used a flat “L” bracket to secure the loose panel. This involved drilling several holes through aluminum, gluing (with silicone adhesive) the bracket, and securing it with screws.
- Cut away the rusted door closer. This consisted of making three cuts through the steel mounting bracket with a jigsaw and metal-cutting blade.
- Detach the top hinge. Since the hinge consisted of one long pin, about 6.5 feet tall, and there was no room to get a jigsaw in there, this consisted of drilling out a perpendicular section of the steel pin using a titanium-carbide drill bit, then using wire cutters to separate the hinge in to sections.
- Install three conventional hinges. This involved drilling 6 pilot holes through aluminum, per hinge, then installing the hinges using silicon adhesive and 6 machine screws per hinge.
- Install a door sweep on the inner door. This consisted of using the jigsaw to cut the door sweep to its proper length – the door sweep is nylon and rubber. Once mounted in the correct position, several pilot holes needed to be drilled, and then mounting screws installed.
This sounds like no big deal… HOWEVER… Somehow, I left the house without a charger, and the only battery I had with me was the one on my drill – meaning, I had already used that battery to some extent after it was swapped out. Home was at minimum, a 2.5 hour round-trip drive, so I didn’t have a lot of options.
I was able to complete the entire project with one battery.
I shared one battery between the saw and the drill/driver, and completed the entire project with plenty of charge left over.
On one trip to the local hardware store, I had briefly considered “upgrading” to a 20V set, but decided that I’d save that for a last resort.
I was completely surprised that I was able to repeatedly use both tools, and complete the entire project on less than one battery.
I think I’ll stick with my Ryobi set!
NOW, THAT is a GOOD design!
In 2007, I bought a Nintendo Wii, that finally died earlier this year. When I attempted to replace it, what I found was a Wii bit surprising.