Continuous Improvement

ImprovementWe developers are the masters of an ever-changing field. What programming is today usually isn’t the same as programming tomorrow. IT is improving, changing, trends arise and die, new languages, new platforms are born, better solutions come forth for old problems. We need to keep up with the changes and also constantly improve ourselves. This is not optional, this is crucial.

Below you can find a few tips which will help you walk the line, become a better developer.

 

 

Have you heard the term ‘Kaizen’? If not, shortly it’s a term for improvement. Of course it’s more than a mere word, it’s a philosophy, a philosophy of constant change for the better. It requires objective monitoring and improvement. Go ahead, read a bit more about it here, you won’t regret.

My tips are, without any specific order:

  • Read code

Read others code often and thoroughly. Look for proven quality code in production software. Learn how things work. See others’ solutions to the problems you also face or will surely face sometime. Compare solutions, techniques.

  • Write code

Choose a problem you’ve never solved before. Work your way through it, give it time. Try to objectively study yourself, your ways of thinking, your mental patterns. You will realize _many_ very interesting things by doing so. It’s not that hard and it’s an immense source of good feedback. Also try to implement things in different ways and compare the pros/cons of your solutions. Use aspects like “modularity” and “system integration”. Write code which is pure, simple. Almost everything can be solved in a simple way.

  • Keep up to date with technologies and trends

You’re on twitter and facebook anyway, start following tech leaders and tune up your RSS source list. Don’t be the last to know about that new language. Of course be picky about what you delve into, don’t follow trends like a blind sheep. A big part of tech improvement is in fact improvement, so get to know it, as early as possible.

  • Try to look at things from many different points of view

Sure, you’re a developer, but would you use your own product as a plain simple user? What about business values? Does that new pice of┬ál’art pour l’art code bring any value? Did you make a change? What resources did it take? Weren’t there any more important things which would have brought greater value? What is the meaning of the software you’ve just delivered? What’s is role in the big picture? These questions seem banal and trivial, but they aren’t. We should be asking these questions constantly. Start and you’ll see the difference.

  • Test your code, measure your code

Untested code is just a promise. Unmeasured code is hard to learn from or improve. Would you give your money to a complete stranger on a vague promise? Do your testing in many levels, starting from unit testing. Do functional and integration tests. Prove that your code works. Convince others. Push your code to that git repo with a big smile instead of a worried look. Measure your code coverage, code complexity and code smell. Tune. Improve.

  • Seek community with other developers

Learn from others. Discuss problems with others. Take reading their code to a higher level. Help them if you can. Be open-minded, accept and analyse other solutions and ideas.

  • Deliver something useful ever day.

Learn to break down long projects into smaller, deliverable parts. Do milestones. Do tested, proven, working milestones. Deliver something. Show your value. Don’t sit on projects for long weeks. Show your progress. Analysis and synthesis are essential to our trade. Deliver something, now, today. Watch the difference it’ll make in your self-confidence and in how others view you. Be a happier coder.

  • Break away from programming from time to time

Recreation. Different activities, sports, nature. Your body and your brain needs it. Also the best ideas often arise not while sitting and staring at the screen but while walking in the forest.

Lather, rinse and repeat.

Comments

Copyright © 2013 Csaba Okrona . Powered by Octopress