Part 2 of 6

Part 2:
To identify a set of significant characteristics and benefits in using a Hybrid Approach in Agile Methods (Research Objective 2)
 
In this part we look at the usage of the more popular agile software development methodologies and the typical characteristics of agile software processes

-          Extreme Programming (XP) – a development method intended to improve quality and responsiveness to evolving customer requirements. The principles of XP include feedback, assuming simplicity, and embracing change.

-          Scrum- one of the most popular ways to implement Agile.  An iterative software model that follows a set of roles, responsibilities, and meetings that never change. Sprints usually last one to two weeks which allow the team to deliver software on a regular basis.

-          Lean Software Development (LSD) – applies Lean manufacturing and Lean IT principles to software development. It has seven principles: eliminate waste, amplify learning, decide as late as possible, deliver as fast as possible, empower the team, build integrity in, and see the whole.

-          Kanban - : meaning “visual sign” or “card” in Japanese, is a visual framework to implement Agile. It promotes small, continuous changes to your current system. Its principles include: visualize the workflow, limit work in progress, manage and enhance the flow, make policies explicit, and continuously improve.

-          Adaptive Software Development (ASD) - represents the idea that projects should always be in a state of continuous adaptation. ASD has a cycle of three repeating series: speculate, collaborate, and learn.

-          Feature Driven Development (FDD) – an iterative and incremental software development process blends industry best practices into one approach. There are five basic activities in FDD: develop overall model, build feature list, plan by feature, design by feature, and build by feature.

-          Dynamic System Development Method (DSDM) – a project delivery framework is used for developing software and non-IT solutions. It addresses the common failures of IT projects, like going over budget, missing deadlines, and lack of user involvement. The eight principles of DSDM are: focus on the business need, deliver on time, collaborate, never compromise quality, build incrementally from firm foundations, develop iteratively, communicate continuously and clearly, and demonstrate control.

-          Agile Modelling (AM) - is used to model and document software systems and is a supplement to other Agile methodologies like Scrum, Extreme Programming (XP), and Rational Unified Process (RUP). AM is not a complete software process on its own. It can help improve models with code, but it doesn’t include programming activities.

-          Crystal – Crystal Clear is part of the Crystal family of methodologies. It can be used with teams of six to eight developers and it focuses on the people, not processes or artefacts. Crystal Clear requires the following: frequent delivery of usable code to users, reflective improvement, and osmotic communication preferably by being co-located.

-          Agile Unified Process (AUP) – an agile application of the UP that has become known as the AUP. Collaborations involve workers (roles), activities, and work products (artefacts). In the AUP, collaborations focus on collaborators (contributors and confirmers), goals and objectives, and results.

The 9 characteristics of Agile Methodologies

-          Modularity - allows a process to be broken into components called activities.

-          Iterative - focus on short cycles and the short cycle is repeated many times to refine the deliverables.-

-          Time-bound - set time limits (between one and six weeks is normal) on each iteration and schedule them
            accordingly

-          Minimal Activities (Parsimony.) minimizing the number of activities, they allow developers to deliver systems
           against an aggressive schedule, while maintaining some semblance of a normal life

-          Adaptive - adapts the process to attack new found risks. If the goal cannot be achieved using the activities planned             during the iteration, new activities can be added to allow the goal to be reached. Similarly, activities may be discarded if the risks turn out to be ungrounded.

-          Incremental - it partitions the nontrivial system into increments which may be developed in parallel, at different
           times, and at different rates.

-          Convergent - Convergence states that we are actively attacking all of the risks worth attacking. As a result, the
           system becomes closer to the reality that we seek with each iteration.

-          People-Oriented  - favor people over process and technology

-          Collaborative - Quickly integrating a large project while increments are being developed in parallel, requires
           collaboration.
The following questions are used to collect data and identify a set of significant agile characteristics

Questions – Agile Software Development Methodologies

Question Title

* 1. P2Q1) How many years of experience do you have with Agile software development methodologies?

Question Title

* 2. P2Q2) In developing software projects, do you use more than one agile software development methodology? If Yes, please select Yes button and go to P2Q7. If No, please select No button and go to next question.

