Monday, December 17, 2007

Scrum and its practice

In this writing we will create question first and then try to find the answer. So, here we are starting from the first question.

What is Scrum?

Well, this might be the shortest and finest answer; “Scrum is a project management method for agile software development”. But to be more clear we need to know few more things.

SCRUM is a loose set of guidelines that govern the development process of a product, from its design stages to its completion. It aims to cure some common failures of the typical development process, such as:
Chaos due to changing requirements - the real or perceived requirements of a project usually change drastically from the time the product is designed to when it is released. Under most product development methods, all design is done at the beginning of the project, and then no changes are allowed for or made when the requirements change.

Unrealistic estimates of time, cost, and quality of the product - the project management and the developers tend to underestimate how much time and resources a project will take, and how much functionality can be produced within those constraints. In actuality, this usually cannot be accurately predicted at the beginning of the development cycle.

Developers are forced to lie about how the project is progressing - When management underestimates the time and cost needed to reach a certain level of quality, the developers must either lie about how much progress has been made on the product, or face the indignation of the management.

SCRUM has been successfully employed by hundreds of different companies in many different fields, with outstanding results.

You will find many similarities between SCRUM and Extreme Programming, but one of the major differences is that SCRUM is a fairly general set of guidelines that govern the development process of a product. For this reason, it is often used as a "wrapper" for other methodologies, such as XP or CMM (Capability Maturity Model) - that is, it is used to guide the overall process of development when using these other methodologies.

What are the Characteristics of Scrum?

A product backlog of prioritized work to be done;
Completion of a fixed set of backlog items in a series of short iterations or sprints;

A brief daily meeting or scrum, at which progress is explained, upcoming work is described and impediments are raised.

A brief sprint planning session in which the backlog items for the sprint will be defined.

A brief sprint retrospective, at which all team members reflect about the past sprint.
Scrum enables the creation of self-organizing teams by encouraging co-location of all team members, and verbal communication across all team members and disciplines that are involved in the project.

A key principle of Scrum is its recognition that during a project, 60 to 65% of requirements change and that fundamentally empirical challenge cannot be addressed successfully in a traditional predictive or planned manner. As such, Scrum adopts an empirical approach – accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team's ability to deliver quickly and respond to emerging requirements.

How many phases can be defined?
We can use three phase here:
Planning:
In this phase, the project is planned and high-level design decisions are made. And output from this phase will be taken for next phase.

Sprint Cycle:
The sprint cycle is an iterative cycle of about 3-4 weeks, in which the actual development of the product is done. It starts out with a Sprint Planning Meeting to decide what will be done in the current sprint. Then the development is done. A sprint is closed with a Sprint Review Meeting where the progress made in the last sprint is demonstrated, the sprint is reviewed, and adjustments are made to the project as necessary.
The sprint cycle is repeated until the product's development is complete. The product is complete when the variables of time, quality, competition, and cost are at a balance.
Develop the product further - implement, test, and document.
Wrap up the work - get it ready to be evaluated and integrated.
Review the work done in this sprint.
Adjust for any changes in requirements or plans.

Closure:
In this phase, the product's development is brought to a close, and the product is released.

How many Scrum Roles are there?
Several roles are defined in Scrum; these are divided into two groups; pigs and chickens, based on a joke about a pig and a chicken:

A pig and a chicken are walking down a road. The Chicken looks at the pig and says "Hey, why don't we open a restaurant?" The pig looks back at the chicken and says "Good idea, what do you want to call it?" The chicken thinks about it and says "Why don't we call it 'Ham and Eggs'?" "I don't think so" says the pig, "I'd be committed but you'd only be involved"

So the pigs are committed to building software regularly and frequently, while everyone else are chickens that are interested in the project but are really irrelevant because if it fails they're not a pig, that is they weren't the ones that committed to doing it. The needs, desires, ideas and influences of the chicken roles are taken into account, but not in any way letting it affect or distort or get in the way of the actual Scrum project.
So, Basically People who are interested and do work in team are one type and the other type is who are interested but don’t work in team.

Pig Roles
Pigs are the ones committed to the project and the Scrum process; they are the ones with "their bacon on the line".

Product Owner
Represents the voice of the customer to ensure the Scrum Team works with the right things from a business perspective.

Scrum Master (or Facilitator)
Ensure that the Scrum process is used as proposed. The Scrum Master is the enforcer of rules and sprints of practice. The master protects the scrum team from impediments and distractions. Master’s primary job is to remove impediments to the ability of the team to deliver the sprint goal. The Master is not the leader of the team (as they are self-organizing) but acts as a buffer between the team and any distracting influences.

