CASoft Blog     CASoft Blog

         Communication Aspects in Software Engineering

16 March 2009

Processes & Methodologies

Filed under: Methodology — Tags: — admin @ 21:26

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!

Share and Enjoy:
  • Print
  • Digg
  • StumbleUpon
  • Add to favorites
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • LinkedIn
  • email

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress and