Practical Agile Development

Coordinating & tracking Software Development effort is a solved elegant methodology, but the practical application is anything but. Let's address that.

Agile Software Development is synonymous with Software Development. I was introduced to the methodology way back in school and have used it in every job since then. Every software engineer in the industry is familiar with the agile methodology, and although there are many competing methodologies (Waterfall, Lean, etc.), most businesses run processes derived from "Agile", whether that's Scrum, iterations (sprints), story points, velocity, burn down, and so on.

Despite how universally familiar this industry is with agile development, and despite how many high-level resources we have on the topic (just Google, "Agile Software Development"), I have yet to find a resource that distills an effective solution for applying the agile methodology into planning and operations. In this article, I intend to resolve that by providing a comprehensive guide on how I have successfully applied agile development with my software teams.

What I will cover

Agile development is a huge topic. I'm going to cover what I believe is essential for your engineering team to be able to plan and work together on business-level tasks. In technical terms, I'll be covering iteration planning and meetings, story points and user stories, velocity, task boards, and other sprinkled topics in between it all.

What I will NOT cover

This article is specifically focused on the aspects of agile development regarding business planning rather than software engineering practices. Topics such as Test-Driven Development (TDD), Behavior-Driven Development (BDD), the SOLID Principles, Continuous Integration and Deployment (CI/CD), Pair Programming, Code Review, Acceptance Tests, etc. are topics worthy of their own research, but way beyond the scope of a single article. For an excellent grasp regarding why these topics are important, I'd highly recommend picking up Clean Agile.

So let's dive into our first topic: scoping and utilizing an iteration/sprint.

Last updated