Rather than being IT-specific I would say that these are simply 5 principles for reducing project failure:
1. Communicate: If everyone involved in your IT project doesn’t know what they’re working on, when it’s due, how to get it done and who the audience is, how can you possibly expect your project to succeed?The aim is to ensure that everyone in the project knows what is going on, what is expected, when it's expected, for whom it's expected, etc. Nobody is then treated like a mushroom kept in the dark and fed fertiliser.
2. Consolidate: We’re talking about information and tasks here.If you can't find the right information for what you're working on, or it takes you a long time to find it, you are wasting time and effort that can be better spent working constructively towards your project goals. Reduce bureaucracy, cut through the red tape and put information within easy reach so everyone can do the job that they are supposed to be doing.
3. Prioritize: Issues come in, bugs are discovered, and new application features are conceived of every day.Dropping everything to work on a just-reported bug, or to do a "quick job" for someone is probably not the best use of someone's time. The bug may be of lower priority than what you are currently working on. The "quick job" is a distraction where your time can be better spent working on something delivering higher value.
4. Requirements: In ALM and your SDLC, before you can do anything else, you need to identify, prioritize and agree on application (and project) requirements.It is fundamental that you need to know what the requirements are before you work on something. Once requirements are elicited, they can be analysed and prioritised. Misunderstandings can be removed to ensure that the project team and stakeholders are of one view as to what the requirements are. Understood requirements mean that something can be designed and built. Understood requirements mean that a plan can be made to test them.
5. Manage Time: As management, it’s up to you to take the first step in setting reasonable deadlines and milestones for your team throughout the project.Knowing where you are in a project, where you should be and how fast you are delivering are vital pieces of information in determining what will be delivered by when.
Alternatively, these are just, 5 Agile/Scrum principles.
1. Communicate
Scrum revolves around a cross-functional, self-organising Scrum Team that has a daily stand-up meeting where every team member communicates what he did the previous day, what he is committing to do today and if he has any blockages or impediments.
Developers, testers, DBAs, designers, BAs are all kept informed of what all the other members of the Scrum Team are doing.
Scrum also involves the whole Scrum Team being involved in the Sprint Planning.
The Scrum Board and Burndown Chart should be visible to all, so everybody can see what the Scrum Team is working on, and what their progress is - instant reporting!
2. Consolidate
Agility is about individuals and interactions being valued more than processes and tools, and about working code being valued more than comprehensive documentation. "Muda", one of the Toyota Principles, is focused on removing waste, where waste means wasted materials but also means wasted time and effort.
Agile practices refer to doing "just enough" or doing what is "sufficient and necessary". Agile teams commonly use wikis to document information, they record requirements on cards or Post It notes which are kept on the Scrum Board (or Kanban Board).
3. Prioritise
Scrum requires the Product Owner to prioritise work. The Scrum Team only works on what is currently the highest priority collection of requirements. Requirements should be prioritised so that the ones delivering the highest business value are delivered first. Also, those requirements which eliminate the most risk should also be prioritised highest.
Considering simply high and low business value and risk, the best order in which to prioritise requirements according to their business value and risk is:
- High risk, High business value
- Low risk, High business value
- Low risk, Low business value
- High risk, Low business value
Bugs, new requirements, existing requirements all go on the backlog and are prioritised accordingly.
4. Requirements
Scrum can not proceed without requirements.
The list of requirements is maintained in a Product Backlog, in priority order (c.f. Prioritise)
5. Manage Time
Scrum sets regular deadlines for the Scrum Team to commit itself to delivering working software satisfying the requirements.
Progress is visible on the Scrum Board - which presents a snapshot of progress in terms of what's Done, what the team are Doing and what's still To Do. Progress is also visible in the Burndown Chart which shows the rate of progress.
Requirements and tasks are estimated by the people who will do the work - acknowledged to be more accurate than estimates by people who do not do the work - and that knowledge is used to set realistic expectations.
Daily reporting in the Daily Scrum means that people are held accountable to the whole Scrum Team for the commitments they make each day.
So, 5 principles for reducing IT project failure are satisfied by Agile practices. Though I often remark that what are often regarded as Agile practices (coding standards, continuous integration, etc.) are just good engineering practices. So, Alistair Cockburn is right that Agile is the norm - it's just good practice.
No comments:
Post a Comment