They seem to think that if I can be 200% focused some of the time, why can't I be like that all of the time?
For some it's all take take take.
However, from the average manager's perspective...
What happens if one of these two takes a vacation, and you decide to put in the sprint something that the other one sucks at? (Planning? What planning? This is Agile!)
What happens if you later decide you could save some money by moving one of them to another project, and leaving the other one to handle it all?
Also, what if one of them asks for a raise?
Also, in terms of focusing, what's helped me is to find a single, non-lyrical, instrumental, ambient track, and just put it on loop for the whole work day. It's been easier to think/less distracting to not hear and process language or have to find the next track that I'm in the mood for, and I believe in some way it helps my mind stay focused on my thought processes related to my work through patterns the mind makes with the looping of the track.
I don't mean to detract from your personal issues. However, I would suggest that you work on finding a position that allows you to average out your productivity better over the course of a week.
This is by sleight of hand changed into a commitment to make it in two weeks, 100% sure. Then, 20% of time, developers are blamed for not fulfilling their committments or not estimating correctly. But they did!
If the most important thing for you is getting your commitments done with as high probability as possible, have a three-week sprint, but estimate only for two. Even this will fail once in a while, but less often. And maybe let developers work on the tasks of their choice in the remaining time. Autonomy, yeah!
"Two weeks on average" literally means it could be less but just as often it could also be more. If it is always two weeks or less, then it is not two weeks on average. What if it is always exactly two weeks, not a day more or less? No, that level of precision simply does not happen in real life.
It is exactly due to such thinking code becomes bloated, full of frameworks, zillion of 3rd party libraries for something that could be implemented with bearable codebase by just having a little more experienced crew that is not afraid to "just do it".
Yes, people described are hard to manage but this doesn't mean that there is something wrong with them. It means that they need competent managers that they will respect (Oh and they are there - I had a PM once and we were late on project and people were working into the night, he came to the dev. team, pulled the code and started debugging the issues, testing,... It was not his job (anyway, quite frankly, how many PMs you know that are able to fully use/test the product if you ignore the coding/debugging part). But he never had any issues with engineers ever. This action echoed for a years and he had an endless respect from anyone technical around. But people like this are not found by looking at nice graphs of jira tickets and burndown charts)
As far as I am concerned the whole post comes down to: "B people hire C people, C people hire D people,...". And if what you have are D people (not only engineering), you cant hire A people. They prove D people cant work with them. Or vice versa.
An advice:
Find company with A people. Ignore the rest. And they are there, just not advertised as aiblockchainnosqlserverlessiot (pun intended) companies.
George Bernard Shaw: “The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man.”
So just be crazy and if you love to code, dont care for the money. It is not the money that makes you happy, it makes happy someone else. Find the company with the code and people that will make YOU happy. And dont crave for social respect from people who dont understand what you are doing by allowing them to drag you to their level and compete with you on "I have a better car" (or "we make loads of money") basis. That is their play and you dont need to play along.
Ironically, much of the codebase bloat I've seen in recent years has come from super-hackers who want to gain experience with all the new frameworks and services on the market.
A prime example is hiring a front-end wizard to rebuild sites in React, just because React is the new hotness. That engineer gets to put "Replaced legacy website with all-new React codebase" on their resume and pivot into the next job.
At my previous employer, one of the teams had a front-end that had become an unholy conglomeration of React and Angular, simply because the engineers were afraid their skills would fall behind if they didn't keep up with React. It was a mess.
Ironically, hiring developers who care more about getting the job done tends to choose the path of least resistance forward, which means sticking with frameworks, languages, and services that may not be the trendiest, but they get the job done.
I'd say they aren't really super-hackers; no true Scotsman and all that.
I love cooking, but I very rarely cook food just to cook and then throw it away. That I am cooking for people is part of my intrinsic motivation.
I feel the same way about software. I definitely also enjoy tinkering. But a lot of the motivation for me is in creating things for people to use. So I make sure to take jobs where the mission is one I can get behind and where I can develop empathy for the audience. I also find teamwork intrinsically motivating.
For me that makes for a pretty clear separation between intrinsically motivated coding on the job and intrinsically motivated coding at home. If I'm just fucking around with something cool to explore it, that's hobby time, because I'm not looking to help users or my team. But my days are still full of intrinsically motivated work because I'm there to fight for the users.
Are you considering yourself as "slightly crazy and more productive" (it's not certain from the wording)?
If so, you may want to think in terms of time perspectives. Another way of viewing the dichotomy is "Most companies ultimately value (more predictable and less productive in the short term and more productive in the long term) over (slightly crazy and more productive in the short term and less productive in the long term).
Thinking oneself as "more productive" doesn't motivate to build the personal and technical skills required in the long term, instead, it centers the focus on one's ego (I'm cool; if they don't hire me, it's because they're wrong).
But I'm also skeptical of the entire concept, at least in some cultures. Excluding staff workers, there's a lot of mobility in American companies, to the point that it's quite common to change company every few years (say, 2 to 5). How "crazy" should one be to start disrupting productivity even before a couple of years?
Dan Pink wrote a book about this [0] in which he postulates, people are motivated by three fundamental things:
- Autonomy: The urge to be in control
- Mastery: The desire to get better at something
- Purpose: The yearning to do what we do
So, if managers took care of these three for their reportees, according to Dan Pink, they'd be inherently motivated to be doing their best work.
Note that, mastery (great hax0r) and purpose (care about users) need to align (especially true for a small company), which is what TFA may be alluding to in as many words?
I used to rant a lot. At times it was perceived as an attack on someone's work, when it wasn't meant to be. Then, I'd apologize, assuming it was ok.
I was experienced, and I thought I was being paid to mentor and oversee as part of my work.
I thought that others would understand and sympathize that I ranted because I was under a lot of stress. They didn't.
They would tell others, and they would not confront me about it, which eventually resulted in a hellish working environment and semi-isolation. I believe at least one was even being unethical in their reaction to me speaking my mind, causing problems for me, probably with the best intention to wear me down, to get rid of the toxicity in their work environment "for the good of the whole".
I now try to think about what I say, even when being direct would solve a problem more quickly. Sometimes that means that when I'm on calls, others will run over me. To get over that, I also try to act and believe that the other person is more qualified. I don't do that with everyone, and it's not appropriate for speaking with young children, but it's usually good.
[0] This means you can raise your rates without fear, btw.
[1] To be clear, mentoring is a lot more than just this. Whole books have been written about mentoring, read them.
This at first bothered me a lot, due to Agile micromanagement, but after a few months the company realized my work load is nothing like engineering, and because I have to become the domain expert on a topic to solve the challenges at hand, I end up knowing best what the next steps should be. After realizing this the company has since put me in the team lead meetings (which is excessive imo) and has personally requested that I make my own epics, issues/pbis, and do my own refinement. The only downside remaining is the company wants presentations every two weeks, but now I'm in control to slowly grow my pbis into whatever time span I want (within reason), allowing me to present as often as I want. Responsibility comes with rapport.
Both are not exclusive. Your job can be interesting and fulfilling and yet be only a job meanwhile your heart is at home with family and friends.
> People love that he's crazy enough to build spaceships and electric cars
He does not build any of that. His employees do. Volkswagen or Volvo also make electric cars without needing a grab attention CEO. For each Elon or Jobs there are a million similar guys that fail misserably. Survivor bias is a thing.
Of course he does not "build" the whole thing, but he has a vision that inspires people and the technical chops to lead from the front lines. And the endurance to put in productive 80-100hr work weeks for decades.
That's called drugs.
I am not being flippant, I think there's a whole other segment not fully touched on by this article that needs to be addressed in this subthread. More hours is not always better, and folks who can sustain this typically are using some sort of substance to do so. Whether that substance is as mild as caffeine in the 10 shots of espresso they have a day or they're railing lines of coke in between high-stress meetings, they aren't doing this off their own natural energy, and it takes a serious toll on their physical and mental health which they may not even be aware of.
I speak this from experience. I'm one of those people who was known as a "super-hacker" doing "80-100hr work weeks", and what most people didn't realize was I was downing between 20-30 shots of espresso a day. I actually ended up hospitalized at one point due to severe dehydration caused by constant mass intake of caffeine and not enough fluids. It almost caused me to have renal failure, and basically was the wake up call that represented a turning point in how I thought about work-life balance. It certainly helped advance my career and gave me a mythical reputation, but it was in no way healthy, and it ultimately didn't serve the interests of my team at that company, only the interests of the executive leadership who profited off my extra hours of work for which I was not compensated fairly.
They want the kind of diversity that doesn't require any thinking to consider. You look at the photo, you see a white woman, an Asian man, a Black transgender person, and a Native American non-binary... <whatever I'm supposed to define them as>.
That's the diversity they want.
But what they really want, is for the public to leave them the fuck alone. The above is just how they get it.
Sure you want people who have 'a passion' for the technical domain to begin with but that's not the same as loving the job, which is very much down to the atmosphere, environment, compensation, etc.
A passionate software engineer badly paid and treated like shit won't love his job...
You do need an employer who cares about their employees, treats them fairly, supports and encourages a great atmosphere etc.
You absolutely need enthusiastic, motivated and pleasant employees too though. Employees create the atmosphere as much as the employer.
Now you could flip this and say a good employee should be good at hiring, but IMHO that’s kinda just the same thing.
(Technically, team working skills are optional. Not all projects need it as unusual as that sounds. If they have good communication skills, then they can work well with other teams, which is what specialists need to know as they're often a team of one or two. Eg, I'm a data scientist and most of my career I've been a team of one.)
You can certainly have a passionate person who understands that at the end of the day user value is paramount even at the cost of some beauty. The author just wants to make sure you hire someone who can ship, not just passionately rewrite the codebase when a long weekend rolls around.
Yeah, it's a sentiment that I'm not sure was meant to be taken literally rather than rhetorically. Consider who the essay is written towards -- ISVs in 2004. What about an ISV requires super-productivity? In fact, the author states this literally:
> It's okay to be in awe of these great hackers. But as a practical matter, small ISVs would be much better off hiring professionals.
For what it's worth, it's fascinating to look at this essay with 2020 lenses on. I have two observations:
1) The traditional ISV, while not dead, has at a lot of its traditional role usurped & cannibalized by players higher up the value chain. This somewhat relates to my next point.
2) The rise of growth and data science roles as a fusion of marketing and technology along with the enormous growth of tech as a whole (hard tech and soft tech) means that archetypical average social media literate hacker founder archetype of today is quite interested and capable of interacting with users today.
And of the three "sins" the essay points out, that's probably the most cardinal one -- for the vast majority of businesses, if you have high enough margins and an employee who's good enough at growth to add double digits to your bottom-line, are you going to whinge about their predilection to fuss about interesting projects and tools? No, you're going to raise a ton of cheap VC and let them go to town.
In the same breath he wants people who LOVE their jobs and super-productivity, but yet also understand its only a job. You can't have the super-productivity that comes with intrinsic motivation if the environment is boring and lacks anything that might produce intrinsic motivation.
There was a great article about Elon Musk about this from collaborative fund, which I can't find. People love that he's crazy enough to build spaceships and electric cars, but they wish he would just tone down the crazy when it comes to Twitter or whatever controversy he gets into. Its a fundamentally dehumanizing attitude - you DON'T get to pick the good parts of crazy without taking the bad too. You have to take or leave the whole person - warts and all.
Most companies ultimately value more predictable and less productive over slightly crazy and more productive. I realized this is kind of my situation.. advice on what do is much appreciated :)