For example, I happily programmed in C for many years while not even noticing severe problems with the language. Later broader experience with other languages led me to wonder why I didn't see the problems with C before, even though they were negatively affecting my work.
S s;
S *p;
To read a field: s.field
p->field
It turns out that there's no ambiguity in using `.` for both `.` and `->`. Both can be: s.field
p.field
But what's the problem with `->`? It's when you want to refactor the code to switch between a value to a reference. If `.` is used for both, just change the typedef and maybe a couple places. With `.` and `->`, there are maybe thousands of tedious changes to make in the code base. The inevitable result of this is you're not going to attempt such a refactor, as it's too much work. The code stays in the way it was originally designed.I was able to see this only via broader experience with other languages. I never even noticed the issue before.
C++ addressed this not by fixing it, but by introducing the reference type. But the C++ ref type brings along with it all kinds of new problems, which I won't get into here.
your language is too sloppy for me, a pointer-to-a-struct contains a value (could say "is" a value), and some struct-members might resolve as values, but a switch from a struct to a pointer-to-a-struct is not a switch between a value and a reference; while you might call a pointer "a reference", a struct is never a value. Or did you mean a "dot" r-value and a "dereference to an" r-value? This all makes a difference because C is a call-by-value language, and you can't pass a struct, so it's an important distinction to maintain.
This kind of change might be something a student or newb might encounter, but an experienced C programmer is going to have a sense from the start whether to go with a static/local struct or a malloc'ed one. Maybe on more common a struct containing a struct might switch to a struct containing a pointer to another struct.
personally, I use hungarian and ps->x vs s.x is a nice reinforcement of what hungarian is trying to reinforce. Using parenthesis to illustrate a sort of precedence, I guess I associate the (pointer->) like that as opposed to the (.member) though I can't defend that as making an inordinate amount of sense :)
In my and others' extensive experience in C, almost everyone is wrong about where their programs are consuming time. Profiling almost always produces surprising results. Being about to easily refactor programs to experiment with different data organizations is a superpower for a language.
C programs are difficult to refactor, and so they tend to persist with their earliest design decisions despite changing requirements and profile results.
As soon as you have been in a place 3 or 6 months you are used to all the workarounds and the reasons why things can't be done.
The job of the CEO is to know as much as possible and take responsibility for it.
That doesn't always happen, but it should.
If they have a good CEO, they will realize there is an issue with the reporting system and fix that. If not, at least the glaring issue gets resolved, and perhaps someone else is able to use this as evidence to improve the reporting system in the future.
So a real blocker in my opinion is that there is no clear incentive structure to even think or care about a fix in the first place.
The CEO will care much more about it because their compensation/position is essentially tied to improving this side of the business.
In my experience, the existing process has a way of appearing invisible such that any change will feel like more work, even when it isn't. It's hard to improve things when your coworkers perceive you as trying to give them more work.
The lack of compensation always baffled me. If an employee comes up with a change that saves the company $x, why don't they get bonused <$x for the year? Win/win.
Make it subject to approval or somesuch, to prevent gaming and weed out edge cases, but every employee should be incentivized to find a way to do their job better.
Sales is another job where value is very clear, hence good sales people are often some of the highest paid people in a company.
Companies can ignore that for awhile, but eventually it needs to be true.
Keep in mind in a corporation like Starbucks, the CEO is likely a hundred or more levels removed from the daily operations of a cafe. That's a lot of internal politics for even a motivated regional manager to navigate.
Really? You think there's a hundred or more executives/managers/supervisors between the CEO and someone on the floor of a SBUX? I'd bet closer to 10.
But that's just direct bosses-boss levels. Doesn't take into consideration things like... PMs, suppliers, customers, Health & Safety (which will vary by locale), unions, security, accounting, HR, public relations & the media, the board of directors, and all of the myriad depts. that will pop up in odd or varied ways.
Maybe not 100 levels, but certainly dozens and dozens of interested parties.
/sarcasm
Sure, ideally you can get all your actionable information from your metrics, but in reality sometimes to understand what's really happening you just need to step through the code one statement at a time.
Probably. But there are often three to six layers of filters between the CEO and a service worker. Those managers may not see the effect of a small problem across the entire system. Sometimes those managers have incentive to hide problems to protect their bonus. Other times, the problem seems unimportant. In Starbucks case, a company with a great employer reputation is suddenly facing unionization, so there is a problem there. Unions don't happen because employees are happy.
> if the CEO needs to personally witness the issue for it to get fixed, then there must be thousands of other issues not being fixed.
In retail, nothing reveals subtle and not so subtle issues faster than being at the point of interaction with customers. Things that might look great on paper or sound good in a meeting at corporate sometimes aren't a good idea. Also, what works in one region, or even at a store across town, might now work well in another. You won't see any of this from a board room or flying in a Gulfstream.
In my experience, each layer also tends to lessen the severity/criticality. Even when everyone is well intentioned and truthful, you end up with a lot different story/description when it reaches the end of the chain.
I guess one important thing to look out for to judge this as either a PR stunt, or an actual well meaning practice - will be toi see if store managers get any advance notice that the CEO is gonna be working there.
If an ambitious career oriented manager knows the boss is gonna see everything that hopes on tomorrow, you can bet there's be extra staff rostered on the day before to make sure everything is better-that-normally prepped for the next day, that all the most compliant staff and the staff who are most beholden to the manager will be rostered on and they'll all be coached about what to say and threatened if they say the wrong thing, and probably a whole bunch of friends of the manager will show up as stooges on the day cosplaying happy and satisfied "ordinary customers".
Obviously, he's much more intelligent than all those other people, that's why he's the CEO and way richer than them. Rich people are more intelligent and better than poor people in most aspects. That's why the laws favor them.
An interesting thing happened at a company I worked for: the engineers were, during a time of intense labor pressure, asked to staff the fulfillment center. The fulfillment staff worked under a supervisor, and were supposed to perform the same rote tasks all day long: hook this device up to the bench, pack this box, unpack that box, and so on. The engineers worked under their engineering managers, and were supposed to perform the _exact samesame_ rote tasks all day: configure devices, pack and unpack boxes.
What really happened was that the engineers found all sorts of ways to optimize the process as they went - and they made them largely without asking anybody. They then shared the optimizations with the other engineers, who followed suit. And they were rewarded by engineering management for finding those optimizations. Later, they propagated back down to the supervisors, who propagated them down to the fulfillment staff.
If the fulfillment staff deviated from their rote tasks, though? They'd have most likely been fired.
But it sure as hell sounds like exactly the sort of thing that would have happened at Amazon.
(And, as a plot twist, those same engineers went back to their coding jobs earning 8 or 10 times what the fulfilment staff make, and started on a project using machine vision to algorithmically detect "rote task violations" and have the computer fire people for them...)
But the major factor is I wasn't scared to make or suggest changes in how I worked. Everyone else on the line needed that t-shirt printing job so they just did what they were told. I wasn't afraid of being fired or reprimanded for making changes so I was much more free with my words and work.
It is a sham when it's used to counter disagreements from employees.
Nobody at the store has any influence, the area managers complain but the project for the new system is low priority.
The CEO has the ability to see that this is a problem and the project needs increased priority.
Along similar lines why did the manager's manager not notice the problem? IF the CEO can spend time investigating how the lowest tier workers operate, surely every manager can spend time looking at the tier of workers below his immediate tier.
Agreed that information should flow up the chain freely, but there are a lot of incentives working against that, some of which are just human nature (e.g. desire to fix the problems in one's own backyard without escalating.)
Yeah, nah.
Can you imagine any low level AppleStore worker giving Steve Jobs "candid and unfiltered input"???
If that's what you're after, you don't send in a very public top-of-the-org-chart face. At least not in any place with at-will (or right-to-work, whichever it is?) employment laws, where they could fire you on the spot for no reason at all. (Most likely not the CEO doing the firing, but the workers direct or one up or regional manager - who'd just been shown up as worthy of "candid and unfiltered input")
However, there's a real smell of something going wrong from them as well. The CEO working a single shift noticed something that needed to be changed? Why? Did none of the thousands of workers who work those shifts every day notice that problem? Did they have no way to report it? Did those reports not get evaluated properly? Was there a manager in charge of the stores who did not notice the problem? Sure, fixing the problem is great, but if the CEO needs to personally witness the issue for it to get fixed, then there must be thousands of other issues not being fixed.