Thursday, 29 November 2012

Functional Programming Animation

Note: The image below will play best on web browsers Chrome and Firefox.

This animation was created using the Haskell programming language. 

Thursday, 26 July 2012

Compare and contrast ‘agile’ and ‘plan-driven’ system development methodologies

Copyright: Michael Lashley, Computer Science Student, City university London
Business Systems  
19th March 2012


System development methodologies are the approaches use to design, develop, and create software as a solution in problem domains. In this essay we compare and contrast two related but different software development methodologies. Both agile and plan driven system development methodologies command their space in the field of system development as they both have advantages and disadvantages. It is said that “Managementtteamstthatllacktthe ability to work well with plan-driven approaches mayllacktthe discipline required of agile approaches.”(Wilson, 2006-10: 7)1 This shows that our ability to work with one of these methodologies is dependent on our skills in working with the other.


“Projects need to be managed because professional software engineering is always subject to organisational budgets and schedule constraints.”(Summerville, 2011: 594)2 Plan driven project developments takes full advantage of organisation through heavy documentation in order to meet client’s needs. An advantage of plan-driven software development is that it caters for long term problems such as management team change as new teams can embark on projects run by previous teams with little disruption or delay due to the availability of documentation about a project.

“Agile methods are incremental methods that focus on rapid development, frequent releases of the software, reducing process overheads and producing high-quality code.”(Summerville, 2011: 77)2 As represented in the below diagrams agile software develop presents a platform that allows developers to complete projects in tight deadlines as  the level of documentation is vastly reduced compared to plan driven development methods.

The heavy documented nature of plan-driven methodologies can be a disadvantage under certain circumstances, as compiling the documentation is a very timely process and does not lend itself well to future modification. “Supporters of the agile methods argue that documentation is frequently not kept up to date and is not of much use for long term system maintenance.”(Summerville, 2011: 64)2Another disadvantage to plan driven development is that once the implementation process has started making modifications is problematic and will involve the adjustment of the original specification, budget, and deadlines. 

Agile software development is dependent on a very skilled and experienced team as software models and iterations are development on a weekly basis. Whereas plan-driven development relies on the documented specifications and testing established at the beginning of the project thus being less demanding on the teams skill set.


“Agile methods are most effective when the system can be developed with a small co-located team who can communicate informally.”(Summerville, 2011: 63)2 Scrum agile software developments is said to be one of the most used agile software development methods. As shown in the diagram below the project is divided by the scrum master into sprints which can be reviewed and edited making this method of development suitable for small projects.

A very popular and widely used plan based development method is the waterfall method. This software development method would be most suited for large scale projects operating at different locations as the high level of organisation helps with coordinating large teams and monitoring progress.


Before software development methods are chosen for any project the following must be considered “Type of software being developed, the capabilities of the development team, and the culture of the company developing the system.” (Summerville, 2011: 77)2 In my opinion the key to a successful completion of any project when using development method is the relationship and communication between management and the team members. The determining factors in deciding which methodology to use must always be the nature of the project the budget available and the time available for completion.

1.    Craig D. Wilson, Matincor, Comparing Plan-Driven and Agile Project Approaches, Inc. Copyright 2006-2010, (at, (accessed: 16 March 2012)
2.    I. Summerville, Software Engineering, Ninth Edition, copyright 2011, 2006, 2005 2001, 1996 Pearson Education, Inc., publishing as Addison Wesley
Chapter 22, Page 594 and Chapter 3, Pages 77, 64 and 63
Image 2, Chapter 3, Page 63, Figure 3.2 (Plan-driven and agile specification)
Image 3, Chapter 3, Page 73, Figure 3.8 (The scrum process)

3.    City University, Software Engineering, Lecture Slides, copyright 2000, 2012 (Attributed to Winston W. Royce (1970)) Image 4, Slide 2.9

Copyright: Michael Lashley, Computer Science Student, City university London
Business Systems
19th March 2012


Hi All

This is my blog it contains everything Lashley all my views, ideas and work. I will be covering topic and issues from art to computer science Hope you enjoy.