Cross-Functional, Self-Managed Teams
Developing software cannot be done in a silo; it takes different people with different skill sets working together to get the job done. Whether business or technical, front-end or back-end, developer or tester, all roles are required to get your software to your customers. A stream-lined process has all these people working together on a piece of software until it is ready to be delivered to the customer. Team members need to feel free to voice their opinion, and provide corrective criticism. There is no ‘leader’ of the team, just team members with varying skills, jobs, and experience.
Backlog
The Backlog is an ever-present list of features and / or tasks that are prioritized by management or company executives. This serves as the basis for what the teams will be doing in each Iteration. If you do not have a Backlog, your company is not ‘Agile’.
Acceptance Criteria
In order to meet the small time intervals with customer-ready quality, each item in the Backlog MUST contain Acceptance Criteria. This ensures that all stakeholders are informed on what the tasks are, and what the software will need to do. Without this, Developers don't know what to produce, Testers don't know what to test, and therefore work estimates cannot be given with any degree of accuracy. If the items in your Iteration do not have Acceptance Criteria, your company is not ‘Agile’.
Backlog Grooming
Backlog Grooming is vital to the success of the team, and is very commonly overlooked. This is where the team reviews the next several items in the Backlog, ensures that they contain adequate Acceptance Criteria, and provides an estimate as to the complexity or effort of work that the Backlog items will take. If you are not regularly grooming your Backlog or tasks are being worked on without Acceptance Criteria or estimated effort, your company is not ‘Agile’.
Iteration / Sprint Planning
The ideology of Agile Software Development is to deliver quality, customer-ready software in short time periods (called Iterations). Iteration Planning is where the team accepts the top-ranking items from the Backlog, and commits to finishing them within the time frame of the Iteration. Each Iteration is different (given holidays, vacations, etc.), so this step is crucial to ensure the team is not over-burdened, or under utilized. If you are not planning each Iteration, your company is not ‘Agile’.
Continuous Integration
If you work in groups of people, and in time blocks called ‘Iterations’, does that mean your company is Agile? in small time intervals. At the end of any of these intervals, the produced deliverables can (and should be) reviewed with all Stakeholders (yes, even the customer). If this is not being done, your company is not ‘Agile’.
Iteration / Sprint Retrospective
Any functional relationship must consist of some self-analysis, and and Agile Development Team is no different. Regular analysis and correction is vital to ensure that all people have a voice, and constant improvements to the team are put in place. If your team is not conducting regular retrospective meetings, your company is not ‘Agile’.