Scrum Team
A small team of 5-9 people with cross-functional skills to do the actual work.

Chicken Roles
Chicken roles are not part of the actual Scrum process, but must be taken into account. An important aspect of agile approach is the practice of involving users, business and stakeholders into part of the process. It is important for these people to be engaged and provide feedback into the outputs for review and planning of each sprint.

Stakeholders
The people that will enable the project, but not directly involved in the process. This includes Executives.

Consulting Experts
These are people who provide expertise that is not required on every sprint. Often these chickens will become a pig as part of the Scrum Team during some sprints.

What are the common practices of Scrum?

Following are some practices for the Scrum:

Customers become a part of the development team.

Frequent intermediate deliveries with working functionality. – Incremental development and releases (may be internal only) – providing you an opportunity to validate and verify at shorter intervals rather than only at the end; thereby, providing you time to fix, and reducing the cost to fix.

Frequent risk and mitigation plans developed by the development team itself. – Risk Mitigation, Monitoring and Management (risk analysis) at every stage and with genuinely – Make it live, and continuous activity.

A daily status discussion (Standup/Scrum meetings) asking each team member:
What have you done since yesterday? (accomplishments)
What are you planning to do by tomorrow? (to be accomplished)
Do you have any problems preventing you from accomplishing your goal? (issues/concerns/risks)

Transparency in planning and module development – Let everyone know who is accountable for what and by when.

Frequent stakeholder meetings to monitor progress – Balanced (Delivery, Customer, Employee, Process) Dashboard updates – Stakeholders' update – You have to have Advance Warning Mechanism, i.e. visibility to potential slippage / deviation ahead of time.

No problems are swept under the carpet. No one is penalized for recognizing or describing any unforeseen problem.

Workplaces and working hours must be energized. – "Working more hours" does not necessarily mean "producing more output."

How and when to conduct daily status discussions?

A popular time for the daily status discussion is after the lunch break. Doing it in the morning may be troublesome especially if the team is working in a company using flextime. These status discussions don't take long, so one way is to do standup meetings where the team meets in front of a whiteboard. Because people tend to get tired after lunch, having a lively standup meeting at that time may keep their energy up. Because everybody has already been working that day, their minds are focused on the job and not on their personal issues.

What is Solo Scrum?

Scrum is based on small teams. It enhances communication between team members. Nevertheless, there is a huge amount of software that is developed by solo programmers. A software system being built by a single programmer can still benefit from some of the Scrum principles such as: a product backlog, a sprint backlog, a sprint and a sprint retrospective. Solo Scrum is an adapted version of Scrum for use by solo programmers.

Commonly Used Terms
Sprint
The product is developed in a series of 1-to-4-week iterations, or sprints. Before a sprint is begun, a Sprint Planning Meeting is held to determine what features are to be implemented in that sprint. The sprint has 4 major steps:
Develop the product further - implement, test, and document.
Wrap up the work - get it ready to be evaluated and integrated.
Review the work done in this sprint.
Adjust for any changes in requirements or plans.

Product Backlog
A prioritized list of all the desired changes to the product being developed, put together by the product owner. See Figure 2.

Sprint Backlog
A list with items that will be completed in the current sprint, taken from the product backlog.
Daily SCRUM Meeting
A 15-minute SCRUM meeting is held every day. The SCRUM Master asks the three questions, and all members of the team and interested parties take part and give feedback. The meeting should be held at the same place every time, so that people know where to go.

Impediment
Impediments are things that get in the way of the progress of the project. The SCRUM Master is responsible to look for and remove these obstacles so that they do not slow down or impair the project.

3 Questions
The Scrum Master asks the developers 3 important questions at every SCRUM meeting:
What have you accomplished since the last meeting?
Are there any obstacles in the way of meeting your goal?
What will you accomplish before the next meeting?

Product Owner
The person who commissions the project, and defines the requirements and priorities for the product.

Sprint Planning Meeting
A meeting at the beginning of a sprint where the sprint is planned. Items from the Product Backlog are selected to be completed in the sprint, based on the priorities set by the Product Owner.

Sprint Review Meeting
A sprint is closed with a Sprint Review Meeting where the progress made in the last sprint is demonstrated, the sprint is reviewed, and adjustments are made to the project as necessary.

