4 ms·
Software development is a gigantic thing. You can program microcontrollers. You can simulate natural or artificial phenomena. You can recognize-process senso
by pritovido 6y ago
Software development is a gigantic thing.
You can program microcontrollers.
You can simulate natural or artificial phenomena.
You can recognize-process sensors that measure the world.
You can train deep and neural networks.
You can manage hundreds or thousands of computers.
You can create web servers, services on Internet.
You can create web clients.
You can create apps for people to use or apps for companies to use.
Each of those areas has their own specific issues, and make development totally different.
To say that software development is a craft because what you do in particular is craft is just not being conscious about the huge landscape of possibilities out there.
I do software development and most of my work and my team's is software engineering.
- any1 6y agoWell, to be honest, some of my work is actually engineering, but I feel like most of it isn't, and by most of it I mean things such as: adding small features, finding bugs, fixing bugs, dealing with users. To be clear: a craft is not a "lesser job" than engineering and very often requires just as much ingenuity. My main goal with writing the article is to keep myself honest about what my work is about most of the time and not to think too highly of myself. Are you absolutely sure that most of your time is spent analyzing and designing and not implementing or doing routine maintenance?
- andersource 6y agoMay I ask why the distinction is so important? If I properly understood your article you are advocating for diligently paying off technical debt. In isolation this is desirable of course, but in practice we have to choose trade-offs with other objectives. As the grandparent wrote, the things people who call themselves "software engineers" actually _do_ are incredibly diverse, both in domain and scope (compare a 3-week POC by two people to a 2-year project by a team of 5). Different situations call for different trade-offs and the actual value you add as an experienced developer is knowing how to balance the various aspects, one of which is technical debt.
- any1 6y agoYou are correct. The distinction is actually less important than the main point of the article which is that diligently paying off technical debt in a long term software project pays off because it allows you to move faster. The distinction helps me being honest with myself about what my role really is, and this means that I am less likely to be overly clever where it is not needed, which would lead to technical debt.
- andersource 6y agoThat makes a lot of sense. And I wholeheartedly agree that (in my experience) many long-term software projects suffer from neglected technical debt, resulting in poorer quality and longer development time (and a lot stress of everyone involved).
- yetihehe 6y ago> To say that software development is a craft because what you do in particular is craft is just not being conscious about the huge landscape of possibilities out there. The same could be said about software engineering. Not everyone is engineering all the time just because you are.