Software Development Methodologies in Industry By: Ahmad Deeb
Methodologies Software Development Methodologies in Industry Presentation outline SDM definition Project and analysis approach Research methods Project objective Survey objectives Survey results & finding Future study
Methodologies Software Development Methodologies in Industry What are Methodologies?
Software Development Methodologies A methodology is composed of one of the software development lifecycles used in conjunction with one or more techniques.
Lifecycles & Techniques - 1 Lifecycles - Waterfall - Prototyping - Spiral - Coding technique - Iterative - Object-Oriented Oriented - Incremental - Clean-room - Agile Techniques The techniques used to support in software lifecycles.
Lifecycles & Techniques - 2 Development Development Prototyping Spiral Object-oriented analysis Testing Clean-room Description: Software projects using spiral lifecycle may combine prototyping with object-oriented oriented analysis and design, and also use clean-room testing technique.
Development lifecycles - 1 The project targets development methodologies used in industry. The survey specifically refers to the following lifecycles: Waterfall Agile Incremental Spiral Iterative
Project and Analysis approach A systematic approach Project objective Report Research Method Survey objectives Analysis Collected data Questionnaire design Questionnaire construction implementation
Survey: Research methods -1 Is often an investigation performed in retrospect, when, for example, a tool or a technique, has been used for a while. The primary means of gathering qualitative data are interviews or questionnaires. The results from the survey are then analysed to derive descriptive and explanatory conclusions. [Wohlin[ Wohlin]
Research methods - 2 Case study: Case studies are used for monitoring projects, activities or assignments. Data is collected for a specific purpose throughout the study. Based on the data collection, statistical analyses can be carried out.
Research methods - 3 Experiment: Normally done in a laboratory environment, which provides a high level of control. Subjects are assigned to different treatments at random.
Selected method - 1 In the light of the previous explanations, I have decided to conduct a questionnaire survey. Firstly, the research project is based on the practice and usage of the software development lifecycles and techniques in industry. Also, one of the research objectives is to collect data from people who are practicing and have knowledge and solid experience in software development methodologies in our industry.
Selected method - 2 Secondly, conducting a questionnaire survey by sending emails to intended participants is quicker and cheaper than other methods. Thirdly, based on the statement The primary means of gathering qualitative or quantitative data are interviews or questionnaire [13], collecting data by conducting a survey is more beneficial and more suitable to my research objectives.
Project objective - 1 To investigate/examine and evaluate what & how development methodologies are used in industry. To ascertain what can be learned from their usage and what makes them beneficial, and why they are less suitable for certain projects or situations. Identify the benefits, strengths, weaknesses, advantages and disadvantages of these methodologies.
Project objective - 2 Based on the project research/study, investigation and evaluation, a useful table shall be produced to help software developers lean more about choice of methodologies. Which of the development methodologies are not useful for industry and why? Which development methodologies can be proven to be beneficial? What problems are there in implementing particular methodologies?
Survey objectives Survey/questionnaire objectives are to collect and relate (variously) the following data: Usage of software development methodologies in organisations. Organisation size Techniques used with the various development lifecycles Organisational culture and work environment Investigate individual project, by collecting the following: Project status and duration Project complexity Software development lifecycle and techniques used in project. Rate of change in project Project constraints Project criticality Team factors in the project Management/leadership experience General information based on participants experience
Survey results - 1 The data of the survey was extensive The survey included both public sector and private sector 110 emails were sent, about 20 emails sent by third party, (total of 130 emails) 22.3% response rate (expected 20%)
Survey results - 2 Organisation cultural factors were assumed influence use of development methodologies. The analysed data showed no clear evidence to support the assumption.
Survey results - 3 Organisation size and team size did not determine the suitability of particular methodologies. Difficult to draw conclusion on the relationship of these factors on development methodologies.
Survey results - 4 No evidence found to support the assumption of the influence/effects of project factors such as complexity, quality, time pressure, project size, budget, project type, technology, change in requirements and project criticality on the use of a particular lifecycle.
Survey results - 5 Leaders and team members with low experience, using informal communication methods, incomplete requirements, no project deadlines, infrequent meetings affect the implementation of incremental methods to enforce process.
Survey results- 6 Results show slight evidence of using combination of lifecycles in one project. Three projects have used two lifecycles. First project have used waterfall and incremental Second project have used Incremental and agile Third project have used waterfall and iterative
Survey results- 7 Confirm waterfall lifecycles are not useful where project requirements/goals are not mature. Finally, I believe that the project objectives were achieved and the results of the survey were adequate.
Future study - 1 The following issues should be explored further in future research: Every agile methods (e.g.( XP, Scrum), has its own characteristics and purpose of use. Future study should look closely the differences. Agile methods needs separate research. The effect of rate of change in the project on methodology. The suitability of programming languages with lifecycles. The use of combination methods in one project.
Future study - 2 The relationship and effect of organisation size (small, medium and large) on development methodologies in more detail The relationship and effect of project size (small, medium and large) on development methodologies in more detail The relationship between project type and development methodology Explore the relationship between techniques and lifecycles in more detail