There is no agility without technical excellence
While Agile emphasizes the importance of individuals and interactions, working software, and customer collaboration, it is also essential to have technical excellence in order to be truly agile.
Who wants to be Agile?
We talked about Agile software development in the first post: you can access old posts from this link, but in short, Agile is an approach that values flexibility, collaboration, and customer satisfaction. It is a set of values and principles that guide the development of software in an iterative and incremental way.
While Agile emphasizes the importance of individuals and interactions, working software, and customer collaboration, it is also essential to have technical excellence in order to be truly agile. Technical excellence refers to the ability to design, develop, and deliver high-quality software efficiently and effectively.

What is Technical Excellence
Technical excellence in programming refers to the ability to design, develop, and deliver high-quality software efficiently and effectively. It involves a combination of technical skills, knowledge, and experience, as well as the ability to apply these skills and knowledge in a practical and effective manner.
Some of the top-notch skills and practices to master in order to achieve technical excellence are, for example, TDD, Pair/Mob programming, and Continuous Integration.
Without technical excellence, Agile teams may struggle to deliver functional software on time, leading to delays and frustration for both the team and the customer. Technical excellence is especially important in Agile because it allows teams to respond quickly to changing requirements and priorities.
One (baby) step at a time
To achieve technical excellence, teams need to focus on continuous learning and improvement. This may involve investing in training and education for team members, implementing best practices and tools, and regularly reviewing and refining processes.
Technical excellence also requires a focus on quality, including testing and debugging to ensure that the software is reliable and meets the needs of stakeholders.
Conclusion
In summary, Agile software development is a flexible and collaborative approach that helps teams deliver high-quality software faster and more efficiently. However, without technical excellence, Agile teams may struggle to achieve these goals. By prioritizing continuous learning and improvement, as well as a focus on quality, teams can build the technical skills and expertise needed to be truly agile.
Micro-learning
These are the courses available on our platform micro-learning platform on EdApp about Agile and technical excellence.
Available courses
These are the courses you can find on our platform micro-learning platform on EdApp:
Pair Programming - a software development technique in which two developers work together on the same computer that enables faster feedback and higher quality, course available here
Coming soon courses
These are the courses we are working on that will explore Agile Principles and their various application in the real world:
Agile Manifesto and Principles
eXtreme Programming
Scrum
Kanban
We will keep you updated every time a new course is released, so stay tuned!
Go Deeper
Here are some resources you can check if you want to go deeper and learn more about what Technical Excellence really means and why it is fundamental to achieve Agility.
Books
Agile Technical Practices Distilled - a gold mine that gives you a good starting knowledge of all the fundamentals skills and practices for software development
Online
"What Does Technical Excellence Look Like?" - Martin Fowler talk from Thoughtworks website