Agile Best Practices in Project Management
Agile in Project Management
The Agile project management methodology is based upon the continual and incremental process models with main foucs on adaptability to changing product requirements and enhancing customer satisfaction through rapid delivery of working product features and client participation. Agile life cycle focuses on breaking up large processes in software development cycle into smaller and incremental cycles which helps to create a product with shippable features meeting customer satisfaction.
Agile Best Practices
Test-driven development is a software development process that relies on developmental cycles that are short and repeated. In Test driven programming, requirements are converted into very specific test cases then the software is tested to make sure it meets these test cases before releasing.
A test driven life cycle looks like this:
1. 1. Add a test
2. Run all tests and see if the new test fails
3. Write the code
4. Run tests
5. Refactor code
Pair programming is a technique in which two programmers work together at the same workstation. One of the programmers, assigned as the driver, writes code while the other, assigned as navigator, reviews each line of code as it is typed in by the driver. The two programmers switch roles frequently.
While reviewing, the observer also considers the “strategic” direction of the work, coming up with ideas for improvements and likely future problems to address. This is intended to free the driver to focus all of their attention on the “tactical” aspects of completing the current task, using the observer as a safety net and guide.
Refactoring consists of improving the internal structure of an existing program’s source code, while preserving its external behavior. Its the process of clarifying and simplifying the program’s code.
A common codebase is, simply, shared by as many programmers on the team to reduce the rework done. It lets the developers to pick up the code from the codebase and modify it as per their needs and getting work done faster.
Continous Integration is where all the developer’s local working code base will be merged to share with a common repository several times during the product development.
It was first adopted as a part of Extreme Programming (XP). The main purpose of Continuous Integration is to prevent developers stepping over each other code and eliminate integration issues.
Coding standards are a formalised set of rules and practices that developers can adhere to when writing code which ensures that the code is easily readable, maintainable and extensible and reduces the risk of introducing bugs.
Agile teams are under pressure to deliver working, tested code at the end of each iteration. They are also available to their customers for potentially radical requirements changes at any point in the project. They and their code must be capable of turning on a dime at any moment. So agile teams place enormous value on the extensibility of their code: the extent to which they can easily maintain and extend it.
Open Work Area
Agile stresses instant and easy communication and is built on teams working efficiently together. This necessitates an open work space environment.
A characteristic of an effective team is a high level of collaboration, making the physical work environment an important factor. Cubicles should be eliminated in favor of an open work space in an effort to produce a higher level of collaboration, and thus provide more value to the business and a higher level of employee satisfaction.