1Senior, lead, manager, director

Etymology clears up the differences.

Senior = older.1

Lead = to show the way.2

Manage = handle or train a horse.3

Handle = "touch with the hands, hold in the hands, fondle, pet"4

A director directs. Directors knows what they want.

2Management, hiring, culture, anarchy

2.1What is management?

What did it mean to manage horses? Why did people manage horses?

2.2What management?

I tried to think about managing software engineers.

"When hiring senior engineers, you’re not buying, you’re selling." (Alexander von Franqué)5

"Why Developers Become Frustrated And Companies Can’t Find Talent"6: "In order to survive, a software project needs to sacrifice quality for money and time. In order to exist, a software project needs to sacrifice money and time for quality."

Am I the only person who feels that engineers are generally anarchists?

2.3Hiring a person is like buying a bundle of candies mixed with shit

When you hire a man, you can't just get his good side: you get both his good side and his bad side. When you hire a fast coder who is also a drunkard, a gambler, and a thief, you get not only the fast coder, but also the drunkard, the gambler, and the thief. You get all aspects of him.

It's the same with Android phones and telecommunication companies. Android phones are bundled with unwanted Google shit. Telkomsel Internet plans are bundled with unwanted movie quota shit. Why don't they have a no-bullshit pure-Internet plan?

The art of hiring is determining whether a candidate's good side outweights his bad side.

Teaching skills is easier than changing habits or characters.

2.4What is the difference between the $10,000 Indonesian programmer and the $100,000 American programmer?

Is it location? Will a $10,000 Indonesian programmer suddenly become a $100,000 Indonesian programmer just by moving to America? Are American companies simply able/willing to pay more?

The average Indonesian does not know English. Not all computer science undergraduates can write code, let alone think abstractly. This seems to afflict all countries.

Is it skill/ability? Is the $100,000 American programmer more capable than the $10,000 Indonesian programmer?

Is it racism?

Inconclusive discussion7.

2.5Standard questions for open-source projects

  • Why does this project exist? What problem does it solve?
  • How do I use it?
  • How do I contribute? Code? Money? Documentation? Something else?
  • Where is the community?
  • Where do the users hang out?
  • Where do the developers/maintainers hang out?

2.6Why is nobody using my open source project?

  • There is no documentation.
  • Their friends don't use it, because there is no documentation.
  • You wrote some documentation, but they can't understand it or they can't find it, which means to them that there is no documentation.
  • There is no documentation, because there is nothing to document. Make sure that your project actually does something significant and shareworthy.
  • There is no license?

How can people know whether they will like it and tell their friends, if people can't even know what it is!?

It is too easy to get carried away with our beloved project and forget that telepathy has not been invented.

2.7Sometimes lateness is not software engineers' fault

[1]

2.8Making jobs even more granular

Instead of these job titles:

  • software engineer
  • data scientist
  • accountant

How about these roles:

  • the person who engineers software
  • the person who, scientifically, formulates experiments and answers questions
  • the person who keeps track of everything money-related

And there is no 1:1 mapping from person to roles, unlike 1:1 mapping from person to job titles.

The compensation is based on roles. If you want more money, take more roles, probably inventing your own roles.

That is, we replace the question "What are you" with "What do you do".

But job "titles" become long. "I am a software engineer" vs "I engineer software" vs "I design, implement, and maintain software".

I don't need a "regional manager". I need someone who "helps me expand to such-and-such country".

In 2019, "engineer" may be a verb, but "science" is hardly a verb. Even in 2015, "I’m going to have to science the shit out of this"8

The question is "Why are we hiring this person?"

What problem are we trying to solve by hiring this person?

We are not solving problems; we are trading bigger problems with smaller problems. Hiring people solves some problems and creates new problems. But isn't that also true for everything we do? Every solution solves a problem and creates new problems. Thus the question is: Which problems would we rather handle?

2.92017 article "What Is the Best Way For Developers to Learn New Software Tools? An Empirical Comparison Between a Text and a Video Tutorial"

2.10Human aspect

Good code is more because of programmer discipline than because of the framework or language.9

  • Emphasize maintainability, readability, understandability, changeability?

Adding people to a late software project makes it later (Fred Brooks, "No silver bullet").

Newcoming programmers, no matter how experienced, need time to onboard; they are not immediately productive. Existing programmers must spend some time helping the newcoming programmers, temporarily reducing productivity even further.

How do we concentrate? Does putting on a headphone enhance your focus, even if it isn't playing any sound? How about putting a motorcycle helmet (a friend of mine did that)?

2.11How do others do it?

  • 2016 "I Hire Engineers At Google–Here’s What I Look For (And Why)"10
  • 2019 "How I negotiated a $300,000 job offer in Silicon Valley"11: multiple concurrent offers, make buyers bid against each other, respectfully
  • Interesting? "The irony is that dishonest people believe they are normal people in a dishonest world, so they have no problem telling the truth!"12
  • unread

3Management is farming

Table: manager farmer employee farm animal high-value low-maintenance employee chicken high-value high-maintenance employee cow low-value low-maintenance employee ? low-value high-maintenance employee jackal, fox, coyote, rat, racoon, parasite, weed

Smart people should not be employees. Farm animals cannot propose new processes. A cow can't tell a farmer how to milk it better. It's the farmer's responsibility to understand the cow.

Farmers don't make chicken lay eggs. Chickens lay eggs at their own pace. Farmers provide a conducive environment for chickens to lay eggs.

A chicken is a high-value low-maintenance employee.

A cow is a high-value high-maintenance employee. It must be milked. Chicken not.

Horse

Cat, dog

https://rz.mdrt.org/html/rtt201803-categorizing-employees/

Employee categorization by mission-criticality https://www.shrm.org/resourcesandtools/hr-topics/risk-management/pages/employeecategorization.aspx

How a leader categorizes their new employees https://www.tlnt.com/how-new-leaders-categorize-their-new-employees/

What? https://www.inc.com/geoffrey-james/its-official-open-plan-offices-are-now-dumbest-management-fad-of-all-time.html

4Social pitfalls?

5Common company wiki fundamental problem

Employees have no reason to read the wiki. It doesn't help them do their jobs. Why should they read it then?

6Hiring?

http://www.siop.org/Media/News/science.aspx http://www.selectinternational.com/blog/hiring-art-or-science

7Plan

Merge file:engman.html.

Skills table a.k.a. competency matrix https://www.analyticsinhr.com/blog/create-skills-matrix-competency-matrix/

[1] DeMarco, T. 2011. All late projects are the same. IEEE software. 28, 6 (2011), 104–104. url: <https://www.computer.org/csdl/magazine/so/2011/06/mso2011060104/13rRUwI5Uj1>.


  1. https://www.etymonline.com/word/senior

  2. https://www.etymonline.com/word/lead#etymonline_v_6615

  3. https://www.etymonline.com/search?q=manage

  4. https://www.etymonline.com/word/handle

  5. https://hiringengineersbook.com/post/trouble-hiring/

  6. https://codeburst.io/why-developers-become-frustrated-and-companies-cant-find-talent-c4114d8b72ac

  7. https://marginalrevolution.com/marginalrevolution/2012/01/why-are-some-programmers-paid-more-than-others.html

  8. https://stronglang.wordpress.com/2015/09/16/im-going-to-have-to-science-the-shit-out-of-this/

  9. https://blog.codinghorror.com/discipline-makes-strong-developers/

  10. https://www.fastcompany.com/3062713/i-hire-engineers-at-google-heres-what-i-look-for-and-why

  11. https://blog.usejournal.com/how-i-negotiated-a-software-engineer-offer-in-silicon-valley-f11590f5c656

  12. https://medium.freecodecamp.org/hiring-right-an-engineers-perspective-on-tech-recruiting-7ee187ded22d