Conclusion
Scrum naturally focuses an entire organization on building successful products. Without major changes -often within thirty days - teams are building useful, demonstrable product functionality. Scrum can be implemented at the beginning of a project or in the middle of a project or product development effort that is in trouble. Scrum is a set of interrelated practices and rules that optimize the development environment, reduce organizational overhead, and closely synchronize market requirements with iterative prototypes. Based in modern process control theory, Scrum causes the best possible software to be constructed given the available resources, acceptable quality, and required release dates. Useful product functionality is delivered every thirty days as requirements, architecture, and design emerge, even when using unstable technologies. Scrum has been used to produce financial products, Internet products, and medical products by ADM. In every instance, the organization was log-jammed, unable to produce shippable products for such a long period of time that engineers, management, and investors were deeply concerned. Scrum broke the logjam and began incremental product delivery, often with the first shippable product occurring with the same quarter.

Refferences: I have just composed these writing for make it more useful for me and may be you. But this reference is really important if you want to know a bit more then this article.

http://www.controlchaos.com/about/
http://www.codeproject.com/KB/architecture/scrum.aspx#DailySCRUMMeeting12
http://en.wikipedia.org/wiki/Scrum_(management)

Wednesday, December 5, 2007

Children are spending more time at their computers today than playing with their friends. What are the negative consequences of that.

One of the most significant and useful invention from last century is computer, which has huge upbeat impact on our daily life as well as few side effects are annihilating our next generation; the more important one is addiction of computer games specially to children.

It’s about not only playing with friends and shouting; there are lots of other things that the children from this generation are missing while they are choosing playing game with computer rather than friends. Play ground is second school for children; there are lots of thing that they learn from there. It helps to growing up child metal health; to learn about team work, to share skills, get habituation to win and acquire loses. Children have their own community and a big part of this build during playing with friend especially in play ground. Physical game always helps child to grow and strong their physical health. Few times indoor games may also make children blow and usually those are more interesting as well as more effective to build IQ, learn them take quick decision and let them improve their observation. And one more thing; getting habituation with virtual world makes them test and emotion less which makes others to suffer including their family.

To avert this problem the main part depends on guardian or who are responsible to taking care of children. They should have sense how paying with computer is demolishing their children’s’ health; both psychological and physical. They can bring their child to play grounds to play regularly. We should also be more conscious about making more playgrounds instead of destroying from the rest few. School can have the most significant role regarding this issue; they can design few courses that can create opportunity to play in school which is more secured place for child to play. We can also talk with our child to let them know the fact why they should choose playing with their friend but playing with computers.

In conclusion I want to say we are losing our green child and which is not for green house effect fairly less of our awareness. And we are offering a very feeling less and robotics generation for the next world.

Overpopulation is a twentieth century concern. What are the reasons for overpopulation and how can overpopulation be controlled?

For last few decades’ policy makers from the third world agreed with few points as global threat and overpopulation is one of the most important one without any doubt.

Among many reasons we can easily distinguish few and public awareness will be the top one. In our country general people don’t have enough knowledge what badly comes with making family large; taking more child decreased their life style and it becomes difficult to bear family expanses and taking care about everything pleasingly. Illiteracy comes after the previous one, illiterate people have lack of understanding that why they should keep their family smaller. Poverty is another reason and as poverty stands itself as a big one it has few side effects like illiteracy and early marriage which causing overpopulation. Since poor people cannot effort their family expanses unaccompanied, they need more working hands and that produce overpopulation. And also poor people want to change their fate and want security when they got older, so they want boy child and which significantly causing overpopulation. Superstition is another cause which makes people to think, birth control system is unfair and God will taking care of their child as God gives their child. Early marriage is a further one; when people get married earlier they have long time to take babies and as a result usually they have more child than others. Another reason is a bit more abstract, in our society we have an advantage that we need not to think about how to taking care of our child; usually we have senior members to look after them. Add to this as most of our families are joint-family, mothers have an advantage to become an earning member even with a very young child, because normally more family members are there who can watch over during working hours.

To prevent this problem I think first step should be to build public awareness; when our people will know the bad effects then they will start to think about this and it may decrease overpopulation. Our government should also take policies to influence our public to keep their family smaller; such as who keeps their family small may get some extra facilities like ration, free medical facility etc. In addition they can be awarded and that can stands as example which can makes people to think again before taking more children. Even government can also make law which prevents people to take more than one or two child. But behind all we need to make our people educated to teach them the real problem; and educated people must have this sense how many good thinks they will lost if they make their family larger.

But we should also think how this large population could help our nation besides thinking about the prevention policies. For example we can see in China; they have produce their over population into manpower and got tremendous success. In every sector they have the most productive manpower and which makes the world moving to China to build industries which makes china as one of the strongest country over the world.

So, we should try hard to prevent this problem and beside this we should work to use this population in productive way to build our economy strong.