Friday, January 30, 2015

Crystal Clear - Process

Crystal clear process includes three steps

1.Chartering, 
2.Cyclic Delivery 
3.Wrap-up


Chartering: 

Chartering includes building the core team, performing the exploratory 360°, shaping & fine-tuning the methodology conventions and building the initial project plan.
            
            Build the core of the team:
Is nothing but forming the development team
An Executive Sponsor provides direction and support to the team, also act as domain expert for the project.
A Lead Designer acts as project manager, coordinator, technical expert and trainer.
An Ambassador User acts as the expert on system usage.
A number of Systems Analysts, Programmers, Support analysts, Business Experts, Testers, Text-Writers, Coordinators and others (Whoever is needed by the team).

            Perform the Exploratory 360°:
It is preliminary feasibility analysis which provides high level project review of the key issues (given below) which will affect the development effort
Overall project plans and constraints
High-level requirements (usually captured in use cases)
Expected business value
Technology to be used & alternatives
Necessary resources
Development methodology

            Shape and fine-tune the methodology conventions:
Shaping the methodology: Set of rules which are agreed upon by the team as the framework to be used in developing the system
Fine tuning methodology: Initial framework will be reviewed & revised iteratively during cyclic delivery, gradually evolving as a methodology tailored to fit the project.

            Build the initial project plan:
Developing the initial plan which includes project map (Consists tasks and their dependencies), Release plan with projected timelines (start and end date) for delivery cycles & iterations and Tasks (Prioritized and estimated).
Task estimations are done using Blitz Planning, which is a close variant of XP’s card-based planning technique.


Cyclic Delivery:

Each delivery cycle includes either one iteration or multiple iterations which leads to delivery to the real users. Each delivery cycle includes below activities to be performed
     Recalibrate\Revisit the release plan
     Develop in iterations
     Deliver to real users
     Reflect on the delivery
Recalibrate\Revisit the release plan: Release plan is reviewed and updated based on the experience with previous delivery cycles performance.
Develop in iterations: All the development is done in iterations which can range from one week to three months. One delivery cycle can have one or multiple iterations.
Deliver to real users: Integrated system is delivered to a group of users and use their feedback is used to improve the system. Update the plans/requirements according to the user feedback.
Reflect on the delivery: Reflection workshop is held and the team reflects on the delivered product and process used to develop the product.

Cyclic Delivery - Iteration:
Iteraration starts with Iteration planning, where team plans the tasks to be performed during the iteration.  Each iteration include multiple days integrated.

Each day (Cyclic program-test-integrate) includes
A Daily Standup meeting: Team meets to collaborate with one another
Mutiple Integration Cycles: It consists of Designer-Programmers developing tasks by programming and perform unit testing. These are called episodes. At the end of the integration cycle new code should be integrated into the system and integration tests should be performed.
Iteration Completion Ritual: A reflection workshop is held at the end of the iteration.


Crystal Clear Process-Wrap-up:

Wrap-up is the last step, in which Team performs acceptance testing and prepares the final product & user environment for final deployment.
Final reflection workshop.
Create Knowledge base: Record the lessons learned from the project which will be helpful for future projects.

Hope you got some idea on the crystal clear process. In next  post, let’s get started with eXtreme Programming. Please share your feedback to improve this blog or let me know if you need any specific topics to be covered. I will be very happy to present it in my blog.If you have any suggestions OR queries, Please feel free to reach out to me @ Linkedin || Facebook

Very Happy to see 1000 page views to my Blog, Thank you J

Twitter: @sathrambalaji

Have a nice day
-Balaji Sathram, CSP, PMI-ACP

Wednesday, October 29, 2014

Crystal Methodologies - Common properties

Hope you got to know: what is crystal family of methodologies from previous post. In this post, let’s discuss about Crystal Methodologies – Commonality .i.e.nothing but properties common among all crystal family members.

These are the common properties (given below) among different methods of crystal famiy.
1.  Frequent delivery
2.  Reflective improvement
3.  Osmotic communication
4.  Personal safety
5.  Focus
6.  Easy access to expert users
7. Technical environment (With Automation testing, configuration management and frequent integration)

Out of the above, first three properties are core properties of crystal and rest are the properties which increases project safety by dealing with adverse conditions. Let’s discuss one by one in more detail.

Crystal Family members - Common Properties

Frequent delivery: 
Deliver usable software atleast once a quarter (Delivery cycle can vary from a week to a Quarter).
Crystal suggests to deliver usable software atleast once a quarter. Delivered software must be running, tested with usable functions. Delivery cycle shouldn’t be more than four months, so that problems/issues can be found and fixed early. Customers/Stakeholders can provide feedback on the working software which helps team to tailor things with respect to people/process/product.

Reflective improvement: Inspect and Improve
All team members get together atleast once in a quarter to discuss about ‘what is working good’, ‘what is not working good’ (Factors slowing down team’s work) and ‘is there any improvements/modifications to be done?’. This is called reflection workshop. Short iterations help teams to evaluate the process they are following.

Osmotic communication:
All team members working for a project to be seated in same room/same building (Co-location), which helps in effective communication and quick information flow through the team. The main objective behind all team members getting seated in the same room is that: team members can overhear the discussions happening in background (though they are not directly involved in) and pick up relevant information. Through this, Communication overhead is reduced and  it takes less time to get the answers for your questions.

Personal safety:
Team members must be able to speak to team without any hesitation/inhibitions. Members should be able to discuss with the team about anything. For example: wrong estimations, friendly disagreements etc. Main objective behind this property is creating an environment where team members can share their views without thinking about what others think about their views.

Focus:
Goals of the project is well defined and all team members should know their top two priority items/tasks to work on. Members should get at least two days in a row with two hours each day to work with out any interruptions. This will increase focus on a item/task long enough for progress towards project goal.

Easy access to expert users:
Team members should work with experts to get their questions answered. Experts/End-users would suggest improvements or solutions. Experts should be available to team (either by person or reachable by phone), so that team get answers to their questions in few hours.

Technical environment (With Automation testing, configuration management and frequent integration):
Developers need to check their code into configuration management system and run automated system tests to identify errors/problems with the changes being made. It should be done regularly to identify erros/problems early and fix it.

In this post, We have discussed about common properties among all crystal family members. Will discuss about crystal-process in next post.

Thank you for visiting my blog and spending some time. It would be great, if you could share your feedback as it helps me to improve. If you have any suggestions OR queries, Please feel free to reach out to me @ Linkedin Facebook

Twitter: @sathrambalaji

-Balaji Sathram