What would be the result of that? You appeal and find, oh management really did make a mistake and is incompetent of it's primary purpose of evaluating employee performance correctly. AND, management did in fact discriminate and now has proven it for any and all future and current lawsuits. There is literally no reason for management to allow ratings appeals.
(Let's ignore the obvious point - not everyone is malicious, some companies really do want to try to make sure people get correct ratings and get rid of discrimination, and aren't worried about the cost of lawsuits. These companies exist, i've worked at them)
Again, i think you missed the point (I guess i'll be more explicit when it's a touchy subject like this). If you read the allegation, women were allowed to appeal, men were not.
Someone tried to say that this was okay, because gender bias affects women more.
But it's not okay. It makes no sense. Either you believe some people are getting terminated wrongly, in which case both women and men should be able to appeal, or you don't, in which case nobody should get to appeal :)
There's nothing to say about HR corruption really except "No shit." Anybody who has had a non-management job has been subject to this type of corruption by corporate HR departments for their entire working lives. The only thing remotely worth discussing is what kind of evidence the company slipped up on and how it plays out.
I use visual basic to pay my bills in Excel. It's unique in that Microsoft has never seen fit to integrate any other language into Excel. It has a large following in finance and other business disciplines. Companies have also undertaken year long concentrated development efforts solely to produce Excel spreadsheets (and VB macros) that run their business.
What can you learn? That a poorly thought out language will become incredibly popular if it is the only thing integrated with an extremely popular application. Make the language ubiquitous by tying it to an application.
How to make 20% time: Just do it. Don't tell anyone. Tell that asshole trying to control your work to fuck off. When you've got something, tell the right people about it. Watch the other assholes at your job trip over themselves as they trash your work that you already got buy in from from the right people. Publish it. Launch it. Put it on your resume. You'll probably get fired because the assholes will resent that you're not under their control. So what? Make getting fired part of your career progression plan. Start your new, better job, rinse and repeat.
So, if I'm understanding you correctly, you think the way to advance your career is to spend 20% of your time working on unsanctioned side projects in work time, writing code that will be owned by your employer that you can't publish legally without permission, all the while taking longer to do your assigned tasks and looking like you slack off for a day a week? And you think that if that gets you fired you'll move up your career ladder? Would you seriously hire someone who'd done that?
I wouldn't do that. I'd take some of my spare time, a few weekends, to document the idea and maybe hack together a prototype, and take that to "the right people". If they're going to be happy with the project then it's better to do it without pissing off everyone else.
I agree with GP. Can't really answer the hiring question (because I am not interested in being anyone's boss), but why not? Do you think that the way to advance your career is always do what you're being told? GP's suggestion, at least, makes life a lot more interesting.. And people willing to take risks and make their own projects typically will have better CVs.
I would rather see somebody genuinely advance in the organization by genuinely improving something (and taking some risk), while taking time from a stupid project, rather than by taking credit for work of someone else (but that never happens, right?). And in fact it's the latter people who get angry, so for that really doesn't matter on whose time you do it.
As for your suggestion, why is it OK for employer to steal employee's free time and not OK for employee to steal employer's time? We are talking about improvement to the employer's business, after all.
I would rather see somebody genuinely advance in the organization by genuinely improving something (and taking some risk), while taking time from a stupid project, rather than by taking credit for work of someone else (but that never happens, right?).
What you don't seem to realise is that there are no stupid projects. Someone in the business believes that the "stupid project" is a good idea that's worthwhile paying a developer to work on, and they've persuaded the people higher up that this is the case. If you just decide that it's not worth your time and something else is more important then you're effectively telling everyone who has agreed to let the "stupid project" go ahead that they're all wrong and you know best. That is not the best way to further your career.
Open a dialogue. Provide evidence. Don't just say "I know best!" and forge ahead while ignoring everyone else's input. If you're right then people will listen.
I have at times needed to keep projects "secret" because I knew that there would be a 95% chance that the idea would be shot down immediately in any meeting due to being infeasible, politically/personally tricky in some way, difficult to explain, and so on. So I have worked on these ideas sometimes at off hours, or while also making progress on other tasks. Thus far, these skunkworks have been very successful. There is an element to it in many things I do... I often prefer a bit of vagueness around what I am actually doing, since it gives me more freedom to consider solutions that might not be in line with what everybody would expect. Which sometimes makes me wonder if I am being a "cowboy coder" or something. Some of it is due to my skills of persuasion and communication—if I were better at that, maybe I wouldn't need secrecy. But I also just know that some good ideas will not fly in a group meeting before a prototype exists. Then my duty and passion for the product and company override my duty to clear everything with the whole team, I feel. It's not an easy question.
It seems akin to saying there are no stupid moves in chess. Because every move is vetted by the player, and he has a good reason to do it. Unfortunately, people do make mistakes and at least, better moves - than the ones you decided to do - happen.
> you're effectively telling everyone who has agreed to let the "stupid project" go ahead that they're all wrong and you know best
But sometimes you do know best. I didn't say you have to drop work on the stupid project entirely, I just think you should be entitled to be part of the decision too.
Speaking about that, what is the theoretical ideal of how the hierarchical decision-making should look like? I mean, when someone decides things on higher level, how can they do that? If they were to made optimal decision, they need all the information that individual decision makers under them have. So isn't the decision they made always suboptimal? Isn't actually the best way how to make decision in a hierarchy at all to let all the deciders on a lower level decide what decisions have to be made on the upper level?
There should be a mathematical model supporting how hierarchical decision making works, but I have never seen one.
> That is not the best way to further your career
If you do what I suggested, you're taking a risk. It may give you a good result or a bad one, as it happens.
> No one ever succeeds on their own
Even if that is true, which isn't, you can still at least spark a success on your own.
> all the while taking longer to do your assigned tasks and looking like you slack off for a day a week?
The difference between a hirable employee and a fireable employee is not 20%. There is usually 2x or more of variation amongst people in a pay grade. As long as you're in that ballpark of productivity, you're fine. Personality conflicts will get you fired long before a 20% dip in stories checked in.
In fact, there's a good chance that taking the 20% of time off will actually increase your productivity the rest of the week. But if it drops you below the "worth their weight in pays stubs" line then you are already on very thin ice.
Wrong focus. Unplanned, but valuable and necessary side projects, that focus on the long term, setting aside for a moment that permanent focus on the short term next milestone next sprint next story next task next function next line of code cyclic trap of short term focus - that product managers (along with literally everyone else, myself included) fall all too easily into.
If my employer doesn't trust me to have some sense of what constitutes valuable and necessary, why the hell did they hire me in the first place? And why do I want to work there? And how soon will I be laid off, fired, or quit of my own accord - leaving for greener pastures where there's higher morale, and less micromanagement? These things will translate directly into better productivity, in turn translating into moving up the career ladder faster?
(I should note: I pick jobs where I consider my "20%" projects to be business relevant. That doesn't mean they're sanctioned.)
> I'd take some of my spare time
1) I can't focus on proper work projects outside of work. I've tried it. Even if I could, reducing my weekends to 1 day a week sounds like a great way to burn out. If somehow I don't burn out, bluring the line between work and play enough for the last day of the weekend I kept for myself to never quite feel like I've left work at work.
2) Prototyping is insufficient.
3) What spare time?
> writing code that will be owned by your employer
That's a feature. Do you have a copyright assignment clause in your contract for all your home projects? Is it legally enforceable in your jurisdiction? Nebulous. Here's the deal: I work on things at work, they get to own it - clearly and unambiguously. Best case scenario? I get recognition, praise, raises, bonuses, promotions, and they ask me to work on it even more. Worst case scenario? I'm off on an adventure, in search of employers that better value my talents. Win/win situation.
> all the while taking longer to do your assigned tasks and looking like you slack off for a day a week?
If it looks like you're slacking off, you're doing 20% time wrong. I have no games open, no social media, no reddit, no HN - my 20% time is sit down and write some code time. You'll hear my keyboard, and you'll see code if you look at my screen. In the lulls, you'll see me thinking hard, unaware of the world around me.
Even if I made it as regular as one specific day a week (I don't - it's hours here and there, fit in and around the normal ebb and flow of my daily work) I'd wager that fluctuation in stats-measured productivity would still get drowned out by the standard deviation of noise in normal work. Some days I commit 10, 20 things with relative ease - other times a single obscure bug wastes 2 weeks of my life to track down - and you're worried about a day a week?
> If they're going to be happy with the project then it's better to do it without pissing off everyone else.
Here's the thing: 20% time (possibly rogue, possibly unsanctioned) is how you pull this off. Which is easier to plan project schedules around: Consistent 80% time spent per week on the project, or sometimes 100% and sometimes 0%? Which sells better:
A) "I want to add an unplanned week to the project schedule so we can replace some terrible tools that we've been limping around with. No, it's not a customer requirement, why do you ask?"
B) "By the way, I wrote a spiffy new tool that replaces that old terrible one. We can now get those customer requirements that require the tool done faster. You're welcome!" (Unmentioned: You implemented it in about a week, amortized over the previous month or so.)
Rinse and repeat? I could be missing something, but are we saying we should adopt the mentality that we are too good for any job we might find ourselves in? It sounds a bit arrogant to automatically assume that what you've chosen to divert your attention to has merit, and anyone who thinks otherwise is an asshole... I could be misreading, but your tone seems to veer more towards self-centeredness than empowerment.
Hey, you don't know what it's like. Certain people claiming to be engineers have optimized on finding out what you're trying to accomplish and either blocking it or taking credit for it. They also have figured out how to punish people who do work that they are not getting credit for (i.e. authorized). This is their whole 'job' for which they get impressive titles and money for doing little actual work and having little actual knowledge. While you are sitting there coding all day they are off telling some VP about how they have you working on their project that was actually your idea and your sweat. The best policy for an engineer is the one I described.
What makes you so sure you know best? What if everybody within the organisation did this? Why wait until you've pissed people off enough to get fired, rather than leave and find somewhere that can accommodate your great ideas? Shouldn't be too difficult if they are so good. Or even better, start your own business where everyone gets free rein to indulge themselves as they please.
Because I work on huge swaths of the business and know where the huge piles of technical debt and risk are. I also know that people that are not rank and file engineers are hired for their ability to look good not do good. They can make polishing a turd look good by selling it to executives and having everyone else polish turds.
>What if everybody within the organisation did this?
Then you get a high functioning organization that makes billions of dollars.
>Why wait until you've pissed people off enough to get fired
Leaving early is a pattern for top people. They accomplish a lot and job hop before the unpleasantness starts. It can take up to six months for an organization to react negatively to the fact that some engineer actually got credit for something they initiated.
>start your own business where everyone gets free rein
Yeah, this is ideal but you need three or four years cash runway and that is very hard to get. Incubators and angels only give enough that you become dependent on financiers who have their own set of goals.
Agreed. I like the cut of your jib. IMHO denying orders to focus on what you're told rather than what you know is important is not only a hallmark to a good employee, nobody cares that you pissed off some random boss at work when you have something worthwhile on the resume (assuming you have a good reference though).
Working on what's important rather than what you're told to work on assumes that you know what's important and that no one else is working on the important project.
Saying "this project isn't important enough for someone like me" won't just annoy your manager. It'll annoy everyone, because someone else will have to pick up the work you dropped. You'll get the reputation for being awful to work with, and that is toxic to your career.
I think most functioning engineering groups in large companies depend on a degree of it, and it's not even really a big secret, so people aren't actually often fired for it, except at the most dysfunctional places. Large companies tend to accumulate a certain degree of organizational "difficulty", but one thing that keeps everything from going to shit is that there is also usually enough flex in the system that engineers can fairly easily carve out some percentage of their total time to do things that, in their own estimation, actually need to get done, without having to get a bunch of management approvals for it. Management usually looks the other way (if they notice at all), except maybe to occasionally investigate whether anything good came out of these side projects so they can retroactively claim they commissioned it on purpose.
Is the company unable to function? Can I not go to zappos.com and buy something? Zappos just reduced their payroll expense by tens of millions of dollars probably due to deadweight attrition. So I think they will be doing much better.
> But I guess some people won't believe it until the company actually goes down the toilet or backtracks.
You fall under that category. The criteria that Zappos website has to actually go down in order for it to have been a bad decision is a pretty bad way to make a judgment call. If you ran a company that way you'd never fix a bad decision until it was too late.
Probably all the managers are leaving. They can't do non-manager jobs emotionally or logically. Microsoft moved some managers to individual contributor roles a few years ago and people were openly crying about it. They wouldn't have power over people any more and can't deal with it because that's all they know/want. This is a great opportunity for Zappos to backfill with makers and doers and realize what they set out to accomplish.
I think you've got a very poor picture of what management is about- perhaps you've had a string of very bad ones. Power isn't the benefit of the role unless you're a sociopath or an asshole.
Managing people is a complex problem that requires a specific set of skills which take time and practice to get right. I've known (and reported to) incredible managers who not only got us to achieve more than our team would have otherwise, but made us enjoy our jobs more in the process. I've also had managers who've lacked in that skillset, and had the exact opposite effect. And it was never because they were assholes or sociopaths- they just didn't have the skills they needed for the job.
I may take on the management role someday, not because of some dream of lording over people and giving orders (that part actually turns me off) but because it's a new domain of complex problems.
I got promoted into a team lead once - I told my employer I wasn't ready, and he told me I was underestimating myself. I took advice and decided to give it a shot. I hired some great people to join the team. We finished the product in time for the deadline but everyone was spent, and people left, because I didn't have the management skills to know when people wanted a mentor so they can learn, when people weren't performing and should have been warned, when people needed a raise, etc. And so the team weren't happy because of those things. Long story short, the job was too hard, and we hired an experienced person to perform the role instead, and I get to go back to my old role. :)
In your defense it sounds like you learned a lot that you would not have learned without taking that role. That experience and knowledge will be invaluable in deciding whether you want to do it again some day and if you decide to do it again, what to look out for an address.
It's well known that companies quickly turn south around bad manager, if just because they can't retain good talent. But that doesn't make all managers bad: Good ones are rare, and their people know it.
For instance, I just left a well paying job at a very large company because my manager quit: he though no initiative could never be successful in the internal political climate, so he left despite being offered a big promotion. Since he left, the company had 6 high profile resignations, as we all knew the alternatives the head of IT was considering were just bad managers. Now, with tentpole technical people leaving, a lot of other qualified people are looking for new jobs too: It was quality leadership that was bringing the team together.
Really, your original comment on this topic would be 100% fair if you were describing what this company is going to end up with. I have worked for horrible, horrible managers over the years. It's just that once you have seen good management, and understand the wonders of productivity one of those can achieve, it's just very hard to agree with a view quite as dire as yours.
There's all this companies that are working on helping recruit good developers: In my experience, good developers are not really THAT hard to find: But a company that could help hire good managers, and properly identify the people that have management qualities in our office, as opposed to just those that look and sound managerial? Now that's a company that would be worth hiring.
> The "no true manager" argument is always brought out
That's a fair point- I won't say there aren't any bad managers- there are sociopaths attracted to the field. But I don't think you've met any of the good ones either. I'm sorry to hear that.
> Guess who inevitably fills management jobs at medium to large companies.
The sociopath-style manager will only have short-term gains compared to the managers who've acquired the skill set for the domain. One's people will be unhappy and quit; the other's will stay and encourage friends to join. After a few years of this, when upper management want to promote to a manager-of-managers, the long-term results will speak for themselves.
That's how I lost my best manager- he succeeded so widely that he was promoted up another level (where he continued to do very well).
My advice to you is to consider how you would behave as a manager. How would you run a team of ICs such that they'd be happy, productive, and meeting all goals? It's not about whether you'd want to or not, it's how you'd approach the problem.
> the long-term results will speak for themselves.
No they won't because corporate management creates perverse policies of continuous turnover and stack ranking for this exact reason. Losing all your people many times over in a short time is just portrayed as a sign of a good manager culling the herd.
Management is a role with some very domain specific skills, just like many other white collar jobs. If you've studied and trained to do a particular job and then get moved to something else, of course that's going to be difficult. It seems a bit odd that you ascribe that emotion to some personality flaw.
Sometimes the person an employee talks to most in the company is their manager. Could it be in some cases, the manager was good, and the manager left, and the employee now feels like the person who had best listened to him is now gone from the company, and so he decides to leave too?
Yeah, this is the common industry view that employees are simple minded children fearful and inept without a manager/parent. They are the turnips that management will squeeze blood from. This view is usually promulgated by managers.
I agree with you for companies that require a lot of capital. In technology companies where, often, ideas, perspectives and vision are assets, I think you want someone in the company who can give you that guidance, to tell you what the customers want, and when they want it.
After all, if I was going to do what I think is profitable, I don't think accepting a pay check from the company is worth giving up the entire upside of my own ideas - I'd quit and do my own thing. If I knew what customers wanted, and the company didn't, why stay?
You could have a situation where the sales people talk directly to the developers. If sales team were the managers, then they tend to over-promise. If engineering was in charge, then what they build tend to be out-of-touch with their market.
Taking out the manager is to bet that sales team and engineering team can work with each other directly with equal clout, and be able to maintain that equilibrium.
But for my own situation, if the founders decided to quit and promote me (and everyone else) to lead the company as a holacracy, providing only salary and no equity, I'd quit. I could work on my own ideas by myself with all of the equity, why do it in a company where I have none?
> Have you ever had chance to move into management role ? Did you accept ? If not, may I ask why ?
I can answer that one. The answer is no for me. Many people don't know what management is. It is trying to get people to do what you want through any means at your disposal. It can be disreputable. It can involve lying to a lot of people. It can involve being exposed to crime or at least criminals. Even if you work at an above board company you have to deal with people that have all kinds of issues: alcoholism, drug use, bipolar disorder, violent tendencies, harassment. You have to fire people and try to get other people's people fired. Changing jobs is difficult and risky. Recruiters don't call you. You have to "know a guy" on your same ethical wavelength if you want a job. Worst of all developers probably are going to make more than you in terms of cash. Maybe you make it some day to an executive job, but not likely. You lose all the technical abilities you once had. You have no choice but to work for the company you probably hate, and to listen to your exec bosses yell at you 'fuck this' and 'fuck that' all day.
None of that has anything to do with creating new technology.
At a large enough company, there is an HR department, which provides all sorts of tools to help manage the issues you mention... and anyone displaying those behaviors really should be fired, because it makes the workplace unsafe for everyone else.
BTW, the best way to make it quickly to manager or executive fast is to go to a startup.
In 2016 there are different levels of logged in:
L1 - I think I know who you are because you have a cookie or I remember your IP or browser fingerprint
L2 - I definitely know who you are because you logged in during this session and have a cookie
L3 - I trust you enough to show you your user info over https since I just asked you to log in and you gave a password or verified you with facebook.
Obviously some bigger names are experimenting and trust their tracking enough to do away with authentication for some things. Personally, I have an anonymous mode on one site. It is "I don't know who you are but I remember you." They can use the site and then convert to a real user with facebook, google, or email/password.
Well, I would get PyCharm for this particular issue. In these cases you are usually going to have to search all files for variable names or classes. Learn all the keystrokes for finding references and viewing class and call trees. If you are going to be owning the code add some type hinting comments for the classes and functions that you deal with frequently.