COS 730 groupassignmentCrystalmethodologiesMB Mauch 29007552K Bassuday 29233412J van Zyl 29112690K le Roux 29021872
Crystal Crystal methods are part of the Crystal family developed by Alistair Cockburn in the mid-1990s Based on observations of many teams that did not follow formal methodologies yet had successful projects These are “lightweight methodologies” Avoids strict/rigid processes found in other methodologies
Crystal Name crystal comes from gemstones The faces are a different view on the underlying core of principles and values of each method. In terms of software, the faces represent techniques, tools, standards and roles for each method.
Crystal Crystal methods focus on: People Interaction Community Skills Talents Communications
Crystal Scaled according to team size, different colours denote the weight Crystal Clear lightweight, not mission critical Crystal Yellow Crystal Orange Crystal Orange Web Crystal Red Crystal Maroon Crystal Diamond Crystal Sapphire heavy, mission critical
Crystal common propertiesCrystal family methods have 7 commonproperties:1. Frequent delivery2. Reflective improvement3. Close or osmotic communication4. Personal safety5. Focus6. Easy access to expert users7. Automated tests, configuration management, frequent integration
Frequent delivery Iterationsof the software program should be released regularly (from weekly up to quarterly) Problems can be found and fixed early on Customers can ensure that the project is going the way they want it to go
Reflective improvement Developers dedicate time to improving the development process Reflection workshops are held every few weeks to help find processes that are working and which ones need to be modified Iteration helps determine if a process is working or not
Close or osmoticcommunication Development teams must be in the same room This aids communication Developers do not need to break concentration to move somewhere else Information flows quickly through the team Communication overhead is reduced
Personal safety Team members must be able to speak freely in a group without being ridiculed
Focus1. Focus on a task long enough for progress to be made 2 hour period where the developer should have no interruptions Developer assigned to a project for at least 2 days2. Clear definition and goals of the project
Easy access to expert users Developers work with experts in the field of the project who will also be end-users Expert will answer questions and suggest solutions or improvements Minimum: meet once a week for 2 hours and be reachable by phone
Automated tests,configuration management,frequent integration Spot errors and problems that arise from changes being made Done regularly Problems spotted early on Problems are less likely to grow
Crystal Clear Lightest methodology that will still lead to successful projects Supports fixed price contracts Teams using Crystal Clear can use techniques from other methodologies and vice versa Requires documentation Does not prescribe what documentation but leaves that up to the judgment of the team
Crystal Clear Priorities: Project safety (deliver the system in adequate time and budget) Effective and habitable (people can live with the system and use it) Focuses on people, not processes or artifacts One small team of 2 - 6 people in the same office working on not life-critical systems
Crystal Clear The difference between CrystalClear andExtremeProgramming is that XP is muchmore disciplined, CrystalClear is much moretolerant, even sloppy-looking. I would sayXP is more productive, CrystalClear morelikely to get followed. -- AlistairCockburn
Crystal Yellow Suitable for teams of 7 to 20 members Crystal yellow has key characteristics such as easy communication, clear ownership of code areas , feedback from real users, automated testing, mission statement and monthly increments of improvements. Easy communication replaces the need for detailed designed documentation and ensures everyone is comfortable with communicating the needs of the project.
Crystal Yellow Clear ownership of code areas; helps with defined code areas being made so that changes do not have to be explained or granted by everyone. It also emphasises ownership and responsibility for each section of code. Feedback is needed from “real users” where it eliminates the need of long process requirements collection. Mission statements provide the goal and general achievements needed to be reached.
Crystal Yellow Monthly improvements include making lists of what needs to be done and achieving small improvements within each list made. Automated testing helps resolve errors quickly. It should be established before new functions are fully finished.
Crystal Orange Incremental development. The idea is for agile development. There needs to be a release every 3-4 months. Each release is called an “increment”.
Crystal Orange Designed for medium size projects (10 – 40 team members) Duration ranging from 1 – 2 years Split up in teams with cross functional skills
Crystal OrangeActivities of Crystal Orange Staging: Planning for releases. In this phase the developers gather the requirements, evaluate technical feasibility, and prioritise the tasks. Review: This is the phase where the objectives of the increment is reviewed, to make sure that it was met accordingly. Increments consist of iterations – Construction → Demonstration → Review. Tracking: Tracking the project at different stages of development ensures that fluctuations are picked up and handled correctly. The increments are measured at each milestone, including start, review, test and deliver.
Crystal OrangeActivities of Crystal Orange (cont) Parallelism: This is the phase where monitoring teams review stability, work plans and synchronisation. Holistic Diversity: This is an activity where large functional groups are split up into cross functional groups, creating a diversity of specialised people to handle certain parts of the project. Tuning: This is the phase where interviews and workshops are used to find solutions. Workshops: This helps to drive team attention to project goals.
Crystal Orange Web Used in projects that have a continually evolving code base that is being used by the public Used for category D40 projects. Used in teams with 21-40 members
Crystal Orange Web Consists of a set of conventions grouped into five categories: Regular heartbeat, with Learning Basic process Maximum Progress, minimum distractions Maximally defect free A community, aligned in conversation
Crystal Orange Web1. Regular heartbeat, with Learning: Consist of twee week development life cycles It has a post-reflection workshop Suggestions are made at these workshops2. Basic Processes: Organizes what work will be done by whom Organizes what decisions will be made by whom
Crystal Orange Web3. Maximum progress, minimum distractions Gives the people enough time to work on deliverables that are the most important. Work is broken into two week cycles and then further broken down into cycles for components that that can be developed in 1-3 days. Developers have whiteboards outside their offices on which they post the status of their current work for the week.
Crystal Orange Web4. Maximally defect free Strive to develop code that is bug free. Done by intensive testing and overlooking of code5. A community, aligned in conversation Focused on the long term target of the company All roles in the company should participate in cross functional teams. This means that teams with different expertise should all work towards a common goal
References http://en.wikipedia.org/wiki/Crystal_Clear_%2 8software_development%29 Gorakavi P.K. What You Should Know about Crystal Orange Methodology #6 of a Series, 2009 Coffin. R and Lane.D, 2010 http://www.devx.com/architect/Article/32836 /1954 paraview.org/ParaView3/images/8/8a/Crysta l_Yellow.ppt