Agile Project Management
Jim Rohn once famously said:
​
"Success is neither magical nor mysterious. Success is the natural consequence of consistently applying the basic fundamentals."
​
In the world of software development, the same rules apply. If you and your team are struggling with agile project management, it doesn’t mean that agile can’t work for you. Oftentimes, it just means that you need to get back to the basics.
​
And that brings us to the 12 principles of Agile project management.
​
Principle 1: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
​
Software is not built for the sake of building software. It’s built to be put to use by an end user to better perform tasks that were previously out of reach, solve a problem, do their job better or more efficiently, etc. But often, the highest priority of software development is forgotten.
So, how can you better align with this principle?
Shorten the distance between requirements gathering and customer feedback by planning less change at a time. This gives you more opportunity to steer the software in a satisfactory direction for the customer.
​
Principle 2: Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
​
You can implement changes now -- you don’t need to wait for the next system to be built or a system redesign.
Shorten the distance between conceiving and implementing an important change. And even if it’s late in the development process, don’t be afraid to make a shift.
​
Principle 3: Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
​
Previous development methods were front-loaded with tons of documentation under the guise of completing 100% of the requirements needed for a particular project. But towards the end of the project, the usual result was just that -- lots of documentation, but nothing to show for it.
Agile project management focuses on shortening the distance between planning and delivery. So, focus more on creating software rather than just planning for it. This gives you the opportunity to improve the efficiency and effectiveness of the work.
​
Principle 4: Business people and developers must work together daily throughout the project.
​
This one is crucial, especially because it doesn’t come naturally to most people. Co-location between business people and developers is usually the best way to handle this. You can also use communication tools for remote workers. It helps the two sides better understand each other and leads to more productive work.
​
Principle 5: Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
​
There should be no micromanaging in agile project management. Teams should be self-directed and self-reliant. Make sure you have the proper team in place that you can trust to complete the project’s objectives.
​
Principle 6: The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
​
Put simply, you want to shorten the time between a question and its answer. This is another reason why co-location or remote work during the same hours is key in agile project management. When teams work together under the same (virtual) roof, it’s much easier to ask questions, make suggestions, and communicate.
​
Principle 7: Working software is the primary measure of progress.
​
This is the primary metric an agile development team should be judged by: Is the software working correctly? Because if it’s not, it doesn’t matter how many words have been typed, bugs have been fixed, hours have been worked, etc. A good team needs to produce quality software -- all other measures are pretty much irrelevant if you can’t get it working correctly.
​
Principle 8: Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
​
When working on the same project for a VERY long time, burnout can be a common problem among agile teams. To prevent this, work should be done in short productive bursts because excessive overtime cannot continue indefinitely without impacting the quality. Focus on choosing the right pace for the team members. Usually, the best pace is one that allows team members to leave the office tired yet satisfied.
Principle 9: Continuous attention to technical excellence and good design enhances agility.
​
Developers shouldn’t wait to clean up redundant or confusing code. Code should get better with each iteration. The agile team should use scrum tools and take time to review their solution. Doing this during the project saves you way more time than cleaning up code “later” -- which can also mean never.
​
Principle 10: Simplicity -- the art of maximizing the amount of work not done -- is essential.
Keep things simple and minimize the time between comprehension and completion. Avoid doing things that don’t matter -- such as the “busy work” that is so prevalent in corporate culture. Keep track of your team, count the hours worked in a fun way by using project management tools like Dashable, Trello, and InVision.
​
Principle 11: The best architectures, requirements, and designs emerge from self-organizing teams.
A great agile team takes it’s own direction. Members don’t need to be told what needs to be done -- they attack problems, clear obstacles, and find solutions. It should be a red flag if the project manager has to micromanage.
​
Principle 12: At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
​
Inspect and adapt -- this is a crucial principle in agile project management. You’ve done things a certain way for a long time, but that does not mean this is still the best way of doing things. If there is a better way of moving a project forward, the team should implement adjustments.
​