Question Title

* 3. P2Q3) Which one of the methodologies do you use?

Question Title

* 4. P2Q4) Why you do not use more than one agile methodology? (You can select more than one)

Question Title

* 5. P2Q5) If you had used more than one methodology, would it be easier to achieve success of the project?

Question Title

* 6. P2Q6) If you were given the opportunity to use more than one methodology in Agile, indicate the degree of improvement for the following characteristics in the table below.

  1 -No 2- Slight 3 – Moderate 4 –Neutral 5-Average 6-Large 7-Tremendous
Agile Methodologies Improvement Characteristic
1. Modularity.
The process is broken in smaller activities
Agile Methodologies Improvement Characteristic
2.
Iterative 
Focus on repeatable shorter cycles
Agile Methodologies Improvement Characteristic
3. Time-bound 
Setting iterative time limits based on schedule of delivery
Agile Methodologies Improvement Characteristic
4. Minimal Activities (Parsimony)  
Achieve goals and reduce risk with minimal number of activities that manages rapid delivery and schedule
Agile Methodologies Improvement Characteristic
5. Adaptive 
Adapt to unplanned activities, new risks and goals while at the same time discard unfound risks and no longer needed activities
Agile Methodologies Improvement Characteristic
6. Incremental 
Break systems into trivial and non-trivial incremental parts and focus on developing and testing the non-trivial areas. Provide activities to integrate all the parts later
Agile Methodologies Improvement Characteristic
7. Convergent 
Focus on the major risks in the system and as the progress is achieved, the reality of a working system becomes more apparent
Agile Methodologies Improvement Characteristic
8. People-Oriented 
Focus on the people, empowerment, team structure and team morale while reducing the importance on processes and
technology
Agile Methodologies Improvement Characteristic
9. Collaborative 
Understand how all the pieces of the project (especially large projects) fit together and provide avenues to work together to make integration as core part of the collaboration
Select the done button and go to Part 3 of the questionnaire. (Select weblink Part 3)

Question Title

* 7. P2Q7) Which agile methodologies do you use (select more than one)?

Question Title

* 8. P2Q8) In combining or mixing the methodologies, which of the following did you consider?

Question Title

* 9. P2Q9) Does the project failure rate typically increase with project size?

Question Title

* 10. P2Q10) When you mixed or combined the agile methodologies did you see an improvement in the following characteristics? Indicate the methodologies that apply (tick more than one) and the degree of improvement (tick one only).

  (a) XP (b) Scrum (c) LSD (d) Kanban (e) ASD (f) FDD (g) DSDM (h) AM (i) others 1-    No  2-Slight 3-Moderate 4-Neutral 5-Average 6-Large 7-Tremendous
Agile Methodologies Improvement Characteristic
1. Modularity
The process is broken in smaller activities.
Agile Methodologies Improvement Characteristic
2. Iterative
Focus on repeatable shorter cycles.
Agile Methodologies Improvement Characteristic
3. Time-bound
Setting iterative time limits based on schedule of delivery.
Agile Methodologies Improvement Characteristic
4. Minimal Activities (Parsimony)
Achieve goals and reduce risk with minimal number of activities that manages rapid delivery and schedule.
Agile Methodologies Improvement Characteristic
5. Adaptive
Adapt to unplanned activities, new risks and goals while at the same time discard unfound risks and no longer needed activities.
Agile Methodologies Improvement Characteristic
6. Incremental
Break systems into trivial and non-trivial incremental parts and focus on developing and testing the non-trivial areas. Provide activities to integrate all the parts later.
Agile Methodologies Improvement Characteristic
7. Convergent
Focus on the major risks in the system and as the progress is achieved, the reality of a working system becomes more
apparent.
Agile Methodologies Improvement Characteristic
8. People-Oriented
Focus on the people, empowerment, team structure and team morale while reducing the importance on processes and technology.
Agile Methodologies Improvement Characteristic
9. Collaborative
Understand how all the pieces of the project (especially large projects) fit together and provide avenues to work together to make integration as core part of the collaboration.
Select the Done button and Go to Part 3 of the questionnaire. (Select weblink Part 3)

T