Thoughts on how to live a productive life being a developer
You can only deliver the best of you, when you know what it is about.
Spend considerably more time analyzing the problems at hand and then get your hands dirty.
As workflows and approaches to problem-solving change rapidly, have an open mind to something new but do put it under a microscope before fully diving in. Optimize these processes and approaches when possible and give feedback.
Not all tools are made for all jobs. Prototyping and exploring new ways to approach problems, allows you to compare tools and test concepts before they reach production. Why buy a Ferrari when all you need is a Lada Niva?
Taken from Addy Osmani:
First do it, then do it right, then do it better.
When given a choice, code slower and with an "extensible" base in mind, rather than coding fast and then tearing it down.
When applicable, take the time to add some extensibility hooks and defensively code for the future rather than coding "quick and dirty" for the NOW and HERE.
Experience shows that even if you can be fast in developing a solution, you spend considerably more time when asked to alter it.
Provide as many as possible testing fixtures for the code / solutions you provide.
Testing allows you and people not familiar with the project to contribute and optimize while testing a deliverable's expected behaviour.
There is no holy approach or workflow. Even if the team has accepted and is working well with such structures, things are always open to well-intended critique, concept evolution and better alternatives.
As important as it is to manage versions of your source code, it is equally important to evolve it in a parallel fashion.
E.g. producing a feature while at the same time creating a patch for an already live version of the source code.
Document your code and deliverables – You are not alone and you will probably will not remember in 6 months time.
Keep some things for the next iteration cycle. Learn to prioritize what is more important in delivering a Minimum Viable Product.
Friends don't let friends ship without a review.
Put your deliverables to test in near-production environments. Avoid surprises on the "big day".
The more often you put your deliverables out there, the more chances you have to get feedback and proceed with the next iteration.
Failure is not a problem if there are lessons learned. The next iteration should incorporate those lessons and make you a better man.
Express yourself. Don't be shy. But be polite.
No man or woman is left behind
How many tentacles shall we grow today Sir? Automation will try to remove the day-to-day burden of repeating, trivial (or not so trivial) tasks that need 0 to little human interaction.