Showing posts with label user story. Show all posts
Showing posts with label user story. Show all posts

Friday 10 October 2014

Scrum Product Owner Role And Sprint Planning Meeting Agenda

In many ways, in a Scrum project, the sprint planning meeting agenda plays a very significant part in determining the success of delivering shippable product increments through the sprint iterative cycles. The product owner is very closely involved in the sprint planning agenda, and is responsible for the outcome of the sprint cycle, since he or she is primarily responsible for taking the initiative and “designing” the sprint – the PO decides which user stories should be ideally taken up for development purposes based upon their business values. Moreover, the product backlog needs to be refined on a regular basis. The PO may invite and seek the help of Agile team members to keep the backlog refined so “granular” and developable user stories are available at the time of Scrum planning meeting.
The main issue with Agile Scrum today is that the role of a PO cannot be “standardised” based upon assumptions as to how Scrum ought to be implemented in a project, and what the PO should ideally do to make the project a distinct success. In addition, while considering Scrum sprint planning, the same thoughts might be applicable to it as those associated with the PO’s – it is difficult to create generalised rules regarding how a sprint should be ideally designed. The primary reason is products and requirements change as per fluctuating market conditions, and stakeholders too are liable to change their thoughts as and when end user demand user-specific requirements and development. However, after considering the fact that scaled Scrum versions are likely to “dominate” the Agile scenario over the coming years, it is worthwhile thinking that “some” of the duties of a PO and certain sprint planning “characteristics” are likely to remain common – irrespective of which scaled version is used, and the manner in which Scrum should be, or can be, implemented in a project. In addition, while the sprint planning meeting was traditionally conducted in two parts, the Scrum event has now evolved to be conducted as a whole – as a single event – and include two topics in it, rather than two parts:
  • What can be done in this (currently being planned) sprint – the “What” aspect
  • How should the chosen “work” be ideally “done” – the “How” aspect
It is interesting to think about how the product owner’s role is likely to modify itself in the future, and what features the sprint planning event is likely to include. The suggestions are open for debate, and the reader is invited to present his or her viewpoints.

Scrum product owner role and responsibilities likely to remain “common”

  • Creation of the product backlog based upon the vision as seen by the stakeholders. Defining user stories having high business values so the project “worth” is maintained at all times.
  • Monitoring all Scrum related activities in project. Even if the PO’s role may be demanding and “difficult to play”, the PO still has to deal with changing market conditions, stakeholders requests, and negotiate with the development team with regards delivering shippable stories and maintaining team velocity... Read more at Scrum Product Owner Role And Sprint Planning Meeting Agenda



Friday 22 August 2014

Main Differences Between Agile Scrum And XP Framework

Of all Agile frameworks, scrum is the most popular one. Scrum methodology is highly
recommended for developing IT projects and it is so widely recommended for it that it is often
confused with Extreme Programming or “XP” Agile framework, which is synonymous with
software development. Both the frameworks are much similar, and to a person not
conversant with Agile, both might appear to be the same at a first glance. While most
Agile processes and events remain the same, there are some subtle differences between
the two frameworks.
Sprint durations
Typically, in scrum, the sprint iteration can last from two weeks up to one month. In XP,
the duration is much shorter, and generally lasts from one to two weeks. The sprint
duration does not exceed two weeks in XP.
Committing the sprint backlog
One of the major differences, and an important one too, is how user stories are
committed in the sprint backlog while implementing scrum and XP. In scrum, the sprint
backlog is “owned” by the development team. Once the team accepts the sprint backlog,
all the user stories in the backlog are “committed” for development purposes. The team
is required to complete all the user stories stated in the backlog. Moreover, once
committed, the sprint backlog cannot be “changed” while implementing scrum. If any
new user story is required to be developed, it can only be included in the next sprint after
a new sprint planning meeting is conducted. This is not the case with XP. The sprint
backlog does not become “static” even after it is accepted by the team and the user
stories are taken up for development. If required, based upon the feedback received
from the stakeholders, a user story taken up for development can be replaced with a
nother one having the same estimation in terms of story points. Therefore, the sprint
backlog is not “committed” at any time in XP. New stories can be replaced in lieu of
those currently existing in the backlog – something that is impossible in scrum. However,
it is important to know that such a “replacement” of user story is only possible in XP
before the particular user story is taken up for execution in the daily sprint. Once the
development of a user story starts in XP, it cannot be replaced. Read more at http://goo.gl/35Yq67

Thursday 24 July 2014

Is Agile Scrum suitable For Software Development?

