When I first got into the programming field, I heard the debate on whether programming is an art or science. For my understanding, the debate ended (at least in my mind) with the consensus that it is both. So when I got my master degree of arts in computer science, I was very happy about the name.
But over the years, I have heard enormous times that people consider programming a routine work. Instead of "programmers", they were then called "coders", which implies that you are just writing code, with everything else stripped from you: requirement, design, testing, deployment, etc., as if those are other (more important) people's business. Also, programming, in the minds of some people, becomes a labor-intensive low level, low tech work.
There are many problems in this thinking, but the single most fundamental error in this is the view of "coder". A program cannot be finished without the programmer considering each and every phase in the programs' life cycle. Yes, the programmer may not actually perform those tasks, such as requirement gathering, architectural design, testing, deployment, but these elements must be embedded in the program itself before it can achieve the intended result. This requires active involvement on the programmer's side. This leads to the understanding of how the cognitive processes works for programmer to acquire the knowledge in the development processes as a whole; not only the knowledge of how to do general design, etc., but the knowledge of what have been done or need to be done. These are a set of complicated processes.
One of the most important and useful tool to ensure the success in this kind of cognitive processes is empowerment. So instead of calling them coders, we need to encourage them to participate in all areas of activities in software development. Recent
Studies has shown that without empowerment, people simply lost their ability to get ahead of the game. This study shows, according to this web page, that,
Executive functions help people maintain and pursue their goals in difficult, distracting situations. The researchers found that lacking power impaired people’s ability to keep track of ever-changing information, to parse out irrelevant information, and to successfully plan ahead to achieve their goals.
In our context, executive functions are ability to handle issues coming up from those phases in software development life cycles; those are truly difficult and distracting situations.
So the programmers deserve the respect and empowerment from the management in order to do their work. If you are thinking about trying to get your software development project done, please empower your programmers.
On other token, however, the programmer themselves will have to recognize this as well. You are much more important than who you think you are!