30
Developing a Community and Ecosystem with NuGet Phil Haack, Jeff Handley, Howard Dierking

Developing a Community and an Ecosystem with NuGet

Embed Size (px)

DESCRIPTION

Phill Haack, Jeff Handley, and Howard Dierking deliver a presentation on the direction of the NuGet community. NuGet is and Outercurve project.

Citation preview

Page 1: Developing a Community and an Ecosystem with NuGet

Developing a Community and

Ecosystem with NuGet Phil  Haack,  Jeff  Handley,  Howard  Dierking  

Page 2: Developing a Community and an Ecosystem with NuGet

How did we get here?

Page 3: Developing a Community and an Ecosystem with NuGet
Page 4: Developing a Community and an Ecosystem with NuGet
Page 5: Developing a Community and an Ecosystem with NuGet
Page 6: Developing a Community and an Ecosystem with NuGet
Page 7: Developing a Community and an Ecosystem with NuGet

NPack

Page 8: Developing a Community and an Ecosystem with NuGet

NuPack

Page 9: Developing a Community and an Ecosystem with NuGet

Nuget

Page 10: Developing a Community and an Ecosystem with NuGet
Page 11: Developing a Community and an Ecosystem with NuGet
Page 12: Developing a Community and an Ecosystem with NuGet

The Core Team

•  Funded  by  Microso;  •  13  People    

•  6  developers    •  4  testers  •  3  overhead  (Howard,  Jeff,  Ranjini)  

Page 13: Developing a Community and an Ecosystem with NuGet

The Scope of NuGet

• NuGet  client  •  NuGet.Core  •  Visual  Studio  add  in  –  runs  in  VS  2010,  VS  2012,  and  beyond  

•  nuget.exe  • WebMatrix  client  

• NuGet  Gallery  •  Gallery  applicaRon  code  •  hSp://nuget.org  operaRons  

• NuGet  docs  (hSp://docs.nuget.org)  • NuGet  blog  (hSp://blog.nuget.org)  

Page 14: Developing a Community and an Ecosystem with NuGet

Some Numbers

Page 15: Developing a Community and an Ecosystem with NuGet

Usage

• ConsumpRon  •  4,648,997  Visual  Studio  client  downloads  (4.5/5  stars)  

•  270,877  downloads  of  NuGet  2.5  (released  13  days  ago)    •  68,093,144  package  downloads  

• Package  authoring  •  12,566  unique  packages  •  94,070  total  packages  

hSp://nuget.org    

Page 16: Developing a Community and an Ecosystem with NuGet

NuGet Client (http://nuget.codeplex.com)

•  3,570  commits  •  95  contributors  •  61,086  LOC  •  Stable  YOY  commit  rate  •  48  contributors  in  the  last  12  months  (+26%  YOY)  •  4  new  contributors  in  the  last  30  days  

hSp://www.ohloh.net/p/nuget    

Page 17: Developing a Community and an Ecosystem with NuGet

NuGet Gallery (https://github.com/nuget/nugetgallery)

•  1,314  commits  •  27  contributors  •  51,768  LOC  •  Stable  YOY  commit  rate  •  18  contributors  in  the  last  12  months  (+20%  YOY)  

hSp://www.ohloh.net/p/nugetgallery    

Page 18: Developing a Community and an Ecosystem with NuGet

NuGet Docs (https://github.com/nuget/nugetdocs)

•  524  commits  •  62  contributors  • Decreasing  YOY  commit  rate  •  3  new  contributors  in  the  last  30  days    •  32  contributors  in  the  last  12  months  (-­‐15%  YOY)  

hSp://www.ohloh.net/p/nugetdocs    

Page 19: Developing a Community and an Ecosystem with NuGet

NuGet Docs (https://github.com/nuget/nugetdocs)

•  524  commits  •  62  contributors  • Decreasing  YOY  commit  rate  •  3  new  contributors  in  the  last  30  days    •  32  contributors  in  the  last  12  months  (-­‐15%  YOY)  

hSp://www.ohloh.net/p/nugetdocs    

This  _might_  be  related  

Page 20: Developing a Community and an Ecosystem with NuGet

Day to Day

Page 21: Developing a Community and an Ecosystem with NuGet

We’ve Learned a few things

• With  Visual  Studio  2012,  NuGet  shipped  "in  the  box"  with  every  SKU  of  Visual  Studio  

•  Shipping  in  Visual  Studio  added  some  overhead  

•  This  shi;ed  focus  onto  the  NuGet  client  at  the  expense  of  the  gallery  

•  This  reduced  community  engagement  

• Not  surprisingly,  contribuRons  decreased  

“ask  mode”  

“tell  mode”  

“escrow”  

“tenets”  

“SDL”  

“PoliCheck”  “ZBB”  

“ZRB”  “APIScan”  

“RI”  “FI”  

Page 22: Developing a Community and an Ecosystem with NuGet

Lessons Learned •  A  more  balanced  focus  between  client  and  server  

• Make  it  easy  and  worthwhile  to  engage  

•  Recognize  contributors  

•  Split  the  core  team  into  2  crews:  client  and  gallery  

•  Updated  and  publicized  our  triage  process  

•  Created  “up  for  grabs”  

•  Added  acknowledgements.txt  to  source  

•  Recognize  contributors  in  release  notes  

Page 23: Developing a Community and an Ecosystem with NuGet

Updated triage

Page 24: Developing a Community and an Ecosystem with NuGet

These have produced positive results

NuGet  Client  

NuGet  Gallery  

Page 25: Developing a Community and an Ecosystem with NuGet

Planning

Page 26: Developing a Community and an Ecosystem with NuGet

We have more to learn here..

•  2  inputs  to  planning  •  A  roadmap  that  originates  from  the  core  team  –  generally  ~12mo  into  the  future  

•  Ideas  and  issues  that  are  submiSed  to  the  project  sites  •  Sorted  based  on  votes  

Page 27: Developing a Community and an Ecosystem with NuGet

Planning Challenges

•  Engaging  with  the  community  on  the  roadmap  • Balancing  the  smaller  enhancements  and  fixes  with  the  larger  roadmap  items  

•  757  open  issues  for  NuGet  client  •  164  open  issues  for  NuGet  gallery  

• Guarding  against  “death  by  success”  

Page 28: Developing a Community and an Ecosystem with NuGet

Improving our planning

• Develop  specificaRons  in  the  open    • Document  project  governance  model  • Create  a  community-­‐driven  governance  board  •  Schedule  weekly  calls,  hangouts,  etc.  

Page 29: Developing a Community and an Ecosystem with NuGet

“Are we there yet?”

Page 30: Developing a Community and an Ecosystem with NuGet

TODO: a few examples •  API  v3  •  Social  IntegraRon  •  Discovery/Search  •  Trust  •  Enterprise  –  companies,  not  just  their  developers,  'get'  package  management  

•  Global  package  installaRon  (machine-­‐level:  e.g.  npm  -­‐g  Foo)  •  Deeper  VS  integraRon  •  Package  creaRon  -­‐  NuGet  packages  are  the  natural  product  of  build  and  the  natural  unit  of  reference  

•  Community-­‐moderated  gallery