8 ms·
I think a lot of people don’t want to work in software because of the perception or reality of the software development systems that they have been exposed to.
by dougabug 4y ago
I think a lot of people don’t want to work in software because of the perception or reality of the software development systems that they have been exposed to.
If the right tools were invented for them, they might take to it like ducks to water.
- MikePlacid 4y agoAnd then what? Let’s consider the following. 1. There is a limit of complexity that a given person or a given team can deal with happily. Below the threshold work satisfaction is great: “I am solving more and more complicated tasks”, after the threshold a stress eats job satisfaction: “I do not want to open my emails in the morning - what if I will not be able to solve some new problem”. 2. Complexity of each successful product grows until this threshold is reached. The successful product is used by more and more people. The successful product is put as a building stone in more and more complicated projects. 3. Because of 1 and 2 a successful SE is an unhappy person running under a lot of stress. Now let’s see how decreasing the complexity of tools changes the situation. Bad tools: 50% of the complexity of the situation is caused by the tools, 50% - by the complexity of the product. Let’s improve tools twice. Now the tools create only 25% of the original complexity, and since the product causes 50% of the original complexity overall situation improved to 75% total of the original one. The engineer can have a happy life? No so fast. Since the product is successful, the is a great demand for new features. The complexity of the product increases to 75% and the programmer lives under stress again. So, better tools allow to create more complicated, more useful products. But they do not improve - in the long run - the quality of programmers’ lifes. So if a person is not happy with current tools, she will not be happy to be a programmer. Or so it seems to me.
- dougabug 4y agoI am not suggesting that the right tools will allow absolutely anyone to be happy working in any given role in the domain of software development. Scoping is a big part of finding the right roles for people. Maybe a person loves developing prototypes and POCs, or shepherding new systems through phases of adoption prior to reaching massive “scale.” As some people are wont to say, “Everything breaks at scale.” Everybody has a complexity band in which they are comfortable operating. Many problems of high complexity can be decomposed sufficiently that they can be attacked teams of mostly mere mortals, with perhaps some assistance or over-sight from the Anointed Ones. Also, many people have significant abilities to navigate the complexities of, say, differential topology but C++ not so much. And vice versa. How information is presented impacts our ability to cope with complexity.