A long time ago I borrowed a quote from a colleague: “A developer is not obliged to excellence but is required to learn.” In other words, we all make mistakes, it’s normal and acceptable if we are able to learn how to fix the errors and therefore not to repeat them. So what should we learn? To better code? Another programming language? What should an agile developer know?
As I try to explain in this article, it’s more complicated than that. In software engineering, if we think about what an agile developer needs to know, we realise that it requires much more than to be good with a programming language. So here’s 10 things I believe and agile developer should know, based on my experience.
10 things an agile developer should know
1. Do quality code (encapsulated, cohesive, without coupling, non-redundant, testable and study design patterns).
2. Control your environment (using a good IDE, debugging beam generates good logs, optimises and automates tasks).
3. Learn about code versioning (define your policy branches, working as a team, learn to use your svn, git or your favourite manager versions).
4. Construct yourself (essential to work better and with higher productivity with continuous integration).
5. Make TDD (Test Driven Development). TDD is not only a way to program, it is one of the most important pieces of agile and its real implications for everyday go far beyond what you think. Read more about it here.
6. Learn OOP (Object Oriented Programming), really.
7. Refactor (Ultimately improves code providing the same functionality to get the best of functional scalability).
8. Accept change (Plans are nothing, adapting is everything).
9. Don’t forget about some agile practices & methodologies to plan and estimate (Scrum, Kanban, etc.).
10. Study well the concepts and do not pass to another one until the previous one is clear.