It is the duty of a software craftsman to be multi disciplined. To know various programming languages, technologies and have a varied skill set at their disposal. It’s about rejecting narrow specialisation. It’s not enough to complete a small task really well or look at their system from a ground level view but to look at the systems in a bird eye view in addition to a panoramic one.
To consider all the moving pieces to ensure that when completing a task they are cognisant of the impact they’re making at different levels.
That is why it’s important that the craftsman is involved in the various stages of the software development cycle, part of the conversation when discussing requirements, development, deployment and anything that will affect the success of the system.
This of course can be a big burden to carry, that’s why the road to mastery requires time and dedication. To make a deep commitment to your craft, of always trying to improve, giving 100% effort.
Because as we know, the journey is never truly over.