Diff for "yellow"

Not logged in - Log In / Register

Differences between revisions 5 and 51 (spanning 46 versions)
Revision 5 as of 2011-01-22 01:44:21
Size: 4137
Editor: gary
Comment:
Revision 51 as of 2012-06-19 13:03:21
Size: 6872
Editor: gary
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
Slogan for public consumption: '''''Go go Yellow Jackets!''''' Slogan for public consumption: '''''Go go Golden Horde!'''''
Line 7: Line 7:
Slogan when we feel tired: '''''Go go Yellow Banana Slugs!''''' Slogan when we feel tired: '''''Go go [[http://en.wikipedia.org/wiki/File:Banana_slug_closeup.jpg|Yellow Banana Slugs]]!'''''
Line 9: Line 9:
Current project is [[LEP/BetterBugSubscriptionsAndNotifications]] . Current project is [[LEP/ParallelTesting]] .
Line 11: Line 11:
Also see UI work at [[yellow/Subscriptions]] .
Line 13: Line 12:
== Next Deliverables == <<Anchor(daily-call-checklist)>>
== Daily call checklist ==
Line 15: Line 15:
Due 2011-01-28  * Review cards in Deployment, QA, Active (slack, multi-branch, and quick), and Miscellaneous WIP/Done lanes.
   * Have any non-Done cards been in the same lane for more than 24 hours? If so, discuss pairing and problem solving.
     * Are the developers stuck? Consider "convening a panel" after this call (see checklist below) to become unstuck.
     * Have they been in the same lane for more than 48 hours? If so, consider adding or rotating programmers.
       * Is no-one available for regular pair programming? If so, strongly consider blocking an active card in order to get that developer(s) available for focusing on the non-moving card. If more than one card is not moving, consider focusing on one at a time.
   * Is a card Done that had been a problem (non-moving)? If so, record it [[#topics-for-next-weekly-review-call|on this wiki page]] as a topic for the Friday review call.
   * Do any non-done cards on the board have deadlines? If so, review as necessary.
   * Move all Done-Done cards to archive.
 * Review all blocked cards everywhere. Are any of them unblocked? Do we need to take action to unblock any of them?
 * Make sure there are clearly cards to be done
 * For each person, mention any items that the squad should know: remind people of reduced availability, request help such as reviews or pair requests, etc.
Line 17: Line 27:
 * Gary:
    * Updated LEP, with definition of success/completion approved by Jono.
    * Iterative user testing plan, after discussion with Matthew and Jono.
    * Report on status of YUI upgrade plan from RobertCollins.
    * Report on reply from Jono/Robert on scheduling SMM or similar sooner.
=== Panel requests ===
Line 23: Line 29:
 * Brad and Benji:
    * Establish new testing feature flag that is granted to team:yellow
    * Replace non-js subscribe link with JS subscribe link.
    * Have the link pop up an accordion widget, on production.
    * Next task: Make the widget behave the way we want.
 * Danilo and Gary:
    * Filters and subscribers should be joined: demonstrate that the current filter page is gone.
    * Show that events are now integrated as one of the filters available on structural subscriptions.
    * Next task: One person takes mail unsubscribe story with Graham; other person joins Brad and Benji on JS/Webservice work.
 * Graham:
    * Make bug notification work through the API (in review)
    * Demo the widget for direct subscriptions, on production. Announce to malone-alpha team (with warning that it might or might not change significantly soon).
    * Next task: Mail unsubscribe story, with Gary and/or Danilo.
<<Anchor(unsticking-panel-checklist)>>
== Unsticking panel checklist ==
Line 37: Line 32:
== Problem Solving ==  * Take note of when the panel starts / set an alarm for T+20.
 * Describe problem avoiding mentioning your own (stuck) solutions and ask for solutions and approaches.
 * If that fails, describe your own solution and ask for solutions and ideas.
 * If the panel has taken longer than 20 minutes, stop. Arrange for a pair programming or consultation as necessary.
 * If no-one has said anything other than filler for three minutes, stop. Arrange for a pair programming or consultation as necessary. Consider rotation.
Line 39: Line 38:
=== 2011-01-21 ===
Line 41: Line 39:
 * Landing issues slowing us down. Solution: no short term solution identified. Ask Jono/Robert that SMM or similar be scheduled earlier.
 * JS painful; example we found was bad. Solution: Ask for early review from Deryck. Rejected solution: ask Deryck for a "blessed" example.
 * YUI upgrades are painful. Going from dot releases (e.g., 3.2 to 3.3) is a cost like switching major Python releases (e.g., 2.6 to 2.7). Solution: ask RobertCollins to be on top of YUI upgrades like Python upgrades, and to schedule upgrades with significant warning and full knowledge of the cost.
 * How do we get ongoing stakeholder guidance in an efficient way?
    * Francis suggests that we use UI testing of the full interface as a way to also get initial stakeholder approval. He feels user testing will frame the conversation productively to encourage direction of our plans rather than bikeshedding. Benji warns that users may not understand that other features they are not tested on will not be present.
    * Benji wonders (without necessarily advocating) if Elliot might say "build it and people will like it." Gary feels we've tried that before (i.e., without sufficient stakeholder approval) and failed.
    * Benji suggests that we ought to have a single stakeholder representative. Gary feels that we've seen before that this is insufficient and historically problematic.
    * We collectively wonder what Jono's approval of the UI and the definition of "done" means in this regard. Is it Jono's responsibility to be the developers' only interface to the stakeholders now?
    * We talk about whether UI mockups or prototypes or incremental deliveries would be more valuable for getting input. UI mockups are cheaper than development, but incremental deliveries are more efficient if they are on the right track. Gary feels an ideal answer is finding a cheap way of getting ''just enough'' of a stakeholder blessing of a UI, and then using incremental deliveries to steer the rest of the way. Time-boxed mockups, developed iteratively ideally, combined with iterative delivery.
    * Next task for pursuing solution: Gary needs to contact Matthew (and Jono and/or Francis?) and see how user testing might work and what we need to provide. We do not yet have all parts of the user interface mocked up. We'd like to see if we can find an approved way to do iterative user testing--several tests instead of one big one. Can we make it cheaper/easier?
<<Anchor(pair-programmer-observer-checklist)>>
== Pair programming observer checklist ==

 * Be actively skeptical.
 * Watch the other person's back.
 * Be a planner: actively propose plans to tackle problems
 * Offer to be a "navigator," keeping the destination in mind while the "driver" handles the details.
 * When something doesn't make sense, this is a trigger for both parties to check assumptions and step back.


<<Anchor(weekly-review-call-checklist)>>
== Weekly review call checklist ==

 * Briefly review where we are in project plan.
 * Review [[#topics-for-next-weekly-review-call|"topics for next"]], below
 * Any new tricks learned?
   * Collaboration tricks?
   * Debugging tricks?
   * Communication tricks?
   * Checklists? Processes?
 * Any nice successes?
   * Can you attribute your success to anything beyond the innate brilliance of yourself and your coworkers?
 * Any pain experienced?
   * Questions to ask:
     * Are there any cards that are/were taking too long to move?
       * Are they blocked?
       * Are we spinning our wheels?
       * How long is too long?
     * Are we not delivering value incrementally?
     * Are we not collaborating?
     * Did we duplicate any work?
     * Did we have to redo any work?
       * Did we misunderstand the technical requirements, the goal, or a process?
       * Was the ordering of tasks that we chose broken?
   * Can we learn from it?
     * Checklist?
     * Experiment?
     * Another process change?

<<Anchor(topics-for-next-weekly-review-call)>>
=== Topics for next ===

 * gary_poster: subprocess.CalledProcessError: Command '['apt-get', 'install', '-y', '--force-yes', u'buildbot/lucid']' returned non-zero exit status 100 -> apt-get clean (then juju resolve --retry buildbot-slave/0 and wait for install-error to go away). Can we add this to charm helpers?


<<Anchor(starting-a-project-checklist)>>
== Starting a project checklist ==

 * Prototype (no tests). Consider competing prototypes.
 * Have a squad discussion about lessons learned and design decisions.
 * Review CreatingNewProjects to get everything started properly. Also see [[https://docs.google.com/a/canonical.com/document/d/1A8qTOYZd7p9dhjmlnnEKW46h38ydt9yNbmfgX3yhPGw/edit|jml's document]] for further ideas on what to add to this checklist.
 * Begin coding with TDD.

<<Anchor(depending-on-another-developer-or-team-checklist)>>
== Depending on another developer or team checklist--someone new or with past delivery problems ==

 * Doublecheck whether you can't do it yourself somehow, or get someone with proven cross-team delivery ability.
 * Are you depending on a person or a team? If it is a person, consider trying to escalate it to the manager, to make it a team goal, or at least something with team visibility and managerial approval and encouragement.
 * If they need something from you, ask what format they want it in in order to be able to process your request as quickly as possible.
 * A corollary to the previous one: make sure that you are making the smallest request necessary and reasonable.
 * While it is tempting, and sometimes necessary, to be flexible for interacting with busy people, if the work is worth doing, the sooner it is done, the more value you get from it. The longer you wait, the more likely it is that you will get no value from it. This is "lean" for our squad, and also for the company. Try to communicate this.
 * Request a delivery date guess. Consider requesting that a call be scheduled on that date, either for handover or for reassessment. If there is a deadline for us, also bring this to the attention of the Launchpad manager (flacoste).
 * If the delivery doesn't happen on the expected date, (on the scheduled call) ask for three things: a revised delivery date, another associated call, and a fallback plan. The fallback plan should be some reasonable remediation if the second delivery date fails. Also bring this to flacoste's attention, and discuss with him whether official escalation is appropriate.

jml also pointed out this checklist from Covey's ''Seven Habits...''. You need to establish these things up-front:

 1. Desired results [spend time here, include "when"]
 2. Guidelines [what I'd call constraints]
 3. Resources available [money, team, people]
 4. Accountability [what measures, how often]
 5. Consequences [natural ones & incentives]

We should also try to incorporate these ideas.

Yellow Squad Wiki Home

https://launchpad.net/~yellow/+mugshots

Slogan for public consumption: Go go Golden Horde!

Slogan when we feel tired: Go go Yellow Banana Slugs!

Current project is LEP/ParallelTesting .

Daily call checklist

  • Review cards in Deployment, QA, Active (slack, multi-branch, and quick), and Miscellaneous WIP/Done lanes.
    • Have any non-Done cards been in the same lane for more than 24 hours? If so, discuss pairing and problem solving.
      • Are the developers stuck? Consider "convening a panel" after this call (see checklist below) to become unstuck.
      • Have they been in the same lane for more than 48 hours? If so, consider adding or rotating programmers.
        • Is no-one available for regular pair programming? If so, strongly consider blocking an active card in order to get that developer(s) available for focusing on the non-moving card. If more than one card is not moving, consider focusing on one at a time.
    • Is a card Done that had been a problem (non-moving)? If so, record it on this wiki page as a topic for the Friday review call.

    • Do any non-done cards on the board have deadlines? If so, review as necessary.
    • Move all Done-Done cards to archive.
  • Review all blocked cards everywhere. Are any of them unblocked? Do we need to take action to unblock any of them?
  • Make sure there are clearly cards to be done
  • For each person, mention any items that the squad should know: remind people of reduced availability, request help such as reviews or pair requests, etc.

Panel requests

Unsticking panel checklist

  • Take note of when the panel starts / set an alarm for T+20.
  • Describe problem avoiding mentioning your own (stuck) solutions and ask for solutions and approaches.
  • If that fails, describe your own solution and ask for solutions and ideas.
  • If the panel has taken longer than 20 minutes, stop. Arrange for a pair programming or consultation as necessary.
  • If no-one has said anything other than filler for three minutes, stop. Arrange for a pair programming or consultation as necessary. Consider rotation.

Pair programming observer checklist

  • Be actively skeptical.
  • Watch the other person's back.
  • Be a planner: actively propose plans to tackle problems
  • Offer to be a "navigator," keeping the destination in mind while the "driver" handles the details.
  • When something doesn't make sense, this is a trigger for both parties to check assumptions and step back.

Weekly review call checklist

  • Briefly review where we are in project plan.
  • Review "topics for next", below

  • Any new tricks learned?
    • Collaboration tricks?
    • Debugging tricks?
    • Communication tricks?
    • Checklists? Processes?
  • Any nice successes?
    • Can you attribute your success to anything beyond the innate brilliance of yourself and your coworkers?
  • Any pain experienced?
    • Questions to ask:
      • Are there any cards that are/were taking too long to move?
        • Are they blocked?
        • Are we spinning our wheels?
        • How long is too long?
      • Are we not delivering value incrementally?
      • Are we not collaborating?
      • Did we duplicate any work?
      • Did we have to redo any work?
        • Did we misunderstand the technical requirements, the goal, or a process?
        • Was the ordering of tasks that we chose broken?
    • Can we learn from it?
      • Checklist?
      • Experiment?
      • Another process change?

Topics for next

  • gary_poster: subprocess.CalledProcessError: Command '['apt-get', 'install', '-y', '--force-yes', u'buildbot/lucid']' returned non-zero exit status 100 -> apt-get clean (then juju resolve --retry buildbot-slave/0 and wait for install-error to go away). Can we add this to charm helpers?

Starting a project checklist

  • Prototype (no tests). Consider competing prototypes.
  • Have a squad discussion about lessons learned and design decisions.
  • Review CreatingNewProjects to get everything started properly. Also see jml's document for further ideas on what to add to this checklist.

  • Begin coding with TDD.

Depending on another developer or team checklist--someone new or with past delivery problems

  • Doublecheck whether you can't do it yourself somehow, or get someone with proven cross-team delivery ability.
  • Are you depending on a person or a team? If it is a person, consider trying to escalate it to the manager, to make it a team goal, or at least something with team visibility and managerial approval and encouragement.
  • If they need something from you, ask what format they want it in in order to be able to process your request as quickly as possible.
  • A corollary to the previous one: make sure that you are making the smallest request necessary and reasonable.
  • While it is tempting, and sometimes necessary, to be flexible for interacting with busy people, if the work is worth doing, the sooner it is done, the more value you get from it. The longer you wait, the more likely it is that you will get no value from it. This is "lean" for our squad, and also for the company. Try to communicate this.
  • Request a delivery date guess. Consider requesting that a call be scheduled on that date, either for handover or for reassessment. If there is a deadline for us, also bring this to the attention of the Launchpad manager (flacoste).
  • If the delivery doesn't happen on the expected date, (on the scheduled call) ask for three things: a revised delivery date, another associated call, and a fallback plan. The fallback plan should be some reasonable remediation if the second delivery date fails. Also bring this to flacoste's attention, and discuss with him whether official escalation is appropriate.

jml also pointed out this checklist from Covey's Seven Habits.... You need to establish these things up-front:

  1. Desired results [spend time here, include "when"]
  2. Guidelines [what I'd call constraints]
  3. Resources available [money, team, people]
  4. Accountability [what measures, how often]
  5. Consequences [natural ones & incentives]

We should also try to incorporate these ideas.

yellow (last edited 2012-07-23 12:16:16 by gary)