The scope of development in the software/IT field
People and individuals associated with software development and the IT field like to use the term “software development” to describe their particular field of work and professional involvement. The term “development” is very widely used to describe a host of activities catering to the IT field. It can range from developing code for applications and systems, to developing mobile applications for mobile operating systems such as Android, iOS, Symbian, Windows OS, etc. (visit http://en.wikipedia.org/wiki/Mobile_operating_system), “manufacturing” gaming software using scripting languages like Ruby, AGSScript, Lua, Marathon markup language, Ada, C++, C#, D, Lisp, Mercury, Pascal, Perl, Python, Scheme, JavaScript, Java, VBscript, EDL, etc., (visit http://en.wikipedia.org/wiki/List_of_programming_languages) carrying out web development using HTML, CSS, PHP, Joomla, DotNetNuke, Java, etc., and even developing entire operating systems for tablets and PCs  (visit http://en.wikipedia.org/wiki/List_of_operating_systems, to know more about operating systems). The fact is as on today, the terminology “software development” is extensively used to mention almost any type or activity associated with the programming and development of “computerizable” code of any type, in any way, or manner. When a particular methodology or framework is used to develop computerizable code and create software projects, it is important to ascertain whether the scope of development includes the specific activity you’re currently involved or associated with. Software development and projectmanagement frameworks such as Agile have the potential to develop successful IT related projects involving the vast majority of development platforms and operating systems.

While explaining Agile in a simple and straightforward manner, it can be best understood as a collection of project development methodologies and frameworks, of which any framework or methodology can be used in a successful manner to dynamically develop projects of almost any type and nature, including software development projects. The framework is based upon iterative and incremental development, in which self-organised and self-managing development teams understand, plan, and develop projects under the supervision of a project leader, and offer productivity in the form of short bursts of development cycles (iterative development) known as sprints. A unique feature of all Agile frameworks is that the development carried out by the team is “shippable” in nature i.e. the code developed during the product development cycle is independent, testable, verifiable,  documentable, and ready for deployment after it is stringently checked for any “manufacturing” defects.

A second, highly important feature of Agile development is that individuals “owning” the project are closely linked with the approval of development carried out by the team. A particular “code” or “piece” of functionality is checked for regression after it is developed, and subsequently presented to the stakeholders and project owners. They ascertain the development carried out, and clear it as “OK” for future integration into the actual product. This leads to a successful development of software projects, since the management is always aware about what functionality is currently being developed by the team, and up to what extent it satisfies the project objectives. If the project owners feel the productivity offered by the team is not up-to-the-mark, or fails to satisfies them in terms of business value (how much important the code or functionality is from the market point of view, and how much it is worth from the financial point of view) offered by the functionality, they can reject the entire functionality and instruct the project manager to redevelop the particular script or code, based upon a new set of inputs and requirements recommended by them. This ensures that the software project always “maintains” its business value at all times, even while the product is being currently developed.     

A third important feature of Agile framework is that all activities in the project are “time boxed”, and therefore, have to be completed within a predetermined time period. In an Agile project, each activity is time bound. All development related activities are “configured” to suit the unique project needs, and a duration “affixed” to them so they can be completed within a stipulated time. This ensures that the project does not “drag-on” and extend indefinitely. The development costs incurred while the project is being developed can be properly and “profitably” controlled, so that the project does not become “too” expensive and difficult to afford financially.

Agile framework differs drastically when compared to traditional linear or Waterfall methodology. In Agile, project development is carried out in short bursts of activities rather than in stages that have to be “completed” one after the other.

The main Agile features include:
·  Cross-functional development teams consisting of developers, programmers, testers, QA personnel, technical writers, system analysts, etc. all work together as a single composite team through collaborative efforts, offer and share ideas, and help each other during the development process.
·   Working in short, fast-paced development cycles, with focused objectives – Iterative development.
·  Shippable productivity at the end of iterative development cycles – Incremental development. The functionality keeps on “growing” through development cycles until the entire application, system, or product is developed.
·   Human communications and involvement takes precedence over management authority and delegation of work.
·   Total transparency and visibility of the team progress to project owners, stakeholders, and end users.
·    Feedback and suggestions help to self-correct and offer new ways and means to carry out quicker, more efficient, and reliable development.

An important feature of all Agile frameworks is that the frameworks are independent of the nature of project to be developed i.e. the framework is not dependent upon the platform or environment used to develop the particular software project. The architecture or design can vary, and could be anything. The important aspect is that an Agile framework has to be implemented in the project first, and its benefits availed subsequently. Please visit http://en.wikipedia.org/wiki/Agile_software_development.

Scrum, briefly, is a “light weight” Agile framework, used extensively for developing and delivering “workable” software products, very often, and on a consistent basis. The software products can range from the development of new web processes and systems, gaming solutions, plugins, mobile apps, ecommerce websites, corporate portals, development of WordPress themes, RAD (Rapid Application Development) projects, OOPs (Object Oriented Programming) projects, CAD/CAM drafting solutions, port programming and configuration utilities, web development and platform interfacing solutions, etc. Scrum adheres to all Agile principles and features discussed above since the framework is “inherited” from Agile itself.

Scrum offers a new, and a better way of managing software projects. There are many technical reasons why Scrum is popular and why many Fortune 500 companies prefer to use the framework for their project development purposes. While being introduced to Agile Scrum, a question that inadvertently comes to one’s mind is why is Scrum so popular? Why is there so much “hype” about Scrum? Does Scrum offer a magic formula, which can work wonders for your project and software development? Why should an organisation that has been following a particular development methodology, and feels comfortable doing so, should change over to Scrum? There is a separate article which deals entirely with why you should opt for Scrum. The point is, this article focus upon explaining Scrum to individuals who are new to the topic, and have absolutely no idea what the framework is all about, and what it can “do” for you. Efforts have been made to explain that Agile Scrum is applicable to almost any kind of software development, and possesses certain features which make the framework very popular as well as “powerful”.    


The actual Scrum process can prove to be difficult to understand, at first, for Scrum beginners. Even though Scrum implementation is not difficult, people need to understand and familiarize themselves about what is product increment, and how it actually occurs during the Scrum process. The second aspect is getting to know about Scrum events. The special meetings, known as “events” are important for monitoring the development activity, and analysing the reliability and effectiveness of the functionality developed by the team. They also help to solicit feedback from the team members as well as the project owners so that the business value of the project is not affected, and maintained at all times – even while the product is being developed. It is worthwhile to get an “overview” of the process first.  

Quickscrum- Scrum tool


1.    Project conception - An idea!
All projects, whether involving software development, or otherwise, start with an “idea”. Projects are developed out of needs. A project is planned to fulfil a particular requirement or achieve a certain objective. Moreover, each project results into “something” within a specific time frame – a project cannot extend indefinitely. It is important here to differentiate between a “project” and a “program”. Programs are generally long termed, and can even last for years, unlike projects which have a relatively short life span and last for a brief period, ranging from a couple of months to even a year.

Typically, a person, or a group of individuals realise it is worthwhile to put in efforts and resources, and develop “something” so that “another thing” can be easily fulfilled or availed. The “something” is the product, and the “another thing” is the solution that the project is supposed to provide. This stage of project development involves a lot of discussion and brain storming sessions, where the product is envisioned and “though over”.

Scrum does not figure during this stage. However, the vision seen by the project owners, can, or may, affect the manner in which Scrum is implemented in theproject, in the future. This is because the nature of product to be developed may require Scrum to be configured in a certain manner to obtain positive results from the project. 

2.    Project release – Getting started with the software project
Once the project is “thought about” the next logical step is to work out the nitty-gritty concerning the project dynamics – the objective of the project, the product definition, how the project should ideally deliver the product, in what manner, what should be the “strength” of the team, how many team members, etc.

Scrum development process does not come into the picture even during this stage. The documentation pertaining to the project is created and “everything” concerning the product to be developed is finalised – in black and white. Scrum does not advocate extensive documentation. You do not have to prepare detailed system flow diagrams and extensive design structures to get started with Scrum development. A basic idea will suffice, and you should only spend that much time and efforts which can get you “started” with the actual development activity. Just enough information and specifications to develop some of the most important product features.     

The project release is attended by the “Product Owner” – the person who functions as a project manager in the Scrum project, the Scrum Master who overseas that Scrum is properly implemented and followed by the team while the project is being developed, and the stakeholders or project owners who actually sponsor the project. 

3.    Creating the product backlog (Product Features List) – Defining the product features and functionality
The Scrum development process starts with the creation of a master list containing all features and functionality required to create the product in totality. In simple terms, the entire product, currently existing on paper as “imagined” by the stakeholders and project owners, is “broken down” into its constituent parts, consisting of individual features and functionality. The product is thoughtfully, and systematically, broken down such that each individual component can be individually developed, tested, and eventually integrated with other software components or functionality developed by the team over the days. Individually developed features and functionality can eventually “give birth” to a working product when integrated or assembled later on.

Each individual feature or list item is known as a “Product Backlog Item” or a “user story” in simple language. Therefore, the product backlog or the master list is fundamentally composed of product backlog items or user stories. The user story represents a product feature, and is individually developed by the team members during the development process – the daily sprints. Each story can be minutely defined. The description, acceptance criteria (Points which need to be “fulfilled” or satisfied before which the story can be considered as successfully developed), its importance in the project, and the manner in which it is supposed to be integrated into the final product, etc. are mentioned for each user story.

Once the feature list is created, it is arranged depending upon the importance of each user story in the product backlog. Important user stories are arranged in the “top” portion of the list, lesser important stories in the middle, and the least important features and functionality in the bottom portion.    

4.    Sprint planning meeting – Planning how to develop the product features
The product backlog functions as the main “backbone” of all development related activities in Scrum. Once it is “developed” by the product owner and the stakeholders, the actual development activity can start. A special meeting known as a “Sprint Planning” meeting is held to initiate the development activity. The meeting is attended by the entire development team, in addition to the product owner “PO” and the scrum master “SM”.

The meeting is held in two parts. In the first part, the product owner selects some of the most important user stories or product features from the top of the product backlog, and transfers them to a temporary list known as a “Sprint Backlog” for development purpose. During the meeting, the product owner takes the opportunity to explain each user story in details to the team members – how user stories should be ideally developed, and what activities the team should carry out so that each story can be marked as successfully completed.

During the second half of the meeting, the development team analyses the sprint backlog and distributes each story to individual team members. In practise, the team members unanimously decide as to who should take up which story depending upon their development skills and experience levels. Simple and easily developable items are given to less experienced or “fresher” while difficult, or more complex stories are taken up for development by more experienced and senior programmers or developers.         

5.    The daily sprints – Developing the product features
This is the main area of activity in Scrum. The entire product is developed in “bits” and “pieces” through the daily sprint cycles. A sprint cycle is nothing but a collection of working or “development” days during which the team members actually sit in front of a PC and develop the functionality or product features. The sprint cycle is time boxed and should not extend its deadline.

Each item included in the sprint backlog during the sprint planning meeting should be developed while the sprint is currently underway. A brief meeting known as a “Daily Scrum Meeting” is held for a maximum of 15 minutes each day before the team members start with their work. The purpose of the meeting is to get an idea regarding how much work has been completed by each member the day before, and what each member proposes to do “today”. If a team member is facing any issues or problems, it can be mentioned during the meeting, and the scrum master will ensure that the issue is quickly resolved.   

In Scrum, the daily sprints can typically last from 2 weeks up to a maximum of one month. The duration of the sprint is decided during the second stage - the project release - and it should not be extended under any circumstances - even if any of the user stories in the sprint backlog have not been developed, or whose development is incomplete.  

6.    Sprint review – Checking and verifying productivity (Is the development OK?)
Scrum emphasises upon the development of “shippable” functionality at the end of daily sprint cycle. Each user story developed during the daily sprint is checked by the product owner and verified for its reliability, acceptance levels, and whether it is “bug free”. In Scrum, it is very important to deliver error free features – each user story should be properly tested for any regression, and whether it satisfies the acceptance criteria linked with its development. 

Just after the daily sprint cycle ends, a meeting is immediately held to review the development carried out by the team. It is important to differentiate between the daily sprints and the sprint cycle. The daily sprint is the development activity carried out by the entire team on one particular working day. Many such “daily sprints” combine to form the “Daily Sprint Cycle”, also known as the “product incremental cycle” in Agile. The meeting is held at the end of the product incremental cycle – the daily sprint cycle. It is primarily attended by the product owner, the scrum master, and the team members. It is not mandatory for the stakeholders to attend this meeting. They can chose to attend it if they so desire.

The main objective of this event, or rather the meeting, is to check whether the features have been developed by the team as per the production plan, and if the functionality has any “manufacturing” defects. Each feature should be fully tested for any flaws by the team before presenting it in this meeting. The product owner verifies if the feature is error free and checks if it satisfies the acceptance criteria linked with it. It is a kind of “final” check carried out before presenting the development to the stakeholders and the project owners in the subsequent sprint retrospective meeting. During the meeting, the product owner instructs the team how it can improve its working and offer even better productivity by employing more efficient programming practices and standards.

7.    Sprint retrospective – Finalising product functionality and contemplating about further improvement
Agile Scrum advocates client participation. The client is a very important entity in Scrum, and has the final say as far as the development of product features is concerned. The Agile manifesto primarily stresses upon client participation and delivery of time bound product increments because these two aspects are very important for developing successful projects. A “satisfied” client often “comes back” to develop more projects since successful projects help the client to earn higher profit margins.

The retrospective provides an opportunity for the entire team to demonstrate its productivity in front of the stakeholders and clients. In addition to the product owner, scrum master, the development team, the meeting may also be attended by end users, technical staff personnel, vendors, distributors, and even other employees since the main purpose of the meeting is to avail feedback from individuals and entities closely linked with the market, and who have sound knowledge regarding what product features are likely to “score” in the market once the product is launched, and what can aid the product in “selling”.

The retrospective also offers a chance for the entire team as well as the client to reflect upon the development process, and discover what more could be done to make the product better. Discussions are carried out to ascertain the rate at which user stories are currently being developed by the team, and what new processes or methods need to be introduced to quicken the process.


Wednesday 23 April 2014

Seven Unique Ways To Breath In New Life In Your Sprint Retrospectives

Sprint retrospectives are an important part of scrum methodology. For Agile practitioners, retrospectives hold a special significance, and offer an insight into the self-learning capabilities supported by scrum.

The primary objectives of a sprint retrospective meeting are:
·       Display the user stories to the stakeholders, which have been developed by the team during the daily sprints  
·       Have the user stories accepted by the investors as “shippable”
·       Discuss and review the entire sprint, and analyze it to find how the sprinting process can be improved upon
·       Find what lessons can be learnt from the sprint, and how the team can benefit from prior findings and experiences
 
One of the issues faced by the scrum team is the team members end up discussing the same issues and problems in most of the retrospective meetings. The team feels it is discussing the same topics again-and-again, and therefore it is redundant to hold retrospectives. In all aspects, the retrospectives seem to be going “stale” and the team might be just holding it because scrum advocates it. The learning and self correction process stops in such cases, and the retrospective loses its importance and functionality.

So how can you pump in new life in the retrospectives? A few pointers may help you improve your meetings.

1. Rotating the leadership
Instead of the scrum master facilitating the meeting, invite the team members to temporarily assume the role of a scrum master and conduct the meeting. Each member takes turns and facilitates the meeting in his or her own particular way and manner. The members can be asked to experiment with newer adaptations and ways of holding the meeting.

2. Changing the questions
The two standard questions most commonly asked during the meeting are:
1.     What did we do well this time?
2.     What can be possibly improved upon in the next sprint?
Instead, try asking the question:
·       What actually happened during the sprints, and how did it occur?
Individuals tend to look at things from their own perspectives, and at times, they might fail to comprehend the true situation if they are forced to look at issues from a different point of view which they are not familiar with. Asking questions which they find easy to answer can go a long way in making the retrospective more interesting and useful.

3. Varying the process
Each scrum team has its own method of conducting the meeting. While some teams prefer group discussions during the retrospectives, a few of the teams follow the traditional pattern of having one member demonstrate his or her work to the stakeholders. Whichever process you follow, try to change it by including variations into the meeting pattern. A recommended method is to use histograms indicating member satisfaction levels. The survey can be conducted anonymously and the findings presented to the entire team. Suggestions can be availed from the team members as to what new aspects ought to be incorporated to make the meeting interesting. 

4. Thinking about unique perspectives
Individuals and people who are not directly connected with the scrum project, but are still attached to the project somehow can be invited to attend the meeting. Vendors and system deployment personnel have different insights to offer since they are directly connected with the market and have a “working knowledge” about consumer psychology and requirements. Their participation can help the scrum team to avail a broader perspective regarding how the development of user stories should be ideally carried out.

5. Changing the focus
Every team has a certain focal point, which it concentrates upon while developing the project. Switching the focus can also prompt the team to come up with new ideas about how the scrum process can be improved upon. If the team is concentrating too much upon the engineering practices, the focus could be changed to collaborative working and solving technical issues by sharing out the problems.Read more on http://blog.quickscrum.com/post/2014/04/09/Seven-Unique-Ways-To-Breath-In-New-Life-In-Your-Sprint-Retrospectives.aspx


         "Please visit http://www.quickscrum.com to Free download the Quickscrum tool" 

Thursday 3 April 2014

Agile Values in Scrum: The Important Principles and Values of Scrum Explained

Scrum is perhaps the best known Agile method of implementing successful projects. Scrum projects complete on time, and result into higher ROI for the stakeholders. This makes Scrum an ideal, and the most preferred choice while implementing projects, in which the product definition is liable to change with the changing market conditions. The Agile values and principles apply to scrum.   

Individuals and interactions more important than processes
Scrum, just like other Agile frameworks, relies much upon putting trust in teams and individuals connected with the project. The manner in which the team interacts is important. The team should take a proactive interest in determining what is to be done, and figure out how to achieve the aims and objectives associated with the project. Self correction and self learning is an integral part of scrum methodology, and the team should put in efforts to identify potential issues and problems which can act as impediments and hamper the project. The individuals should also take the responsibility to resolve the issues – they can take the help of the scrum master or the product owner as and when required, since these individuals are usually senior members, and have the required knowledge, as we as the expertise to find a way out and solve the problematic issues. For issues concerning the stakeholders and the investors, the product owner should take a proactive approach in availing the clarifications regarding the acceptance criteria, and guide the team in proceeding with the user stories. In scrum, it is essential that the team feels responsible, and undertake the responsibilities in a proactive manner.

Working and shippable software takes precedence over documentation and marketing concerns
The main purpose and objective of scrum is to produce shippable products through iterations know as sprints. The entire development of the product occurs in sprints. At the end of each sprint, the product owner verifies the quality of the development carried out by the team, and adjudges the completed user stories, whether they comply with the acceptance criteria. It is imperative that sprints deliver shippable products which fulfill the stakeholder’s vision of a successful marketable product. The documentation required to “manufacture” the product, such as the project analysis report, project design, testing and documentation of the results, creating user manuals and technical specifications etc. are important too, but the actual development through the sprints, and churning out shippable products at the end of sprints is more important and precedes the documentation associated with the development.

Collaborating with the customers more important than contracts and legal documentations
The product owner is the main entity which functions as the main point of contact between the team and the stakeholders, as well as the end users of the product. The product owner collaborates with the team, and determines what needs to be done next to make the project a distinct success. A primary responsibility is to ensure that the product maintains the highest possible market value at all times, even while it is being developed. This is the most critical aspect of scrum.

Transparency and taking proper decisions at the right time and the right manner
Scrum stresses heavily upon transparency and sharing information. The entire scrum process is designed to facilitate the flow of information and increase the transparency. Each team member should have access to the required information. They should have access to proper data and important information, so they can make informed decisions and fulfill their responsibilities in a proper and effective manner. Each aspect associated with the scrum process – including the product backlog and user stories – should be made available at all times so that the product increment through sprints is availed as per production plan and schedule.
Source:- http://computersight.com/programming/agile-values-in-scrum-the-important-principles-and-values-of-scrum-explained/

      "Please visit http://www.quickscrum.com to download the Quickscrum tool" 

Wednesday 2 April 2014

The Core Role and Responsibilities of a Product Owner in Scrum

One of the commonest mistakes that people make while considering the product owner’s role in scrum is to consider him or her as either actually owning the product, or functioning as a decision maker while developing the product for the stakeholders. This is far from true, since the product owner is actually employed by the stakeholders to represent their interests while scrum is implemented in a project. A product owner can own a product, but is not necessarily its owner in most cases.

The core job of the product owner, or rather the main responsibility, is to:
·       Figure out how to “make” the product
·       Ensure that the sprints are successfully completed during the project
·       Shippable products are delivered at the end of sprints
·       Ensure that the scrum project is successfully completed

The product owner’s job is a difficult one, and a full-time one.

The product owner as the core determinant of a successfully completed scrum project
It is essential to deliver value, and the scrum method requires an efficient, reliable, and an accurate mechanism, which can help to determine the product vision and create an effective pipeline which has the capability of distilling the product vision into shippable, concrete, and deliverable product backlog items that can successfully demonstrate the tangible benefits as a part of the longer project vision. It is because of this reason that the role of a product owner becomes a very important one while implementing scrum.

While the product owner can participate in each Scrum ritual, his or her main function, parallel to that of the scrum master, is to act as a facilitator for the entire team, and be available when problems and issues arise in the project. The main tasks of a product owner are:
·       Envisioning the product and facilitating its development
·       Creating an iterative or sprint release strategy which can incorporate the changing market conditions and product requirements
·       Distilling the high-level product related requirements into developable and deliverable user stories linked with acceptance criteria
·       Prioritizing the product backlog
·       Communicating difficult and complex system architecture issues to the clients
·       Negotiating all client-sided disputes and concerns associated with the product design, development, and user story priorities

Responsibilities of a product owner
The person is mainly responsible for:
·       Representing the interests of, and acting as the voice of stakeholders and customers
·       Understanding project profitability and delivering high ROI
·       Managing the stakeholders
·       Maintaining communications and promoting collaboration amongst the team members
·       Undertaking on-the-spot tactical decisions and ensuring that the product development cycle is not affected
·       Participating in the release meetings and planning
·       Writing effective user stories
·       Maintaining and updating the product backlog
·       Helping the team in estimating the development time for each scrum scenario
·       Participating in the sprint review meetings, accepting the user stories as “Done”, and providing effectual feedback

·       Monitoring the project progress and suggesting constant adjustments based upon important strategic objectives

              "Please visit http://www.quickscrum.com to download the Quickscrum tool"

Tuesday 25 March 2014

The Main Reasons Why Work Is Not “Done” In Scrum, And Why the Acceptance Criteria Is Not Met

Perhaps the most important aspect of scrum methodology is the concept of “Done” or meeting the acceptance criteria while developing the tasks. The product owner, who represents the interests of the stakeholders, approves and certifies the acceptance criteria defined in individual user stories, or the product backlog items. It is very much important for the user stories to be accepted as “Done” because in scrum an item can only be considered as “shippable” and “complete” when its “Done” criteria is met. The terminology used to describe “Done” is synonymous with the acceptance criteria in scrum methodology. The words describe the same thing.

There are times when the acceptance criterion is not met, and the user stories are not considered as complete. This can be the worst possible scenario as far as conducting the daily sprint is concerned, since the basic objective of the sprint cycle is to meet the acceptance criteria and deliver a shippable product at the end of the iteration. Unaccepted and unfinished user stories reflect unsuccessful sprints and improper implementation of scrum.

It is worth knowing about some scenarios, which can result in a condition when the “Done” criterion is not fulfilled in scrum. 

1.    Lack of a good cross -functional team
By “cross functional” we mean a team, or a group of individuals having different areas of specializations, who work in unison to achieve a common objective or a cause. In scrum, if the product is technically complex, or if the functionality associated with the product is varied and extensive, it is essential to have a cross functional team. When individuals with different areas of specializations work together to develop a solution, it becomes very easy to carry out the development activity, since the technical requirements are catered to by developers who have required levels of expertise and can provide clear and concise solutions for a given task or a problem. Queries are resolved in a more successful manner, and in the least amount of time.

During the sprint, when or if a team member faces a particular problem, it is possible for other cross-functional team members to contribute their knowledge and skills, and provide a proper solution for the problem in hand. This makes the development work easy, fast, precise, and effective. It is very important, and recommended, for scrum teams to be cross-functional. 

Non cross-functional team members may find it exceedingly difficult to find quick solutions when problems arise during the sprint activity. The primary reason why this happens is because they lack the required experience, or do not possess sufficient skill sets to offer effective solutions, which can solve the problem currently impeding further product development. The levels of expertise typically required may include designing, business analysis, development, database designing, testing, and other similar skills. It is essential for the developer to be proficient and very good in his or her work. Failing to have such technically sound team members in the sprint may result in substandard or defective developmental activity. Tasks which are not technically perfect, or which have bugs in them may not be accepted as “Done”. 

2.    Unclear or undefined acceptance criteria in the user stories and tasks
It becomes very hard and almost impossible for the development team to successfully complete the tasks included in the sprint backlog if the meaning of “Done” is not properly explained in the user story, of if the story simply fails to include the acceptance criteria required for its development. Typically, in such cases the team starts working blindly, and often pursues a vision of what the actual “Done” should ideally include in the user story. Rather than the product owner explaining the meaning of “Done”, the team assumes what the “Done” criteria is and starts developing the task based upon their assumptions.

This can prove to be a dangerous habit as far as the project is concerned since the entire team starts pursuing unclear and even undefined objectives which have no relevance whatsoever as far as the project is concerned. The result is a lot of “wastage” suffered by the stakeholders and the management in terms of unproductive working hours and human resources.

3.    Using outdated or obsolete technologies for development purposes
Technology keeps on changing continuously. For the team members, it is essential that they remain in touch with the latest development techniques and trends. As it quite the norm, existing technology tends to “phase out” over time, and is replaced by emergent technologies, which are more powerful, dynamic, and effective.

Using older technologies may lead to incomplete development, simply because phased out technologies do not have the potential to offer the functionality needed to develop a competitive product. Moreover, the team may find it very hard, or impossible, to meet the acceptance criteria, and not be able to develop the task. At times, the definition of “Done” may not be satisfied by using out dated technologies. Using old engineering practices can lead to undue wastage of development time, and even lead to the development of sub standard products. It is very important to use upcoming and newly emerging technologies to deliver quality products.

4.    An overworked development team
The stakeholders and the management are mainly concerned with marketing the product once its development is completed. Their objective is to launch the product as soon as possible, and benefit from the amount they have invested in the project. They often compel the scrum team to take up more work, or even complete the project well before the decided completion date.

This can make the development team to cut corners while completing their sprint tasks. Since the team is forced to work against time, it is going to affect the development and quality of the finished tasks. As enough time is not available to check and verify the acceptance criteria, the team may simply decide to carry out the development and submit their tasks in the sprint review meeting without verifying the acceptance or “Done” criteria. The team fails to perform properly because it is compelled to “deliver more” and it simply lacks the time to check the acceptance criterion.

5.    Lack of collaboration and integration activity
 The main essence of scrum is collaboration. Team members should work in a joint manner to achieve common objectives. Scrum methodology also advocates team members to co-operate and help each other when problems arise and solutions are required. Moreover, collaboration is essential when the team is undertaking the sprint. Collaborated efforts lead to a well-organized team and improved productivity.

When the team members start working individually and stop collaborating, it leads to a situation where in the tasks are not properly linked up, or integrated in a proper manner, to be effective. Generally, during the sprint, the segregated user stories are developed in the form of tasks, and the tasks have to later integrated to fulfill the acceptance criteria. If the team members are working individually, the tasks cannot be integrated or linked up as specified in the acceptance criteria. The definition of “Done” is therefore not fulfilled.

                        "Please visit http://www.quickscrum.com to download the Quickscrum tool" 


Wednesday 19 March 2014

The Purpose And Goals Of Carrying Out Product Backlog Refinement In Scrum

The official scrum guide mentions about carrying out routine maintenance activities to update the product backlog, or to carry out the product backlog refinement. The exact time to be invested in the grooming activity depends upon the management, and how scrum is to be implemented in the project. A rule-of-the-thumb followed is to put in approximately 10% of the time utilized during the sprint activity, into the grooming activity. It is important to be clear regarding some of the aspects associated with product backlog refinement.

Purpose and goals of carrying out the refinement
The primary reason why the product backlog should be refined is to update or rebuild the backlog so that it remains consistent with the requirements provided by the stakeholders with regards the new features and functionalities to be included in the project. Another reason is to review existing user stories or product backlog items and decide whether they are still useful or pertinent from the development point of view, and to update the acceptance criterion and the explanation detailed in each PBI.  

It is recommended to use the “DEEP” method - detailed appropriately, estimated, emergent, and properly ordered – while prioritizing the user stories within the backlog. Larger stories or epics should be systematically broken down in to more manageable smaller ones, proper estimation by assigning relevant story points to the PBIs should be carried out,  user stories should be rearranged as per the new priorities,  and the queries regarding the development of user stories during the sprint should be effectively answered by the product owner. Whenever a meeting is planned to refine the PBIs, the objective should be to carry out enough refinement work so that it lasts for at least three future sprints.   

Duration and frequency of the grooming activity
Each activity and meeting is time boxed in scrum. Following the same principle, the product backlog refining or grooming activity should be time boxed too. However, in practice, there is no pre-designated activity or a meeting for planning and carrying out the product backlog refinement activity in the same manner as the sprint planning meeting and the sprint retrospective meeting is held. Backlog grooming is carried out more as a routine activity than anything else in scrum, and the guide does not exactly specify how much time or efforts should be invested in the activity. Perhaps a possible reason could be that the product development and creation of product backlogs vary from project to project, and it is difficult to standardize how the grooming activity should be carried out since the size and nature of the product backlog cannot be adjudged. Read more on http://ezinearticles.com/?The-Purpose-And-Goals-Of-Carrying-Out-Product-Backlog-Refinement-In-Scrum&id=8381136

       "Please visit http://www.quickscrum.com to download the Quickscrum tool" 


Friday 14 March 2014

Explanation Of Scrum Burndown Charts – The Plotting, Requirement, And Purpose Of Burndown Charts

What is a burn down chart?


A burn down chart is an important tool in scrum. It provides a visual representation about the progress achieved in a sprint while it is underway. They are very common and extensively used by scrum masters while scrum is being implemented in a project. The quantity, or the amount of work remaining, in the form of pending tasks, is typically exhibited in a burn down chart. The chart is simple and easy to understand, even by people who are not familiar with scrum methodology. Burn down charts are very useful for estimation purposes, and are essential for determining the sprint velocity – the rate at which work in the form of user stories is being completed by the development team – and planning the sprint release.  

Plotting the burn down chart
A burn down chart can be plotted by including the work remaining in the form of story points along the vertical Y-axis and the working days along the horizontal X-axis. The pending work is typically represented in story points – a unit of measurement to calculate the importance and priority of user stories in the sprint backlog – instead of user stories. The reason is user stories are broken down into tasks during the second half of the sprint planning meeting by the development team. It becomes difficult to read and understand the chart if tasks are represented along the Y-axis. User stories are descriptive in nature, and do not have a number or a value associated with them, so it becomes difficult to estimate them. Therefore, the story points, which are numeric values associated with each user story, are used for plotting purposes. Know more on http://ezinearticles.com/?Explanation-Of-Scrum-Burndown-Charts---The-Plotting,-Requirement,-And-Purpose-Of-Burndown-Charts&id=8371905 

          "Please visit http://www.quickscrum.com to download the Quickscrum tool"