Selecting a methodology for a project

What this guide covers

A brief overview of methodology (also referred to as process models, methods or lifecycles) and how to select one for a given situation.

Reading this is not sufficient to complete the coursework. You will also need to research a number of process models.

What is a process model?

The process model is a model at the highest level of abstraction; that is it models the whole software development or data science project process.

There is no universally applicable process; different situations require different approaches.

There are typical activities for software development and data science that most processes will cover. However, there are many variations and not all processes cover all activities.

There are also frameworks or guidelines intended to help you select the most appropriate processes for a given situation.

Typical activities in a software development process model

According to Ian Sommerville (2011) a software process typically includes 4 stages:

Typical activities in a data science process model

The data science process provides a systematic approach to solving a data problem. Typical stages include:

How can you select a process model for a given project?

There is no single method for selecting an appropriate process model to use for a given project.

An approach that could be used for the coursework is:

  1. Choose selection criteria that are relevant to your project.
  2. Select a shortlist of methodologies.
  3. Carry out research to determine the extent to which each methodology meets your criteria.
  4. Select the methodology that best meets the criteria.
  5. Optionally, consider if there are any concerns with your choice.

You could carry out your own research and determine an approach to selecting a method. For example, use Google Scholar or UCL Library Explore and search e.g. 'how to choose a software development methodology', 'factors affecting the choice of data science methodology'. A few example papers include:

There are also online articles where the authors provide their own criteria and ranking for various methods, again if you search you will find results such as:

1. Choose selection criteria that are relevant to your project

What criteria do you imagine could be important to you and your team when choosing a methodology to use for the coursework project?

Think of the project not just as COMP0035 coursework 1, but as the whole project to design, develop and test two data science web applications:

  1. An app that allows other developers to get data programmatically from your dataset
  2. A web app that gives data related features (perhaps a data dashboard or an app that gives predictions)

Think about how may selection criteria to have, too few, and you might find there is not enough to make a decision, too many, and you may have too much information to reach a clear decision.

Below are some suggestions, though you can carry out research as to how organisations and others choose a process model.

You could use the grid such as the following to record your criteria (the methodology names are covered in the next step).

Method:

Criterion
1 {insert name}

2 {insert name}

3 {insert name}

1 {insert criterion 1}




2




3




4




5




Potential criteria:

For example, if you were creating a diagnostic app to determine whether a patient has a particular disease for the NHS, and were part of a large NHS software development team based in several sites around the UK, the following selection criteria might be most relevant:

2. Select a shortlist of methodologies

Given the criteria you selected above, find a shortlist of ~3 methods to compare.

The following links give summary information of some of the more popular methodologies. The list includes both software development and data science methodologies.

The table suggests where they are most likely be used; this does not mean a given model cannot be used for a different type of project.

Method Type, Origins etc.
Cross-Industry Standard Process for Data Mining (CRISP-DM) Data science
Domino data science lifecycle Agile, Data science
Dynamic systems development method (DSDM) Agile, IT projects
Essence An Agile meta method rather than a methodology. It is a framework for selecting components from other methods.
Extreme Programming (XP) Agile, Software development
Feature driven development Agile, Software development
Kanban Agile, Software development
Obtain, Scrub, Explore, Model, and iNterpret (OSEMN) Data science
SAFe Scaled Agile Agile, Software development
Scrum Agile, Software development
Team Data Science Process (TDSP) Agile, Data science
Waterfall Waterfall, Systems

3. Carry out research to determine the extent to which each methodology meets your criteria

Use the links in the table above, the course reading list; or search for materials using UCL Library explore or other research tools.

Try and find evidence that supports whether the methodologies you are researching meet your criteria. Keep a note of any references and include these in your work.

4. Select the methodology that best meets the criteria

Given your research, which methodology do you now think best suits your criteria?

5. Optionally, consider if there are any concerns with your choice

Optionally, consider if there are areas where you don't feel the methodology is well suited, or you have concerns:

Organisations often adapt methodologies to their own needs, and may add extra techniques from another model.

There are frameworks such as, Essence which is an agile framework that suggests what generic activities are needed and then allows you to select the specific way to carry out those activities from a range of methodologies.