I am still reading the book: Linchpin. I am interested with the author's definition about art:
Art is a personal gift that changes the recipient. Art is something creative, passionate and personal, which can bring some change and make the difference.
The author expanded the definition of art , it focuses on "making changes".This idea share the similar idea of software crafsmanship.
Where is the art in software developing?
The developer's daily job can be boring, repetitive instead of creative. For example:
you can just copy and paste from the old code; or just use google check some API usage;
You don't need to care the code quality, don't need to care about the maintainability.
you can also finsih the job. You can do like that everyday.
But this job is not art, you will not make the difference, any one with the similar knowledge can do it.
then your job are easily been replaced.
But the developer's job can be a kind of art if you choose to do in different way:
there is the art of making simple design;
there is the art of wrting clean code;
there is the art of refactoring;
there is the art of maintaining;
there is the art of debugging;
there is the art of communciation and interaction;
Anything which can make things better and make some difference is the art of programming.
if you bring your passion, and make some difference, then that is art;
if you do that day by day, keep improving yourself, then you will become a master, which is also an artist of software.
The road to become artist
I like the concept of Shu-Ha-Ri, it can be treated as a path from an average developer to a master developer:
In Shu Level, the point is "following, copying", all you need to do is learning, so there is no art behaviour at this level;
In Ha Level, the key point is "detaching, breaking", you try to bring some change, bring what you learned into different context, you will have some art behavior in this stage;
In Ri Level, the key point is "transcending", you becomes master, everything you do is from your intuition, you are freely to express your idea,which is the artists behaviour.
So I believe the truly artist is only existed in Ri level, which needs years of the deliberate practice, it should be an ultimate goal for any serious software developer. You will become master and artist at the same time.