Instituting the agile development life cycle in an enterprise requires technology talent. I made this statement in Getting Enterprises Executives to buy into an Agile Development Lifecycle. Here are my top 5 attributes of talented agile developers and what I meant by 'technology talent':
1. Agile thinkers are fast thinkers. They solve problems quickly and look for easy solutions. They are not afraid of what they do not know and are quick to research what they need to know. They understand that a B solution, in an academic sense may be an A solution in a business or technology sense.
2. They are excellent communicators. Agile is practiced in teams. The workspace at BusinessWeek is open and often noisy with people thinking through solutions. It's very common for someone from the Business team to come in and ask questions. Gone are the days of the guru developer buried at his or her workstation.
3. They must understand and practice Quality Assurance. While Test Driven Development is not part of the agile manifesto, some form of it is often practiced in agile life cycles. Why? Because in order to deliver production quality software at the end of an iteration, developers must participate in the testing process. In other words, most testing (not all - subject for another day) must occur in cycle. Developers need to do a combination of unit testing and providing the right test harnesses for QA early in the development cycle.
4. Agile developers need to know how to read and enhance other people's code. If your iterating, then you're building on top of an existing code base. In most situations, that means you're enhancing code written by someone else, so you better find developers that can read, reverse engineer, and refactor an existing code base.
A corollary to this: Developers need to know how to write code that is readable. Because someone else will be editing their code, because the best documentation is code that follows good naming conventions and engineering practices, and because agile deemphasizes documentation. Simple code reviews can help!
5. Agile developers need to be open minded and open to changes. Because after all, the business is going to adjust priorities every development iteration. Because developers will have to help make the business case for addressing technical debt. Because the agile development process and supporting processes will evolve depending on business needs.
Notice, no where do I mention that agile developers have to be the best or fastest Java/.Net/PHP programmers!
continue reading "Top 5 Attributes of Talented Agile Developers"
1. Agile thinkers are fast thinkers. They solve problems quickly and look for easy solutions. They are not afraid of what they do not know and are quick to research what they need to know. They understand that a B solution, in an academic sense may be an A solution in a business or technology sense.
2. They are excellent communicators. Agile is practiced in teams. The workspace at BusinessWeek is open and often noisy with people thinking through solutions. It's very common for someone from the Business team to come in and ask questions. Gone are the days of the guru developer buried at his or her workstation.
3. They must understand and practice Quality Assurance. While Test Driven Development is not part of the agile manifesto, some form of it is often practiced in agile life cycles. Why? Because in order to deliver production quality software at the end of an iteration, developers must participate in the testing process. In other words, most testing (not all - subject for another day) must occur in cycle. Developers need to do a combination of unit testing and providing the right test harnesses for QA early in the development cycle.
4. Agile developers need to know how to read and enhance other people's code. If your iterating, then you're building on top of an existing code base. In most situations, that means you're enhancing code written by someone else, so you better find developers that can read, reverse engineer, and refactor an existing code base.
A corollary to this: Developers need to know how to write code that is readable. Because someone else will be editing their code, because the best documentation is code that follows good naming conventions and engineering practices, and because agile deemphasizes documentation. Simple code reviews can help!
5. Agile developers need to be open minded and open to changes. Because after all, the business is going to adjust priorities every development iteration. Because developers will have to help make the business case for addressing technical debt. Because the agile development process and supporting processes will evolve depending on business needs.
Notice, no where do I mention that agile developers have to be the best or fastest Java/.Net/PHP programmers!