Friday, May 8, 2015

Agile Methodology

Introduction

The Agile movement proposes alternatives to traditional project management. Agile approaches are typically used in software development to help businesses respond to unpredictability.

Scrum

Scrum is a management framework for incremental product development using one or more cross-functional, self-organizing teams of about seven people each. It provides a structure of roles, meetings, rules, and artifacts. Teams are responsible for creating and adapting their processes within this framework.Scrum uses fixed-length iterations, called Sprints, which are typically two weeks or 30 days long. Scrum teams attempt to build a potentially shippable (properly tested) product increment every iteration.

An Alternative to Waterfall

Scrum’s incremental, iterative approach trades the traditional phases of "waterfall" development for the ability to develop a subset of high-value features first, incorporating feedback sooner.






 The greatest potential benefit of Scrum is for complex work involving knowledge creation and collaboration, such as new product development. Scrum is usually associated with object-oriented software development.

Scrum Roles

Product Owner

·         Single person responsible for maximizing the return on investment (ROI) of the development effort
·         Responsible for product vision
·         Constantly re-prioritizes the Product Backlog, adjusting any long-term expectations such as release plans
·         Final arbiter of requirements questions
·         Accepts or rejects each product increment
·         Decides whether to ship
·         Decides whether to continue development
·         Considers stakeholder interests
·         May contribute as a team member
·         Has a leadership role
  
Scrum Development Team
  • Cross-functional (e.g., includes members with testing skills, and often others not traditionally called developers: business analysts, domain experts, etc.)
  • Self-organizing / self-managing, without externally assigned roles
  • Negotiates commitments with the Product Owner, one Sprint at a time
  • Has autonomy regarding how to reach commitments
  • Intensely collaborative
  • Most successful when located in one team room, particularly for the first few Sprints
  • Most successful with long-term, full-time membership. Scrum moves work to a flexible learning team and avoids moving people or splitting them between teams.
  • Has a leadership role
  
Scrum Master
  • Facilitates the Scrum process
  • Helps resolve impediments
  • Creates an environment conducive to team self-organization
  • Captures empirical data to adjust forecasts
  • Shields the team from external interference and distractions to keep it in group flow (a.k.a. the zone)
  • Enforces timeboxes
  • Keeps Scrum artifacts visible
  • Promotes improved engineering practices
  • Has no management authority over the team (anyone with authority over the team is by definition not its ScrumMaster)
  • Has a leadership roleScrum

Scrum Meetings





 Sprint Planning Meeting

 At the beginning of each Sprint, the Product Owner and team hold a Sprint Planning Meeting to negotiate which Product Backlog Items they will attempt to convert to working product during the Sprint. The Product Owner is responsible for declaring which items are the most important to the business. The team is responsible for selecting the amount of work they feel they can implement without accruing technical debt. The team “pulls” work from the Product Backlog to the Sprint Backlog. 


 Daily Scrum Meeting

 Every day at the same time and place, the Scrum Development Team members spend a total of 15 minutes reporting to each other. Each team member summarizes what he did the previous day, what he will do today, and what impediments he faces. 

Standing up at the Daily Scrum will help keep it short. Topics that require additional attention may be discussed by whomever is interested after every team member has reported.

Sprint Review Meeting

After Sprint execution, the team holds a Sprint Review Meeting to demonstrate a working product increment to the Product Owner and everyone else who is interested. The meeting should feature a live demonstration, not a report.

The ScrumMaster helps the Product Owner and stakeholders convert their feedback to new Product Backlog Items for prioritization by the Product Owner. Often, new scope discovery outpaces the team’s rate of development. If the Product Owner feels that the newly discovered scope is more important than the original expectations, new scope displaces old scope in the Product Backlog.

Sprint Retrospective Meeting

Each Sprint ends with a retrospective. At this meeting, the team reflects on its own process. They inspect their behavior and take action to adapt it for future Sprints.
Retrospectives often expose organizational impediments. Once a team has resolved the impediments within its immediate influence, the ScrumMaster should work to expand that influence, chipping away at the organizational impediments.

ScrumMasters should use a variety of techniques to facilitate retrospectives, including silent writing, timelines, and satisfaction histograms. In all cases, the goals are to gain a common understanding of multiple perspectives and to develop actions that will take the team to the next level.

Scrum Artifacts

Product Backlog


  • Force-ranked list of desired functionality
  • Visible to all stakeholders
  • Any stakeholder (including the Team) can add items
  • Constantly re-prioritized by the Product Owner
  • Items at top are more granular than items at bottom
  • Maintained during the Backlog Refinement Meeting

Product Backlog Item(PBI)

  • Specifies the what more than the how of a customer-centric feature
  • Often written in User Story form
  • Has a product-wide definition of done to prevent technical debt
  • May have item-specific acceptance criteria
  • Effort is estimated by the team, ideally in relative units (e.g., story points)
  • Effort is roughly 2-3 people 2-3 days, or smaller for advanced teams

Sprint Backlog


  • Consists of committed PBIs negotiated between the team and the Product Owner during the Sprint Planning Meeting
  • Scope commitment is fixed during Sprint Execution
  • Initial tasks are identified by the team during Sprint Planning Meeting
  • Team will discover additional tasks needed to meet the fixed scope commitment during Sprint execution
  • Visible to the team
  • Referenced during the Daily Scrum Meeting

Sprint Task


  • Specifies how to achieve the PBI’s what
  • Requires one day or less of work
  • Remaining effort is re-estimated daily, typically in hours
  • During Sprint Execution, a point person may volunteer to be primarily responsible for a task
  • Owned by the entire team; collaboration is expected

Sprint Burndown Chart


  • Indicates total remaining team task hours within one Sprint
  • Re-estimated daily, thus may go up before going down
  • Intended to facilitate team self-organization
  • Fancy variations, such as itemizing by point person or adding trend lines, tend to reduce effectiveness at encouraging collaboration
  • Seemed like a good idea in the early days of Scrum, but in practice has often been misused as a management report, inviting intervention. The ScrumMaster should discontinue use of this chart if it becomes an impediment to team self-organization.

Conclusion

Agile development provides opportunities to assess the direction throughout the development lifecycle.This “inspect-and-adapt” approach to development reduces development costs and time to market. Agile development helps companies build the right product. Agile empowers teams to continuously replan their release to optimize its value throughout development, allowing them to be as competitive as possible in the marketplace. Agile development preserves a product’s critical market relevance and ensures a team’s work doesn’t wind up on a shelf, never released.

Wednesday, May 6, 2015

Minimum Viable Product

Introduction


• A minimum viable product is the version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort 
          - Eric Ries, "The Lean Startup"



Common misconceptions?

An MVP is NOT:
• A cheaper alternative
• A landing page; MVPs can exist in other forms too
• Solely for technology development


Features of MVP

• MVPs refine the solution
• The goal of MVP is to build the smallest feature set
• An experiment to validate the hypothesis
• A minimalist user interface
• Usually discarded to buid the real product




Advantages?

• Avoid features noone will use
• Maximize the learning per dollar spent

Ways to create MVPs

Way 1:
Establish what has to be learnt about the potential customer’s needs

Explanation:
What is the root cause of the problem? 
What is the major pain associated with the problem?
What will they gain as a result of the solutions? 
Where did they look for solutions in the past? 
Why did they look there? Why were they still looking for a solution?
 

Way 2:
Identify the metrics linked to point 1 i.e. what exactly do you need to learn from the customer.

 Explanation: 

These measures will help you identify milestones and distinguish whether your learning is validated

Way 3:

Start off with a single or a few customers (although this may seem unprofitable, such an approach creates the opportunity for validated learning, and will help you to profile target customers, figure out what to build and allow you to differentiate your service or product from that of competitors)

  Way 4:

Pre -launch, create or join a community for those with the same need to engage potential customers (these are not the early adopters you’ve already engaged with, these are members of the majority crowd -those who share the problem you solve and may most likely choose to buy your solution some time in the future)

Way 5:



Test your hypotheses using different messages, different MVPs and targeted to different customer segments (the wider the range of tests the more likely you are to determine the most appropriate / profitable business model fit)
 


Examples

   Twitter
We all know Twitter is huge now. It has grown from a small little apartment startup to one of the biggest social media giants. The company went IPO last year and stock prices continue to soar. Did you know that Twitter started off with a simple sketch? After the sketch, they put together a simple splash screen and was still able to acquire new users because it was something new to everyone. Here is a picture of the early day sketch.

 
  
 Grockit


Grockit was founded in 2007 to enable social learning, specifically test preparation (SAT, LSAT, etc). The company used agile development to get a product out quickly and continues to use this method in continuous deployment. On a typical day, Grockit’s online learning platform hosts 1,000 cross national border interactions and supports users spanning 150 countries. Grockit actually gathered potential customer’s problems before they actually moved any further. They build their minimum viable product after creating a sign up form that asked potential customers what they want. This not only allowed them to build a minimum viable product email list but also allowed them to build a product that customers actually want. 



DropBox
  

Dropbox currently has over 4 million registered users. The cloud storing startup started off with a splash page as their minimum viable product. The splash page had a short demo video and a box to collect emails. Eric Ries was known for bringing alive the MVP concept, and the founders of Dropbox was a big fan of Eric’s blog. The founders of Dropbox followed the concept throughly and launched Dropbox. Within 15 months Dropbox went from 100,000 registered users to over 4,000,000. 


LinkedIn 

Linkedin wasn’t one of those startups that reached fame on the first day they started. The company started off with a simple page where you could login and invite your friends to join Linkedin as well. The page was not fancy at all but yet it had some strong call to action buttons that attracted users to invite their friends


Groupon


 Groupon is the bread and butter of minimum viable products. Groupon started off writing coupons to people who purchased them, then slowly moved up to using a file manager program to create coupons and personally emailing their customers with it. As the customer database grew, the startup upgraded to WordPress. From then on, Groupon has became one of the biggest daily deal websites in the United States. The startup moved slowly and cautiously, leading them to success.  


  


There you have it! 5 Perfect Examples of a minimum viable product. Don’t wait, go create your own minimum viable product today!