What do you know about Processes?
Dictionary definition: Processes are operational systems for supplying or realising products. Processes may include separate stages with clearly defined end-points, which represent significant new or enhanced steps towards a final result.
Processes are usually integrated within a “more comprehensive” Methodology.
Methodologies could be and must be tailored, according to company’s and project’s objectives.
Does it ensure quality?
Yes… It helps ensuring products meet quality requirements, providing best practices to implement and standards to meet.
Does it make everybody’s life easier?
Yes… It helps reducing stress and frustrations, providing a frame for organisation, so people know what to expect and what is expected from them.
Does it save money?
Yes… It helps saving money, ensuring that the cost of adding new features and maintaining the product does not increase exponentially with time, which often force companies to redevelop their products from scratch after a while…
Conventional methodologies
The Capacity Maturity Model Integration (CMMI)
• developed by the US Department of Defence (DoD) in order to manage uncontrollable costs
• currently undertaken by Boeing or the NASA for example
• defines 24 different processes
The Rational Unified Process (RUP)
• developed by Rational, now merged with IBM
• very trendy in Europe
• defines 9 different processes
IT Infrastructure Library (ITIL)
• global methodology, not just software development
• developed by the UK Office of Government Commerce (OGC) in order to reduce costs
• defines a lot of different processes, packaged within 7 CDs
Project IN Controlled Environment (PRINCE2)
• project management method
• developed by the OGC
• defines 9 different processes
Agile Programming methodologies
eXtreme Programming (XP)
• developed by an individual, Kent Beck
• in use within Mercedes-Benz and Ford for example
• defines 7 practices (or processes)
Feature Driven Development (FDD)
• an Australian methodology
• trademark of the company Nebulon Pty Ltd
• in use within ‘Yes’ OPTUS telecommunication in Brisbane
• defines 5 processes
What are the main differences between Conventional and Agile Programming Methodologies?
Conventional methodologies
• requirements are unearthed at the start / elaboration phase
• models hold the design
• documentation is important
Agile programming methodologies
• requirements are unearthed again for each delivery
• code holds the design
• persons are important
What is it that all the methodologies are trying to eliminate?
Fire-fighting mode:
When some individuals, acting as heroes, are jumping from problem to problem, constantly saving the project from burning down completely.
Panic mode:
When the defined rules are not followed anymore, left aside, in order to rush forward (or to “fly by the seat of one’s pants”).
Conventional or Agile?
Up to recently, Conventional methods were considered the only option for large projects, while Agile ones were considered fast and practical for smaller projects.
Nowadays, Conventional methodologies claim to be more agile, and Agile ones claim to be able to manage larger projects…
Whatever the method, it must be tailored to meet project’s and company’s needs…
Are tools needed to implement a methodology?
NO… Not necessarily.
Tools can help, in certain situations, to increase productivity, however Processes are not about tools…
They are about people!