
|
|
You are born creative. Creativity is the bedrock on which evolution
happens. Every species uses it to survive, thrive, and evolve. Now is the
time to employ your creative instincts to solving problems at work, of the
programming kind. Art and science aid in solving a problem well.
Creativity makes the solution
great. |
|

Find
out as much as you can about the problem: A clear problem is easily
understood. A problem you understand is easier to solve. For example, a clear
bill is easily paid - one line of fine print, and you'll have questions.
Determining the problem domain will help you to take off in the right
direction. For example, finding out about financial practices affected by a
finance problem is necessary first - anything else will only take you off in a
tangent to where you were headed.
Start
with the tried and true -- explain the problem to yourself:
Communication is, sadly, not mankind's strong suit. We trip over each other for
simple errors in understanding. And clients may not often be aware of exactly
what they want. The only one who knows exactly what you mean is yourself (even
if you may not always say it right).
Tell yourself clearly, what it is
you are trying to do. Write up a (one page maximum) description of the problem
as you understand it. This will also alert you to any issues you may encounter.
Rest assured, if you cannot explain the problem, you will not be able to
clarify any loopholes in it, and therefore, you will not be able to solve it
completely.
Choose
a standard technique: Choose techniques that are well known. This saves
time you would otherwise spend on bringing other people on board with your
ideas. In cases where others make this decision, assimilate their point of
view. Any given problem can be solved in many different ways. Be open to ideas
from all members involved, and offer your own. During your career, you will
find yourself in different chairs, so be prepared, positive and
co-operate.
Fly
higher: Once you understand the problem and choose the technique to
solve it, you arrive at the point where creativity will separate you from the
typist writing code from design. In his book, 'Biplane', Richard Bach says:
'When one is at twenty thousand feet, approaching a major metropolitan area,
one has a choice of several runways to land on. As one reduces altitude, the
choice gets restricted, until there is only one runway to land on.' Try to find
as many alternate solutions - those runways - as you can think of. Remember,
your first cut may not seem so first-rate once you evaluate your options. Some
of your solutions may be outrageous, some may be practical and some may be
downright nonsensical.
Choose
wisely: We have chosen the runway. Time to land the thing. A good pilot
can land a plane in infinite ways, but not all of them will result in safe
landings (production grade systems) and unhurt passengers (clients). This is
the turning point. This is where you have to decide how creative you want to
be. This is where you choose to live or die.
Run your solutions through
constraints on the problem - time, money, skills, equipment, and so on. A
viable solution is one that costs the client an average amount of time, money,
and skills. An elegant solution is a viable one that employs ALL your current
skills to the best possible end.
People lose assignments because they
forget that nobody is indispensable in this business. Each of us can be
replaced - for better or worse. If you write an obscure solution in the hope
that you will be around forever to maintain it, keep your resume ready. If you
can achieve an optimum via media between all your constraints, you will be
around longer - because you will have gained the client's trust. Trust, while
delicate and requiring high maintenance, will keep you in the race for any future
development at that client. That is how you win this race against
yourself.
Remember to re-group: Several factors influence
the success of a landing attempt. Your solution may need to be modified over
time and adjusted as the problem becomes clearer to you and to the client. If
your solution is as elegant as you can make it, chances are you will be able to
spend the fifteen minutes per week required to run through the entire solution
to make sure it meets the requirements, while you make those
adjustments.
Optimize later: Every implementation has its
highs and lows. Optimization will highlight the highs and cancel the lows in
your particular implementation.
Once the solution of choice has been
implemented, depending upon time constraints, you may get one or two tries at
optimization before the solution is generally deployed. Determine for yourself,
from your experience and interactions, what the client is looking for - speed,
space, glamour, and so on. Then, fine tune your solution to remove any
extraneous noise in the relevant department.
Beautify last: Business casual attire
dramatically increased productivity at work by making people feel good about
how they looked without much effort.
Your solution should be similar.
Keep the frills to a minimum. Increase usability over glamour. In the final
analysis, the beauty of your solution will be in the simplicity of use and
maintenance. Your client may not appreciate the inner beauty of your code, but,
trust me on this, you would have earned the respect of the person who follows
you to maintain that code. That, is a good thing in this small world of
consulting.
Be
careful: If you end up maintaining inherited (from someone else) code,
you may have a piece of cake or of garbage (or something in between) that the
client wants adjusted to her changing business climate. Use your creativity to
retain those parts that you are comfortable with, and modify what you know you
can improve. Again, watch the development life cycle closely. It is more
difficult to maintain code - writing afresh is always easier. But, you will
have to maintain a production system, in all likelihood - so be doubly careful.
Trust, in this case, will be very, very difficult to retain (and/or regain) if
something breaks. In the event you make a mistake, admit to it first. And
rectify it immediately.
Intangible though it is, creativity relieves the
tedium and boredom associated with mundane IT assignments that are so
commonplace in today's workplace. It can help you keep your current assignment
and land you newer ones. Develop yours, and watch your job satisfaction index
skyrocket!
|
|