Re:The Insecure Developer
by watwut on Thursday October 05, 2017 @03:11PM
(#15411783)
If you need everybody to be top 1%, then you have management problem. Whether it is that majority of people get demotivated fast and stop caring or whether it is that there are no modules or tasks that are simpler, it still boils down to management problem.
If you have well defined APIs and modules, then you can actually give one low risk to cheaper junior. If he or she manage to do it great, awesome. If it is too much mess, then senior will redo it when change requests come first time. Most of the time, the module is not perfect, but is useable, junior learned and was useful. That is just one example of how to manage less then super genius super experienced programmers.
It is not so difficult to write good code and some tasks are easier then others. Writing good code boils down to being predictable plus following some rules. Comes easily with experience. But funny thing is, puzzles, whiteboards and tricks do jour have little to do with writing good readable code. They select for people who are good in solving short competition like problems. That is not nearly the same as writing large readable maintenable system. It is useful, in some projects more then in others, but it is still different skill.
That gets us to assigning tasks to people based on their personalities and skills. Someone who is super great in algorithms may write ugly code, someone who writes nice code can have hungups on frustrating tasks and someone learns fast but gets bored easily. Instead of complaining about those three being imperfect, good management assigns them different tasks (or have them choose tasks).
If you have well defined APIs and modules, then you can actually give one low risk to cheaper junior. If he or she manage to do it great, awesome. If it is too much mess, then senior will redo it when change requests come first time. Most of the time, the module is not perfect, but is useable, junior learned and was useful. That is just one example of how to manage less then super genius super experienced programmers.
It is not so difficult to write good code and some tasks are easier then others. Writing good code boils down to being predictable plus following some rules. Comes easily with experience. But funny thing is, puzzles, whiteboards and tricks do jour have little to do with writing good readable code. They select for people who are good in solving short competition like problems. That is not nearly the same as writing large readable maintenable system. It is useful, in some projects more then in others, but it is still different skill.
That gets us to assigning tasks to people based on their personalities and skills. Someone who is super great in algorithms may write ugly code, someone who writes nice code can have hungups on frustrating tasks and someone learns fast but gets bored easily. Instead of complaining about those three being imperfect, good management assigns them different tasks (or have them choose tasks).