20 April 2024

Agile and Crystal methodologies

Crystal methodologies

  • Crystal is a family of methodologies for a flexible and lightweight approach to software development.
    • The family of methodologies is color coded to differentiate its members (e.g., clear, yellow, orange, red.), the color chosen depends on the level of effort required.
    • Crystal is a family of methodologies designed from projects developing low critical systems (crystal clear) to high-critical projects (crystal magenta).
    • On one end of the spectrum is crystal clear, which is for smaller efforts, while crystal red is for larger efforts.

Crystal Life cycle

  • The Crystal development process is cyclical/iterative.
    • Its primary components are chartering, delivery cycles, and project wrap-up.

Chartering

  • Chartering involves creating a project charter, which can last from a few days to a few weeks.
    • Chartering consists of four activities :
      • Building the core project team,
      • performing an Exploratory 360° assessment,
      • fine tuning the methodology,
      • building the initial project plan.
    • [Agile Software Development: The Cooperative Game – 2nd Edition. Alistair Cockburn.]

Crystal framework

  • Regardless of color, the crystal framework is cyclical and has three fundamental processes: chartering, delivery cycles, and wrap-up.
    • Crystal chartering includes building the team, doing an Exploratory 360, defining standards of practice for the team, and building the project plan.
    • In the delivery cycle, the crystal team iteratively develops, integrates, tests, and releases the product in iterations that last from one week to two months.
      • Like other agile frameworks, crystal includes collaborative events, like stand-up meetings and reflective improvement workshops.
    • In wrap-up the team concludes the project and holds a completion ritual where the team reflects on the entire project.
    • [Agile Software Development: The Cooperative Game – 2nd Edition. Alistair Cockburn.]

Collocated teams and distributed teams

  • A high-performance agile team is one that is ideally collocated for osmotic communication and face-to-face interaction.
    • However, collocation isn’t always feasible in today’s multinational environment.
    • For distributed teams, several practices are available to provide the best form of effective communication in the absence of being collocated: team intranet sites, virtual team rooms, and video conferencing over e-mail when possible.
    • Geographic separation, especially on a world-wide scale, causes the team to consider language and cultural differences, and time zone differences.
    • [The Art of Agile Development. James Shore.]

Crystal Clear

  • Crystal Clear describes the seven properties that make up the framework, but only the first three are required.
    • The other four are helpful and the better Crystal Clear teams use them.
    • The properties apply to projects of all sizes except for “osmotic communication”, but in general Crystal Clear works best for small, co located teams.
    • Being co located is important.
  • The seven Crystal Clear properties needed to successfully run an Agile project are :
    • Frequent delivery of useable code.
    • Reflective improvement.
      • Crystal Clear is not prescriptive and leaves many things up to the team to reflect on and finalize after discussion.
      • Experimentation is a key element in Crystal Clear.
    • Osmotic communication.
      • This occurs when all developers on a team are in a room at a table.
        • A discussion takes place, and members either participate or tune-out; but everyone hears or overhears what is said, and it stays in the back of their minds.
        • This works best for small teams of eight to ten people, and you need physical proximity among team members for the osmosis communication to really work.
        • Hazards of osmotic communication are too much noise and too many questions directed to the most expert developer.
          • Removing the expert to a private office for protection backfires.
          • The expert needs to be in the center of the group.
          • The expert does need to be protected, however, so he or she can get something done.
          • To accomplish this, a certain period of time should be set-up each day where the expert is totally alone and not available.
    • Personal safety (mandatory).
      • Team members must be able to speak up when something is bothering them without fear of reprisal.
        • When able to speak freely a team can discover and fix its weaknesses.
        • When there is no evidence of being betrayed people tend to give out information more freely, which in turn shortens the project length.
        • A sense of personal safety is a critical property to attain on a team.
        • To gain trust there must be exposure.
        • Three things software developers must be open about in relation to the project are being able to reveal their ignorance, errors made, and any incapacity they have in meeting the requirements of an assignment.
        • Members on a team must be amiable.
        • People who are being “polite” by not being willing to show disagreement are not acting in the best interest of the team.
    • Focus (mandatory).
      • Executives and leaders must set priorities and make it clear what developers should be spending their time on.
      • Then the developers must be given time, without interruptions, to work on those priorities.
      • Working on one project at a time is ideal; two maximum.
      • Teams should set up two hours of each working day (say 10am to 12 noon) where no interruptions are allowed including meetings, phone calls, and demos.
    • Easy access to expert users (mandatory).
      • Getting prompt response from users, and especially to questions, is key.
      • A developer working with a user, or a user working on the development team are both very helpful but not possible that often.
      • When problems occur because users do not want frequent releases, one solution is to find a single user willing to try out your new software on a trial basis.
      • Not only with Crystal Clear, but with any Agile framework, getting back user feedback is critical.
    • Technical environment with automated tests, configuration management, and frequent integration.
      • Many development teams will integrate the system multiple times per day, or at a minimum, once daily.
      • Teams that do “continuous integration-with-test” will be able to detect integration level errors within minutes.
  • Conclusion
    • Development teams do best in an environment that is safe, from a personal and emotional point of view, and is free from personal attacks.
      • A key Crystal Clear concept is to have constructive but not vindictive criticism.
      • Ron Jeffries closely characterized Crystal Clear as :
        • Bring a few developers together in peace, love, and harmony; shipping code every other month, and good software will emerge

More informations at PMI-ACP exam

Updated : 13/10/2021

Leave a Reply

Your email address will not be published. Required fields are marked *