The programmer must decide


Recently, an article was published, which I first decided to go past, but then decided to write a detailed commentary in the form of another article.


The programmer must solve business problems.
The programmer must not solve business problems.


I almost agree with the authors of both articles, but there are a few nuances that I would like to share.


Developer Levels


I will begin, perhaps, with questions of hierarchy and levels. I used to think that there are 3 levels:


  1. — , . , . — , , . .
  2. — , , " ", , , , . . .
  3. — . , . .

, — , — . , , . - . , .


? . , . , "", . — , , . , . . , .


. . .


. , . . ? .



, . . "" . , , .


, , .. , . , , , -. - , :


  1. Senior engineer.
  2. Staff software engineer.
  3. Senior staff software engineer.
  4. Principal software engineer.
  5. Fellow engineer.

, , , , : , . , , .



, . , , , . . .


, . , .



, ? , , . ?


, . .


, . .. — , — . — . .


, , . , . , .


. . , , . -, .. , , . — . , . , . , .


, , , . , .


, , . , , .. , . , , . , ?


Therefore, the answer to the question about what developers should and what should not lie in the plane of understanding the current situation with the business, depends on the level of tasks, the business itself, the availability of personnel, etc. etc. There is no universal answer, just as there is no language in which everyone programs and enjoy it.


Everything is very individual and depends on the circumstances. Well, one who is smart will find the key in the article for his own development. Good luck to all!


All Articles