Skip to content

Instantly share code, notes, and snippets.

@i2key
Last active February 3, 2016 14:47
Show Gist options
  • Save i2key/81b16ebbea021c14651e to your computer and use it in GitHub Desktop.
Save i2key/81b16ebbea021c14651e to your computer and use it in GitHub Desktop.
I translated http://qiita.com/shinichinomura/items/da9d53f8e3f31df96e7a with broken English to discuss with non Japanese engineers

#the theory of Retirement age of engineer is 35 years old (Japanese engineers pessimistically talk about this ) ##1st phase

  • before service is rolled out
  • you develop the code of service by yourself
  • the thing that you must do is only developing your service
  • though you are working 16hours per day, you are not tired because you only are programing. it's fun.
  • you spend all time to develop your service
  • you enjoy almighty feeling because you impelement all thing from infrastructure layer to software layer a.k.a full-stack engineer

##2nd phase

  • after service is rolled out
  • you must do ops(e.g. user support). so your developing speed is slow down
  • you start to hire engineer
  • not-programing tasks(e.g. arrange spec, code review) are increasing a little bit
  • but you are still main engineer
  • you do all of code review, release product and merge code
  • you grasp the overall development and the detail development

##3rd phase

  • Getting the situation of your service on track, you are hiring lots of engineers
  • but there is no personnel management system. so you must spend many time to operate the hiring and to interview.
  • you must spend lots time to code-review
  • the queue that you review code often became a bottleneck
  • you start delegation of authority of code-review, merge and release
  • though you grasp the overall your system, but you dont grasp some parts of whole your system.
  • the engineer who is better than you at the point of engineering is joined. and you dont understand some part of code that the good engineer implements.
  • but you only grasp the core of your system, so you can keep your identity as engineer by updating/modifying/fixingbug about the core.
  • At same time, new hired engineer often gets angly about your initisl implementation.
  • yet the codes that you wrote remains more than half of whole codes

##4th phase

  • you gradually became that you can not grasp the situation of each engineers. so you start 1on1, you start the assessment of an employee's performance.
  • you must spend many time management tasks(e.g. 1on1, assessment of emoloyee's performance)
  • the time that you can spend for programing is decreasing very much
  • the bottleneck that you cause (e.g. waiting your review) occurs high frequency.
  • in the some case, the implementation that you dont understand appears
  • When you off guard, the part that you can't understand appear about whole architecture
  • the code that you wrote go getting small
  • you gradually go lost confidence as engineer
  • the part that you can grasp is too small and the part is only your identity as engineer
  • when your member asks you about spec of code, you teach a lie because you mistake to understand the code.
  • the frequency of mistaking like it is increasing. and you lost the identity of engineer.

##5th phase

  • in addition to 4th term, you must spend almost time to arrange each departments, to make documents to report and to manage your team.
  • you became not to able to catch up the situation of system. and you became the man that you tell who grasp blablebla. like a pointer man.
  • junior engineer points out your code that you write after a long interval without mercy. you lose your confidence for engineering
  • or perhaps, you realize only that you prove your value by doing management
  • but the road of management is not easy.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment