Scrum & ScrumWorks Learning

来源:互联网 发布:有java培训的地方吗 编辑:程序博客网 时间:2024/04/27 14:11

Scrum Learning

Wisdom Guo

 


Scrum Methodology

1.     There are three main roles in Scrum: Product owner, scrum master and team members.

2.     The first step in Scrum is for the Product Owner to articulate the product vision. This takes the form of a prioritized list of what’s required, ranked in order of value to the customer and business, with the highest value items at the top of the list. This is called the Product Backlog

3.     At any point during the project, the Product Backlog is the single, definitive view of “everything that needs to be done.”

4.     One doesn’t have to describe every possible detail of an item; one should just make clear what is necessary for it to be considered completed. The further down the Product Backlog one goes, the larger and less detailed the items will be; as they get closer to being worked on, additional detail gets filled in by the Product Owner.

5.     There will be back and forth with the Product Owner during this process, to clarify points, verify tradeoffs, break down bigger Backlog items into smaller pieces, and generally ensure that the team fully understands what’s being asked of it

6.     Making visible the good and the bad, and giving the team the choice of elevating itself to a higher level.

7.     The following diagram shows that the main process of Scrum.

 


Scrum Works under .NET

1.     Download the scrumworks from the http://danube.com, maybe, you will wait for about one business day to get the free trial license.

2.     After you install it, type: http://localhost:8080/scrumworks/ in your browse, if the page is shown correctly, it shows than it’s installed correctly.

3.     you can open the desktop client and the web client; and the default login: N: administrator     PWD: password

4.     Now, let’s do the important steps to make it’s available for .net programming.

·        Type: http://localhost:8080/scrumworks-api/scrumworks?wsdl in your browser.

·        You will see the web service it provides, like this:

·        Then, there are two ways to use it:

·        First, using VS2005 to add web reference to use it.

·        Second, using WSDL to compile it into .cs file, and then use the CSC.EXE to compile into DLL, and then add it into the VS2005.

·        wsdl  http://localhost:8080/scrumworks-api/scrumworks?wsdl /out:c:/scrumworks.cs (doing this in VS command prompt)

·        csc /t:library /out:c:/scrumWorks.dll scrumworks.cs (doing this, you will get the DLL file.)

·        There is an example to get some relevant information from scrumworks programmatically. 

See Appendix 1

 

Note:  If you encounter this HTTP 505 issue, please do the following steps:

·        Open the server.xml under scrumworks/deploy/jbossweb-tomcat55.sar

·        Place the relevant block, using the following segment:

    <Connector port="8080" address="${jboss.bind.address}"

         maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"

         emptySessionPath="true"

         enableLookups="false" redirectPort="8443" acceptCount="100"

         restrictedUserAgents="^.*MS Web Services Client Protocol.*$"

         connectionTimeout="20000" disableUploadTimeout="true"/>

 

 You must restart ScrumWorks Service to reload the modified config.xml file.


Appendix 1: example codes

using System;

using System.Collections.Generic;

using System.Text;

using WebServiceTest.ScrumWEB;

using System.Net;

 

namespace WebServiceTest

{

      class Program

      {

            static ProductWSO[] productList = null;

            static SprintWSO[] sprintList = null;

            static UserWSO[] userList = null;

            static TeamWSO[] teamList = null;

 

        static ScrumWorksService service = null;

            static void Main(string[] args)

            {

                  InitScrumService();

                  #region

                        try

                        {

                              getTest t = new getTest();

                              service.getTest(t);

                        }

                        catch (Exception e)

                        {

                              Console.WriteLine(e.Message);

                        }

            #endregion

                        productList =     GetProducts();

                        sprintList =      GetSprints();

                        teamList = GetTeam();

                        userList=   GetUsers();

                        Console.ReadLine();

           

            }

 

            static void InitScrumService()

            {

                  service = new ScrumWorksService();

                 NetworkCredential cred = new NetworkCredential("administrator", "password");

                  service.Credentials = cred;

                  service.PreAuthenticate = true;

            }

 

            public static SprintWSO[] GetSprints()

            {

                  getSprints sp = new getSprints();

                  SprintWSO[] spw = null;

                  foreach (ProductWSO p in productList)

                  {

                        sp.ProductWSO_1 = p;

                        spw = service.getSprints(sp);

                        Console.WriteLine("******************the Sprint list in products:{0} ******************", p.name);

                        foreach (SprintWSO sw in spw)

                        {

                              Console.WriteLine(sw.name);

                              Console.WriteLine();

                        }

                  }

                  return spw;

            }

 

            public static ProductWSO[] GetProducts()

            {

                  getProducts p = new getProducts();

                  ProductWSO[] products = service.getProducts(p);

                 Console.WriteLine("******************the product list: ******************");

                  foreach (ProductWSO product in products)

                  {

                        Console.WriteLine(product.name);

                        Console.WriteLine();

                  }

                  return products;

            }

 

            public static UserWSO[] GetUsers()

            {

                  getTeamMembers user = new getTeamMembers();

                  UserWSO[] users=null;

                  foreach(TeamWSO t in teamList )

                  {

                        user.TeamWSO_1 = t;

                        users = service.getTeamMembers(user);

                        Console.WriteLine("******************the user list in team:{0}******************",t.name);

                        foreach (UserWSO u in users)

                        {                            

                              Console.WriteLine(u.name);

                              Console.WriteLine();

                        }

                  }

                  return users;

            }

 

            public static TeamWSO[] GetTeam()

            {

                  getTeams teams = new getTeams();

                  TeamWSO[] teamcol = service.getTeams(teams);

                  Console.WriteLine("***********the team list:*****************");

                  foreach (TeamWSO t in teamcol)

                  {          

                        Console.WriteLine(t.name);

                        Console.WriteLine();

                  }

 

                  return teamcol;

            }

      }

}

 


Appendix 2: Common Glossary

·              rBV: Release Business Value

rBV is expressed and displayed as a whole number percentage in the Backlog Item Editor and in the Backlog Planner window. It is calculated automatically by summing Business Weights in a Release

·              ROI: Return on Investment

Return On Investment (ROI): This is a cost-benefit analysis involving Business Weights (benefit) and Backlog Effort Estimates (cost). It is an auto-calculated ratio of a given Backlog Item's Release Business Value divided by its Backlog Effort Percentage

·              Task:

In Scrum, a Task (or Sprint Task) is a unit of work generally between 4 and 16 hours. Tasks describe how Team Members intend to complete Product Backlog Items

·              Sprint:

A Sprint is an iteration of work during which an increment of product functionality is implemented. By the book, an iteration lasts 30 days; ScrumWorks Pro allows any length Sprint.
The Sprint follows a one-day Sprint Planning Meeting. Many Daily Scrum Meetings occur during the Sprint (one per day). At the end of the Sprint we have a Sprint Review Meeting, followed by a Sprint Retrospective Meeting

·              Release:

A Release is commonly defined as the transition of an increment of potentially shippable product from the development team into routine use by customers. Releases typically happen when one or more Sprints has resulted in the product having enough value to outweigh the cost to deploy it

·              Burndown Chart:

The Scrum books define a Sprint Burndown Chart to see daily progress, and a Product Burndown Chart to show monthly progress

 

 

 

 

 


Appendix 3: useful materials

  • Glossary:

http://danube.com/scrumworks/glossary

  • Solution for issues:

http://danube.com/scrumworks/pro/support/solutions-center

  • Online API:

http://danube.com/docs/scrumworks/pro/latest/api/index.html

  • Document list:

http://danube.com/docs/scrumworks/pro/latest/docs.html