Developing software needs a clear mind, full of creative ideas (art) & good knowledge in computing, software domain and logic (science).
Still many companies consider programming as a desk jobs, where you have tasks you have to finish. But it's not just paper filing, developers are more creative on few days than others, more keen to solve the software issues and problems one day and the other day they don't feel like even if they try hard to do so.
How should IT department management concider this issue?
Should developers be considered as artists and given full time to do what they like to do (many will not deliver software on time like that) or should developer be treated as assembly workers who have to finish their specific tasks no matter how they feels about it (will not get quality results)?
I think it should be somewhere in the middle, but where exactly?