The use of various project management methodologies is vital in many aspects related to starting, conducting and finishing a project. That's the reasons students and professionals alike need to understand different methodologies so that they are aware of how to go about a particular project. That's the reason, I have written this article which primarily caters to the beginners in this field but students of advanced level and people not aware of anything about it can also benefit from it.
Now I will define the 12 key Agile Principles in plain and simple language with little explanation on my part too so that you can know how this works.
Principle 1: Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
A software is not built just for the sake of building it. The reason mainly is to put to use by a user to perform tasks better. But more often than not, this is not the case. The solution is cut short the distance between requirements and customer feedback by planning minimal alteration at a time. Steering software to satisfy the customer can be achieved by this process.
Principle 2: Welcome changing requirements, even late in development. Agile Processes harness change for the customer's competitive advantage.
This principle is based on the fact that you can implement changes at any moment, especially right the start and don't have to wait for the next system to be built or system redesign. The Project Manager (PM) can shorten the distance between conceiving and implementing a vital change. And it can be done even if it's late in the development process.
Principle 3: Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
The methods before the agile methodology were front-loaded with loads of documentation with completing 100% of the requirements required for finishing off a project. This usually turned into lots of documentation in the end but nothing much to show for it. Agile focuses on this problem by shortening the distance between planning and delivery.
Principle 4: Business people and developers must work together daily throughout the project.
This is one vital aspect because of the fact that it doesn't come naturally to most people. Co-locating the business people and developers is perhaps the best way to deal with it. One can always use communication tools for remote workers. The use of a task management software can also fit the bill.
Principle 5: Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done.
Micromanaging simply shouldn't be allowed in agile methodology. Teams need to be self-directed and reliant on their own. Making certain you have the proper team in place that you can trust is always a major advantage for finishing the project's objective.
Principle 6: The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
To shorten the time between a question and its answer is what is achieved through this principle. This is another reason why co-location or remote work during the same hours is crucial in agile project management. When teams work together, it's much easier to ask questions, make suggestions and lastly to communicate.
Principle 7: Working software is the primary measure of progress.
This is the basic level through which an agile development team should be judged: Is the software working correctly? The reason; if it's not it doesn't matter how much you have typed, debugged, hours worked, etc. A good team needs to produce quality software - all other measures are simply unrelated 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.
Concerning the agile teams, burnout is a common problem when people work at a project for a very long time. The work can be done in short bursts to prevent this to happen. The team members can focus on choosing the right pace and usually the best is the one that allows them to leave the office satisfied in the end even after a tiring effort.
Principle 9: Continuous attention to technical assistance and good design enhances agility.
The clean-up of redundant or confusing codes shouldn't be a concern for the developers. The codes must get better with each iteration. The duty of the agile team is to use scrum tools and take time regarding its solution. This is way better doing it during the project rather than doing it later which can turn into an impossible task.
Principle 10: Simplicity - the art of maximizing the amount of work not done - is essential.
Keeping things simple and minimize the time between comprehension and completion is what this principle is all about. Refrain from doing things which don't matter much like pretending to be busy as this practice is prevalent in the corporate culture. One can keep track of things like counting the work hours smartly by using a task management software.
Principle 11: The best architectures, requirements and designs emerge from self-organizing teams.
A great team doesn't need direction from anyone. They write their script themselves about what needs to be done by clearing obstacles and finding solutions cleverly. A red flag should be in place 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 is the way to go in this last and crucial agile project management. If someone is doing things a certain way for a long time doesn't mean that it is still the best way to do it. If the PM or some member finds out that there is a better way of moving forward a project, then they should go ahead and implement adjustments.