freethan / dv-manifesto

Thoughts on how to live a productive life being a developer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Developer Manifesto

Thoughts on how to live a productive life being a developer


Demand clear objectives

You can only deliver the best of you, when you know what it is about.

Think first, code later

Spend considerably more time analyzing the problems at hand and then get your hands dirty.

Embrace, debate, optimize

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.

Prototype and explore

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?

Iterate

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.

Test test test

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.

Ask and answer the why and the how

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.

Choose a workflow for committing and sharing code

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

Document your code and deliverables – You are not alone and you will probably will not remember in 6 months time.

Edit yourself

Keep some things for the next iteration cycle. Learn to prioritize what is more important in delivering a Minimum Viable Product.

Review and get reviewed

Friends don't let friends ship without a review.

Stage often

Put your deliverables to test in near-production environments. Avoid surprises on the "big day".

Deploy early

The more often you put your deliverables out there, the more chances you have to get feedback and proceed with the next iteration.

Fail fast

Failure is not a problem if there are lessons learned. The next iteration should incorporate those lessons and make you a better man.

Be honest

Express yourself. Don't be shy. But be polite.

Don't be afraid to ask

No man or woman is left behind

Automate

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.

About

Thoughts on how to live a productive life being a developer

License:MIT License