======================================= PyPy: Why and how did it (not) work? ======================================= :Authors: Bea Düring (Change Maker) & Holger Krekel (merlinux GmbH) :Place: EuroPython 2007, Vilnius :Date: 10th July 2007 Introduction: Bea´s 2cents ---------------------------- - Mostly my personal views - so who am I? - Old school gamer (non-profit work), high school teacher, education and software development project management, instructor, newbie agilista The PyPy Long Island Ice Tea -------------------------------- - If PyPy was a drink - what would it be? - Long Island Ice Tea - why? - Why have one alcohol base when you can have seven? - And you do get drunk - and confused ;-) Recommendations: -------------------- - What worked for us - Mostly parts already used by other projects - Unique for PyPy was the blend of OSS/agile practices within a EU contractual environment Automated Test-Driven Devel. ----------------------------------------- - py.test --> supports rapid prototyping in a single code base - Combined with efficient version control (svn) - Version control and test on both code and documentation - Automated commit mailinglists for both ---> supports open and transparent workstyle Mobile Sprints ---------------------------------------- - Sprints: one week (in our case) co-located coding sessions in different locations - "Open and closed" sprints - In the EU-funded project: 19 sprints - Combined with Summer of Code/PyPy ---> supports open and transparent workstyle Communication --------------------------------------- - IRC: #pypy on freenode.org (+others) - Mailinglists: manage, technical board, dev, sprints - Automated mailinglists (code and documentation) ---> supports open and transparent workstyle Information/documentation --------------------------------------- - Sprint reports - EU-reports written with a dual use purpose (EU, industry, community) - Video documentation (tutorials, talks, interviews, sprints) - All consortium involved persons could access *all* data ---> supports open and transparent workstyle Synchronization ---------------------------------------- - Sync-meetings: weekly dev-IRC meetings with a fixed date - Fixed agenda: last, next, blockers - Not more than 30 minutes - Inspired by Canonical ---> supports open and transparent workstyle Conceptual integrity ----------------------------------------- - How to maintain the core developers OSS mandate within EU-contract? - Technical board driving the technical development - GUI between EU-level and OSS community level - Also driving management ;-) ---> supports open and transparent workstyle Learning by burnings: ----------------------- - Learning by doing - learning by reflection - In japanese: learning by burning Open and transparent is costly ------------------------------------------ - Formal roles existed but PyPy is a "beyond the call of duty" project - Cost in time, energy and resources to keep everyone involved --> Main cost though was making this fit into the EU-structure --> It was worth it ("excellent technical results"), but the price was high Increased contribution is costly ------------------------------------------ - Open sprints, IRC-mentoring and Summer of Code/PyPy meant new core developers - Cost in time, energy and resources to mentor and support --> Main cost though was making this fit into the EU-structure --> It was worth it ("excellent technical results") and new friends! Overlapping realities is costly ------------------------------------------ - PyPy - a practical EU OSS research project - Is that an oxymoron? - Goals too high and too wide (novel approaches)? --> Main cost though was making this fit into the EU-structure while evolving the community --> It was worth it ("excellent technical results") - really cool stuff ;-) What now? ------------------------------------------ - We continue as an OSS project: http://codespeak.net/pypy - We sprint: welcome to the EP2007 sprint on Thursday! - We have an Open Space session inviting PyPy users and would-be users to to discuss their needs on Wednesday - join us!