How is creativity viewed in the software development industry? There are certainly rewards for creative software solutions to problems. What about deeper than that? Inside of a company, are the programmers rewarded for their creativity, or is it discouraged?
Breaking the Mold
In some companies, breaking the mold can be seen as immature. There is one way to do the thing, and you will be punished for going any other way. Not following the set path requires a slew of documentation laying out why this case is an exception. Every successful company has some element of this. It is a necessity just to make the company function smoothly at some level. As a basic example, you want the payroll to be distributed based on previous agreements and work done, not on how the person signing the checks happened to feel that day.
There are times for unbounded creativity in any company as well. When the new release hits production and fires start all over the code, we need creative solutions. Creativity is encouraged, because obviously the thinking that led us to this point had some flaws. We need something new.
General Rule
However, is software development, in general, a creative exercise? On the face of it, it seems very much like a “no”. There are rigid rules we need to follow. The compiler is not very forgiving. Yet, it still remains that basically what you can imagine is the limit for what the software can do. If you can imagine it, you can find a way to make the computer do it.
The rules are laid down not to be barriers to your work, but to provide a framework that allows you to more quickly get to the creative work. The “Gang of Four” patterns are guidelines provided to minimize menial work. If you don’t repeat yourself in the code, you eliminate the menial work of updating dozens or hundreds of pieces of code when some trivial requirement changes. Instead, you are removed from that work, and allowed to focus on the problems that require your creativity.
Just like in painting, where there is a rule about mixing two colors to make a new color. Mixing blue and yellow will make green. That is a rule. Knowing that rule is not a detriment to the painter. In fact it is a benefit, allowing them to more quickly form the color they desire. They can experiment with different shades of the colors.
Out Of The Box
There will of course be times when being creative really is not the solution. These are usually going to be the times when you solve a problem in a novel way, when there was already a solution sitting on the shelf nearby. You may not have known about that solution. You may have seen it but didn’t know enough about it to think it applied.
Continued learning; knowing the rules and patterns is essential. Knowing the tools at your disposal is essential. Those will help focus your creative energy to where it is needed, giving you the most reward. Nobody wants to spend time on a solution they think is great and creative, just to be told there was a better solution already available in the java.util package.