Thursday 14 May 2015

Don't Worry, Its Magic


"For my next trick I will code myself out of this corner"
Software development is an engineering discipline and as such large parts of the day to day aspects involve turning the handle and watching code roll off the production line.
While this can be fun in its own right their is obviously a creative element to development which is more rewarding. However these creative juices need to be channeled in the right direction, they need to be used to solve problems that need solving, not problems that shouldn't have existed in the first place.
A Sense of Deja-Vu
The same problems and challenges crop up again and again in development, and because of this as a collective engineers have gradually refined solutions to these problems, we refer to these solutions as design patterns.
I would never judge a developer by whether or not the names of design patterns roll off their tongue, the important thing is to recognise when one of these standard problem is encountered and knowing that the best solution is probably the one you used last time.
Being creative in these situations should be setting off alarm bells that we might have taken a miss step further up the line. There is a fine line between a creative solution to a standard problem and a hack.
Will the next person understand your magic? Will they have to be even more creative when they want to modify it?
Create to Innovate
Your creative energies should be used to innovate, use them to recognise a problem a client needs solving and envision a system or product that would help them. Use them to create a vision of the how to build this awesome product thats going to change your users lives.
Thats not to say that development needs to be boring, a painter doesn't paint because he likes the mechanics of using the brush, he does so because he wants to paint a picture.    
Be creative in what your software does, strive for simplicity in how it does it. Be an artist when deciding on the purpose and design of the software your building, be a technician when making it happen.   

No comments:

Post a Comment