Skip to main content

SCRUM: A BREATHTAKING BRIEF AND AGILE INTRODUCTION - book summary

---

# book summary

Title: 'SCRUM: A BREATHTAKING BRIEF AND AGILE INTRODUCTION'

Authors:
  - Chris Sims
  - Hillary Louise Johnson

Scrum Definition: >
  Is a framework designed to help small teams of people develop complex products,
  the framework is not technical and can easily adapt the tools and practices to
  other industries.

more: >
  A Scrum team typically consists of seven (+-2) people who work together in short,
  sustainable bursts of activity called sprints, one of the mantras of scrum is
  “inspect and adapt” both the process and product.

# chapter 1: Roles
Roles:
  - Product-Owner
  - Scrum-Master
  - Team-Member

Product-Owner::responsibilities:
  - looks at ROI (product vision)
  - controls priority of work
  - responsible for user stories (business interests, customer, acceptance criteria, answer questions)

Scrum-Master::responsibilities:
  - facilitator (between team and stockholder)
  - team impediment resolver

Team-Member::responsibilities:
  - provides estimates
  - completes user stories

Team-size-significance:
  - few: less skills to finish the job
  - more: communication overhead

# chapter 2: Artifacts
Scrum-Artifacts (tools):
  - Product Backlog: Todo List of prioritized work items or user stories (e.g. features, bugs, doc etc)

Sprint-Backlog:
  - todo list (current sprint)

Story:
  - team deliverable unit
  - contains one or more task.
  - user (customer or owner to who the story will benefit)
  - description
  - value
  - estimate (size)
  - acceptance criteria (how to know that it was implemented correctly)

Task: 
  - person deliverable unit

BurnCharts: 
  - represents time(x-axis) and scope(y-axis), i.e. scope reduces with time.

Task-Board:
  - visible to all
  - contains todo, doing, done items
  - helps team and stakeholders see progress

Done-Definition: Team should define the definition to avoid confusion (code complete is not done may require other task like testing and releasing etc)

# chapter 3: Cycles
Sprint-Cycle-Meetings:
  - Sprint-Planning  (2 hrs)
  - Daily-Scrum       (15 mins)
  - Story-Time         (1 hr)
  - Sprint-Review     (30 mins)
  - Retrospective     (90 mins)

Sprint-Planning:
  - commit to stories and tasks

Daily-Scrum:
  - tasks completed
  - task expect to complete
  - any obstacles
  - problems are solved out site the meeting

Story-Time: discuss and improve product backlog

Sprint-Review:
  - show accomplishments to all including stakeholders
  - highlight any work not done
  - feedback

Retrospective:
  - what went well
  - what did not went well.

Frequent-demo: inspect and feedback

Notes:
  - Terminating a sprint half way is business decision.

Comments

Popular posts from this blog

JPA 2 new feature @ElementCollection explained

@ElementCollection is new annotation introduced in JPA 2.0, This will help us get rid of One-Many and Many-One shitty syntax.

Example 1: Stores list of Strings in an Entity

@Entity
public class Users implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
@ElementCollection
    private List<String> certifications = new ArrayList<String>();

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public List<String> getCertifications() {
        return certifications;
    }

    public void setCertifications(List<String> certifications) {
        this.certifications = certifications;
    }
..
}

        Users u = new Users();
        u.getCertifications().add("Sun Certified Java Programmer");
        em.persist(u);

Generated Tables

   Users
Column --> ID
    Row             1

Users_CERTIFICATIONS

Validating CSV Files

What is CsvValidator ?
  A Java framework which validates any CSV files something similar to XML validation using XSD.

Why should I use this ?
  You don't have to use this and in fact its easy to write something your own and also checkout its source code for reference.

Why did I write this ?
  Some of our projects integrate with third party application which exchanges information in CSV files so I thought of writing a generic validator which can be hooked in multiple projects or can be used by QA for integration testing.

What is the license clause ?
GNU GPL v2

Are there any JUnit test cases for me checkout ?
 Yes, source

How to integrate in my existing project ?

Just add the Jar which can be downloaded from here CsvValidator.jar and you are good.

Instantiate CsvValidator constructor which takes these 3 arguements

         // filename is the the file to be validated and here is a sample         // list - defines all the fields in the above csv file ( a field has index, type, isOptional, rege…

ArrayList vs LinkedList vs HashSet Performance Comparision

ConclusionsInserting & Reading sequentially from Collection prefer LinkedList/ArrayListInserting & Reading/Deleting by Search/equals from Collection prefer HashSetInserting, ArrayList & LinkedList performs best while HashSet takes double the timeReading, HashSet performs best while ArrayList & LinkedList are marginally lessDeleting, HashSet performs 10 times better than ArrayList & ArrayList performs 4 times better than LinkedList. LinkedList is slow because of sequencial search Bottom line : unless you are not going to iterate using for(Integer i : list ) then prefer HashSet
Inserting/Reading/Deleting integer's from zero till countJDK7Collectionactioncounttime msArrayListInsert1000/1LinkedListInsert1000/1HashSetInsert1000/1ArrayListInsert100005LinkedListInsert100004HashSetInsert100007ArrayListInsert10000011LinkedListInsert10000011HashSetInsert10000021ArrayListGet/Read1000LinkedListGet/Read1000HashSetGet/Read1000ArrayListGet/Read100004LinkedListGet/Read100003Has…