├── img └── okrs_structure.png ├── ISSUE_TEMPLATE.md ├── README.md ├── 2019-Q1.md ├── 2018-Q1.md ├── 2018-Q4.md ├── LICENSE ├── sourced-okr-methodology.md ├── 2018-Q2.md └── 2018-Q3.md /img/okrs_structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/src-d/okrs/HEAD/img/okrs_structure.png -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | **Parent objective:** `e.g. #4` 2 | **Progress:** 0% 3 | 4 | - [ ] [P0] Key result 1 5 | - [ ] [P1] Key result 2 6 | - [ ] [P0] Key result n -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # source{d} OKRs 2 | 3 | ## Methodology 4 | 5 | - [source{d} OKR methodology](https://github.com/src-d/okrs/blob/master/sourced-okr-methodology.md) 6 | 7 | ## Previous quarters OKRs 8 | 9 | - [2018-1Q](https://github.com/src-d/okrs/blob/master/2018-Q1.md) 10 | - [2018-2Q](https://github.com/src-d/okrs/blob/master/2018-Q2.md) 11 | - [2018-3Q](https://github.com/src-d/okrs/blob/master/2018-Q3.md) 12 | - [2018-4Q](https://github.com/src-d/okrs/blob/master/2018-Q4.md) 13 | -------------------------------------------------------------------------------- /2019-Q1.md: -------------------------------------------------------------------------------- 1 | # OKRs 2019 Q1 2 | 3 | ## Bring 'Code as Data' to market with enterprises 4 | 5 | ### Enable engine integration with 3rd parties 6 | 7 | - [ ] gitbase-spark-connector SQL 3rd party interop (Spark Thrift Server) [P0][DP] 8 | 9 | ### Increase number of algorithms we can run 10 | 11 | - [ ] Support for git diff tree [P0][DP] 12 | - [ ] Support for diff [P0][DP] 13 | - [ ] Research options for UDFs (gitbase or gitbase-spark-connector) [P1][DP] 14 | - [ ] Research options for gitbase plugins [P2][DP] 15 | - [ ] Gitbase support for low-level git UDFs [P2][DP] 16 | 17 | ### Increase variety of data we can analyze 18 | 19 | - [ ] Provide specs for external data sources [P1][DP][PRODUCT] 20 | - [ ] Provide specs to expose dependency analysis [P2][LA] 21 | 22 | ### Analyze current performance limits and improve them 23 | 24 | - [ ] Gitbase to expose only reachable objects [P0][DP] 25 | - [ ] Parallelized index creation [P1][DP] 26 | - [ ] Parallelized queries inside of a repository [P2][DP] 27 | - [ ] Make performance dashboard available to product team [P1][DP][PRODUCT] 28 | - [ ] Provide specs for distributed version (gitbase-spark-connector-enterprise) [P2][DP][INFRA] 29 | 30 | ### Make enterprise friendly 31 | 32 | - [ ] gitbase-web SSO and RBAC [P1][APPS][PRODUCT] 33 | - [ ] bblfsh-web SSO and RBAC [P1][APPS][PRODUCT] 34 | - [ ] document gitbase audit logs and RBAC [P1][DP] 35 | 36 | ### Simplify usage 37 | 38 | - [ ] Provide installers [P2][APPS][PRODUCT] 39 | - [ ] Provide specs for new Engine architecture (stand-alone server + config file) [PRODUCT] 40 | 41 | ### Improve stability 42 | 43 | - [ ] Ensure gitbase works when dataset and indexes do not match [P0][DP] 44 | - [ ] Provide a single, default, performant and stable regex implementation for gitbase and enry [P2][DP][LA] 45 | - [ ] Stabilize Babelfish in production (support large-scale use from gitbase) and ML tasks [P0][LA] 46 | - [ ] Add engine cli integration tests [P0][APPS] 47 | 48 | ### Online updates 49 | 50 | - [ ] Gitbase to support online updates [P1][DP] 51 | 52 | ### Release necessary language support for enterprise 53 | 54 | - [ ] C# driver [P0][LA] 55 | 56 | ### Get bblfsh ready for wide language support of our use cases 57 | 58 | - [ ] Make UAST v2 the standard interface for Babelfish [P0][LA] 59 | - [ ] Compact diffs of UAST trees [P1][LA] 60 | - [ ] Plan for a language-independent style-analyzer (bblfsh-side support) [P2][LA] 61 | - [ ] Provide an efficient storage format for large UASTs collections [P3][LA] 62 | 63 | ## Improve the 'Code as Data' individual user experience 64 | 65 | ## Improve quality across all products 66 | 67 | - [ ] Conduct two empathy sessions for cross-team documentation and user experience improvements [P1][ENG] 68 | 69 | ## Release a new version of PGA 70 | 71 | - [ ] Release a new version, updated, fixed, including #stars [P1][DR] 72 | 73 | ## Bring 'Assisted Code Review' to developers in the open-source community 74 | 75 | ### Improve current lookout analyzers 76 | 77 | - Style Analyzer in one more language (possibly Java) [P0][ML] 78 | - Release Typo Analyzer [P0][ML] 79 | 80 | ### Create new lookout analyzers 81 | 82 | - [ ] Analyzers for most common linters / traditional static tools [P?][APPS][PRODUCT] 83 | - [ ] Collect a structured dataset of diffs for best-practices-analyzer [P2][ML] 84 | - [ ] Research what ML team can deliver for best-practices-analyzer [P1][ML] 85 | 86 | ### Lookout Platform 87 | 88 | - [ ] Collect GitHub reactions as feedback to comments [P1][APPS] 89 | - [ ] Provide metrics on usage [P0][APPS] 90 | - [ ] Live Demo Repository with all available analyzers set-up [P1][APPS][INFRA] 91 | 92 | ## Store the world's source code 93 | 94 | ### Refactor to go-borges library, to reuse borges logic in other projects 95 | 96 | - [ ] Library for access to a collection of git repositories (go-borges) [P0][DR] 97 | - [ ] go-borges-based borges [P0][DR] 98 | - [ ] siva backend for go-borges [P1][DR] 99 | 100 | ### Improve borges storage 101 | 102 | - [ ] Inspect storage efficiency (review siva usage, siva compaction, git gc, etc) [P1][DR] 103 | - [ ] Research distributed storage alternatives [P2][INFRA][DR] 104 | 105 | ## Improve infrastructure 106 | 107 | ### Release the production kubernetes pipeline cluster 108 | 109 | - [ ] Release of the production cluster [P0][INFRA] 110 | - [ ] Run rovers and borges on it [P0][INFRA] 111 | - [ ] Deploy services with HA: PostgreSQL, RabbitMQ, etcd [P0][INFRA] 112 | - [ ] Add monitoring to the pipeline (rovers, borges and associated services) [P0][INFRA] 113 | - [ ] Migrate staging cluster to the new deployment method [P0][INFRA] 114 | - [ ] Improve Helm Terraform Provider [P1][INFRA] 115 | - [ ] New staging cluster with latest Code as Data stack [P1][INFRA] 116 | 117 | ### Improve local-gpu cluster usability 118 | 119 | - [ ] Migrate to the new ML cluster [P0][ML][INFRA] 120 | 121 | ## Being a better company to work at 122 | 123 | ## Advance MLonCode awareness 124 | 125 | - [ ] Publish the final id2vec model [P2][ML] 126 | 127 | ## Hiring 128 | 129 | - Hiring: Test (1 Senior) [P0][TALENT] 130 | - Hiring: ML (1 Intern + 1 Senior) [P0][TALENT] 131 | - Hiring: Apps (1 Senior, 1 Lead) [P0][TALENT] 132 | - Hiring: LA (1 Senior + 1) [P0][TALENT] 133 | - Hiring: DR (1 Senior) [P1][TALENT] 134 | - Hiring: DP (1 Senior) [P1][TALENT] 135 | - Hiring: Infra (1 Senior) [P1][TALENT] 136 | -------------------------------------------------------------------------------- /2018-Q1.md: -------------------------------------------------------------------------------- 1 | # Objectives and Key Results 2 | 3 | ## Q1 2018 4 | 5 | These are the company's OKR for 1Q2018. You'll notice that several objectives are missing key results. Also, on engineering there is no team specific ownership with key results. For Q2 we expect to do better at implementing OKR's. 6 | 7 | ### Vision: 8 | 9 | * Being the leader of AI on Code 10 | 11 | ### Company Wide: 12 | 13 | * Having successful users of source{d} 14 | 15 | * Being a better company to work at 16 | * Complete the guide 17 | * Successfully implement best practices for being a remote company 18 | * Having a more diverse funnel (increase diversity in terms of gender and race) 19 | * Successfully implement OKR's 20 | 21 | ### Product: 22 | 23 | * Launch of hosted playground 24 | * Build a hosted MVP for open-source projects of source{d} PR* (ability to add applications that return results in PR's on GitHub) 25 | * Launch of deduplication of code 26 | * Decide on the faith of legacy projects 27 | 28 | \* we're lost on the name still, this objective needs its own document to explain better since it's a new product 29 | 30 | ### Developer Community: 31 | 32 | * Create a network of influencers incl. Developers, Companies, Academia 33 | * [P0] Create a forum (tbd whether it's slack, mailing list, or others) for influencers. 34 | * [P0] Identify 20 influencers and invite them to join the community. 35 | * [P1] Meet with all of the influencers that accept the invitation and welcome them personally. 36 | * Increase our presence in the developer community in Madrid & SF 37 | * [P1] Organize 2 Go meetups in Madrid 38 | * [P1] Co-host 2 Go meetups in San Francisco (Holberton school could host) 39 | * [P1] Create a Source Code Analysis meetup in San Francisco and run an inaugural event 40 | * Host and attend conferences and meetups 41 | * [P1] Source{d} themed talks at 5 conferences or meetups 42 | * [P1] Source{d} speakers at 5 large (+200 attendees) conferences 43 | * Publish blogposts at a regular pace 44 | * [P0] Plan weekly schedule for blogs 45 | * [P1] Publish 8 blog posts during Q1 46 | * Start cross posting to Medium 47 | * [P1] Publish 10 posts to Medium 48 | * [P1] Once we have enough analytics decide whether it's worth cross posting or simply migrating to medium. 49 | * Start publishing videos 50 | * [P0] Create YouTube channel for source{d} 51 | * [P0] Create monthly schedule for videos and themes 52 | * [P1] Write 4 detailed scripts 53 | * [P1] Publish 2 videos 54 | * Publish a page where we show all source{d} related videos 55 | * [P2] Redesign talks page 56 | * [P2] Include all old videos and the ones we'll publish in the meanwhile 57 | * [P2] Include 5 talks by non source{d} employees 58 | * Redefine how we use social media and community Slack 59 | * [P0] Gather statistics of current usage and views on social media 60 | * [P1] Write a mission statement for our social media and formalize who has access/responsibilities 61 | * [P1] Once we have statistics on community size, establish new OKRs on growth 62 | 63 | ### Academia: 64 | 65 | * Getting academia to use our tech 66 | * [P1] source{d} technologies mentioned in at least one research paper by non-source{d} researcher 67 | * Understand usecases/workflow 68 | * [P0] Identify 3 common needs for the researchers above 69 | * [P1] Prioritize those needs and tackle at least one. 70 | * Gather inputs on what 'ImageNet for Code' is to stakeholders in the community 71 | * [P0] Write a blog post on what 'ImageNet for Code' in collaboration with a non source{d} researcher 72 | * [P2] Make a video about this 73 | * [P1] Publish it and gather feedback from other researchers 74 | * Deepen our relationship with universities 75 | * [P1] Identify and partner with 4 researchers 76 | * [P1] Meet monthly with each of them and analyze their needs 77 | 78 | ### Research 79 | 80 | * Write scientific papers 81 | * Research structural embeddings 82 | * Explore new directions and emerging papers 83 | 84 | ### Engineering: 85 | 86 | * Collect, store and process 10s of millions of repositories using the pipeline in Paris 87 | * Improve the borges performance to be able to download all the repositories in 1 month with 60 machines. 88 | * Scale our infrastructure to support this - a cluster of 60 machines. 89 | * Develop a system to keep this updated with a delay of 1 week. 90 | * Launch a production level engine 91 | * Support large scale deployments - 10s of millions of repositories 92 | * Support performance large scale deployments (using indexes or not) to be able to execute the 90% of queries under 30mins of execution. 93 | * Improve the error reporting to minimize the number of issues open. 94 | * Significantly improve the engineering team workflow 95 | * Deliver products on time, without commit other teams. 96 | * Improve the inter-team workflows. 97 | * Improve the communication at all levels. 98 | * Significantly improving our documentation 99 | * Provide enough documentation to allow a new user without prior knowledge to be prolific with engine. 100 | * Provide enough documentation to allow a new user without prior knowledge to be prolific with bblfsh. 101 | * Provide enough documentation to allow a new user understand what does all the projects. 102 | 103 | ### Hiring: 104 | 105 | * Having a more diverse funnel (increase diversity in terms of gender and race) 106 | * Hire for each open role 107 | 108 | ### Organization: 109 | 110 | * Complete the guide 111 | * ToC should have content for each section 112 | * Successfully implement best practices for being a remote company -------------------------------------------------------------------------------- /2018-Q4.md: -------------------------------------------------------------------------------- 1 | # OKRs 2018 Q4 2 | 3 | ## Bring 'Code as Data' to market with enterprises 4 | 5 | ### Ensure gitbase interoperability with 3rd party tools [DR] 6 | 7 | - [ ] Drivers for in-house languages (Python, Go, Java). 8 | - [ ] mysqldump 9 | - [ ] grafana 10 | - [ ] Tableau 11 | - [ ] Drivers for other popular languages (JavaScript, Ruby, .NET, PHP). 12 | 13 | ### Get gitbase enterprise ready [DR] 14 | 15 | - [ ] Authentication and authorization abstractions prepared for future integration with LDAP and Kerberos 16 | - [ ] Basic MySQL auth implementation 17 | - [ ] Audit logs (connections, queries) 18 | 19 | ### source{d} Engine add-ons (applications) [DevRel] 20 | 21 | #### Get Gemini enterprise ready [DevRel] 22 | 23 | - [ ] Find a better name for Gemini 24 | - [ ] Define messaging around gemini 25 | - [ ] Deliver gemini product page 26 | 27 | #### Get source{d} engine on Spark enterprise ready [DevRel] 28 | 29 | - [ ] Find a better name 30 | - [ ] Define messaging around Spark connector 31 | - [ ] Deliver Spark integration product page 32 | 33 | ### Get web interfaces enterprise ready [APPS] 34 | 35 | - [ ] gitbase-web SSO (protocol compatible with Google) 36 | - [ ] bblfsh-web SSO (protocol compatible with Google) 37 | 38 | ### Gitbase research [DR] 39 | 40 | - [ ] Initial research on supporting updates in backing data (indexes, etc) 41 | - [ ] Use precomputed UASTs 42 | 43 | ### Launch gitbase-spark-connector [DR] 44 | 45 | - [ ] Launch gitbase-spark-connector community beta version. 46 | - [ ] Launch gitbase-spark-connector enterprise beta version. 47 | 48 | ### Release necessary language support for enterprise [LA] 49 | 50 | - [ ] C# driver 51 | - [X] C/C++ driver 52 | 53 | ### Get bblfsh ready for wide language support of our use cases [LA] 54 | 55 | - Finish migration to v2 for all supported client languages: 56 | - [X] Go 57 | - [ ] Scala 58 | - [ ] Python 59 | - [ ] Deprecate UAST v1. 60 | - [ ] Fix positions in all alpha+ drivers. 61 | 62 | ### Have an available demo cluster [INFRA] 63 | 64 | - [ ] Deploy a demo cluster for 'Code as Data' that we can use for demos and 3rd parties 65 | 66 | ### Define a delivery strategy for the enterprise 67 | 68 | - [ ] Test deployment for faux-customer [INFRA][ENG] 69 | 70 | ### Get Gemini production ready [APPS] 71 | 72 | - [x] Release a new version with the integration of function similarity 73 | 74 | ## Improve the 'Code as Data' individual user experience 75 | 76 | - [x] Move engine maintainership to apps, review code [APPS] 77 | 78 | ### Launch Unified Engine Playground [DevRel] 79 | 80 | - [ ] Define Engine Playground experience (sandbox for srcd) 81 | - [ ] Launch new Engine Playground Alpha Version 82 | - [ ] Add metrics from playground to main dashboard 83 | - [ ] Define main use cases and personas for the engine 84 | 85 | ### source{d} Engine awareness & use cases [DevRel] 86 | 87 | - [ ] Define roadmap + timeline of Engine releases 88 | - [ ] Identify at least 3 companies effectively using the Engine 89 | - [ ] Publish at least 1 case study 90 | - [ ] Press announcement for Engine releases 0.2 & power users 91 | - [ ] Define "Give me your end of year budget" campaign 92 | - [ ] Create enterprise workshop on Code as Data and run it at least once 93 | - [ ] Offer 6 companies our CodeAsData workshop and schedule at least one 94 | 95 | ### Promote current source{d} stack [DevRel] 96 | 97 | - [ ] Develop strategy & app for the "What's in your code?" campaign 98 | - [ ] Develop strategy & app for the "Analyzing most popular OSS Projects" campaign 99 | - [ ] Write and promote blog series for each feature in the engine 100 | - [ ] source{d} Engine featured at 3 conferences 101 | - [ ] source{d} Engine featured at 3 meetups 102 | 103 | #### Run beta program on source{d} Engine [DevRel] 104 | 105 | - [ ] Identify at least 3 users of source{d} Engine with different personas/use cases 106 | - [ ] Meet regularly (biweekly) with users and gather feedback 107 | 108 | ### Defined unified web client [DevRel] 109 | 110 | - [ ] Write specifications and draft design for a unified web client (instead of gitbase + bblfsh, etc) 111 | 112 | ## Improve quality across all products [INFRA][DR] 113 | 114 | - [ ] Regression test platform [INFRA] 115 | - [ ] Automated regression tests for borges [DR] 116 | - [ ] Automated regression tests for gitbase [DR] 117 | - [ ] Conduct two empathy sessions for cross-team documentation and user experience improvements [ENG][QA] 118 | 119 | ## ~~Release a new version of PGA [INFRA][APPS]~~ 120 | 121 | - [ ] ~~Incremental PGA updates [APPS]~~ 122 | - [ ] ~~Automate PGA generation [APPS][INFRA]~~ 123 | - [ ] ~~Release PGA v2 [APPS]~~ 124 | 125 | ## Bring 'Assisted Code Review' to developers in the open-source community 126 | 127 | ### Get lookout production ready [APPS] 128 | 129 | - [x] Extend lookout end user documentation in gitbook 130 | - [x] Extend lookout developer documentation in gitbook 131 | - [x] Stable Python SDK 132 | - [x] Stable Go SDK 133 | 134 | ### Promote 'Assisted Code Review' to developers in the open-source community [DevRel] 135 | 136 | - [ ] Prepare beta announcement with top 3 analyzers 137 | - [ ] Update Product webpage with description, videos, and instructions on how to use it 138 | - [ ] Write press release, blog post, etc 139 | - [ ] Plan social media strategy (twitter, reddit, hackernews ...) 140 | - [ ] Schedule an online meetup demoing Analyzers & show how people can build one 141 | - [ ] Define a strategy for analyzers promotion / Registry ? 142 | - [ ] Identify users after launch and partner with them 143 | 144 | ### Release a production ready service 145 | 146 | #### Release style analyzers [ML] 147 | 148 | - [ ] Launch beta formatting analyzer 149 | - [ ] Launch beta typos analyzer 150 | - [ ] Add Java or Go formatting support 151 | - [ ] Collect the structured diff dataset 152 | - [ ] Best practices analyzer PoC 153 | - [ ] Finalize id2vec 154 | - [ ] Deployment to Google Cloud [INFRA] 155 | - [ ] Setup monitoring [INFRA] 156 | 157 | #### Any OSS project on Github is able to add lookout service (through 'Github Apps' flow) [APPS] 158 | 159 | - [ ] Private 'status page' of the service health 160 | - [ ] Automated CI/CD pipeline for production environment 161 | - [ ] Service deployed on a production environment 162 | - [ ] 2 OSS projects besides source{d} enable lookout 163 | 164 | ## Store the world's source code 165 | 166 | ### Improve borges archiving performance [DR] 167 | 168 | - [ ] Improve borges archiving average throughput by 5x 169 | 170 | ### Refactor to go-borges library, to reuse borges logic in other projects (i.e. Lookout) [DR] 171 | 172 | - [ ] Define a public API for that library studying actual use cases 173 | 174 | ### Release the production kubernetes cluster [INFRA] 175 | 176 | - [ ] Release of the production cluster 177 | - [ ] Run rovers and borges on it 178 | - [ ] Deploy services with HA: PostgreSQL, RabbitMQ, etcd 179 | - [ ] Add monitoring to the pipeline (rovers, borges and associated services) 180 | - [ ] Migrate staging cluster to the new deployment method 181 | 182 | ## Improve local-gpu cluster usability [INFRA] 183 | 184 | - [ ] Improve local-gpu usability for the ML team so that it can be adopted as the main ML platform instead of science-3 185 | 186 | ## Being a better company to work at 187 | 188 | ### Successfully hire for each open role [Talent] 189 | 190 | - [ ] Hire a Lead engineer for the Applications team 191 | - [ ] Hire a Senior test engineer 192 | - [ ] Hire two interns in Q4 for Q1-2 for ML team 193 | - [ ] Attract relevant profiles through our community 194 | - [ ] Hire one member in Talent for Q1 195 | 196 | ### Scale the hiring process [Talent] 197 | 198 | - [ ] Use of scheduling tools for efficient communication by all interviewers 199 | - [ ] Each team responsible for candidates in last steps when the Talent Manager is unavailable 200 | 201 | ### Increase candidate’s motivation and engagement at every interviewing step [Talent] 202 | 203 | - [ ] Applicants reviewing time fall to 5 days in average 204 | - [ ] Analyse candidate's survey answers to identify bottlenecks in the process 205 | 206 | ### Having a more diverse funnel in terms of gender and race [Talent] 207 | 208 | - [ ] Explicit developer community promotion via social media 209 | - [ ] Proactively reaching out to diverse communities 210 | - [ ] Proper updates to the website & guide to promote multi-national and cultural environment 211 | 212 | ## Define DevRel Strategy/Tools [DevRel] 213 | 214 | - [ ] Define DevRel strategy/tools 215 | - [ ] Hire one more team member (Tech Writer / Advocate) 216 | - [ ] Hire social media intern 217 | - [ ] Define DevRel budget 218 | - [ ] Execute sponsorships / attendance strategies for Q4 & 2019 219 | - [ ] Decide and document responsibilities for Website content updates 220 | - [ ] Find & Onboard Swag vendor 221 | - [ ] Define a schedule of integrated campaigns for Q4 and 2019Q1 222 | - [ ] Improve metrics dashboard to show actionable data (MoM, YoY, QoQ) 223 | 224 | ### Define PR & BD Strategy [DevRel] 225 | 226 | - [ ] Pitch the "What's in your code?" campaign to the press and get publication in at least 2 publications 227 | - [ ] Get Eiso bylines published in at least 2 publications 228 | - [ ] Secure at least 3 analysts briefings or demos 229 | - [ ] Qualify at least 1 BD led opportunity for joint announcement i.e Microsoft, GitHub / GitLab etc 230 | 231 | ### Manage Read/Write Community [DevRel] 232 | 233 | - [ ] Decide on new blogging platform 234 | - [ ] Decide on new forum platform 235 | - [ ] Define metrics of success per social platform and decide which ones matter 236 | 237 | ### Define & Setup Email Marketing strategy [DevRel] 238 | 239 | - [ ] Curate content and send newsletter bi-weekly 240 | - [ ] Newsletter reaches 300 (+100% growth) subscribers 241 | - [ ] Set up master drip campaign for leads 242 | - [ ] Write report on email performance with hindsights and recommendations 243 | 244 | ### Define and Manage a Community / Sales Funnel [DevRel] 245 | 246 | - [ ] Refine Salesforce + Pardot MQL and SQL rules 247 | - [ ] GDPR compliance 248 | - [ ] Map and report on conversion funnel with hindsights and recommendations 249 | 250 | ## Advance MLonCode awareness [DevRel] 251 | 252 | ### Make source{d} the face of MLonCode [DevRel] 253 | 254 | - [ ] Create two lookout analyzer demos 255 | - [ ] Get at least 6 collaborators (talk/blog/...) from engineering team 256 | - [ ] Lookout featured at 3 conferences 257 | - [ ] Lookout featured at 3 meetups 258 | 259 | ### Create an "source{d} friends" program [DevRel] 260 | 261 | - [ ] Define "source{d} friends" program goals & value proposition & final name 262 | - [ ] Identify potential members and invite them officially, get 20 to join 263 | - [ ] Welcome each member personally and provide some swag 264 | - [ ] Classify members by profile (speakers, researchers, industry/academia, event organizers, etc) 265 | - [ ] Create dedicated slack channel for MLonCode friends 266 | - [ ] Organize private briefings with members pre-launch giving them opportunity to give us feedback on prez + product and help promote the message 267 | 268 | ### Make source{d} a friend of MLonCode academia [DevRel] 269 | 270 | - [ ] Plan participation for academic events relevant to MLonCode until 1st half of 2019 271 | - [ ] Decide level of involvement (attending, presenting, sponsoring, etc) 272 | - [ ] Organize a Lookout Analyzer Hackathon and invite researchers 273 | - [ ] 3 citations of source{d} datasets / tech in academia endorsed documents 274 | 275 | ### Increase social engagement with MLonCode [DevRel] 276 | 277 | - [ ] Support and promote 3 Paper Reading Clubs 278 | - [ ] Make Paper Reading Club summaries publicly available (forum?) 279 | - [ ] Identify 20 blog posts / papers on the topic written by others, propose cross-posting to our blog/medium (awesome ml on code) 280 | - [ ] Identify 10 speakers at conferences talking about MLonCode, invite them for collaboration / tweet about their talks / partner with them 281 | 282 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /sourced-okr-methodology.md: -------------------------------------------------------------------------------- 1 | # source{d} OKR methodology 2 | 3 | ## Introduction 4 | 5 | We adopt Objective and Key Results (OKRs) methodology at source{d} because it is an efficient system to improve employee engagement and performance through the combination of clearer focus, alignment and transparency. 6 | 7 | It makes organizations shift the focus from output to an outcome-based approach (_"I’ve had a demo with a prospect"_ is an output—a result achieved immediately after implementing an activity—vs. _"I’ve closed a customer"_ is an outcome—a mid-term result). 8 | 9 | The OKR framework was developed by John Doerr around the 70's when he worked at Intel. Since then, companies like Google and Amazon use the system to manage goals and implement strategies. 10 | 11 | The methodology consists of Objectives, that are the goals to be achieved by the company, and under them are the Key Results, that measures progress towards these goals. Initiatives, that come under the Key Results, describe the proposed actions to achieve a key result. At source{d} we adopt also the concept of [Agile Epics](https://www.atlassian.com/agile/project-management/epics) to be the tangible and actionable expressions of these proposed Initiatives. 12 | 13 | ## Table of Contents 14 | 15 | - [source{d} OKR methodology](#sourced-okr-methodology) 16 | - [Introduction](#introduction) 17 | - [Table of Contents](#table-of-contents) 18 | - [About OKRs — read first!](#about-okrs--read-first) 19 | - [Methodology](#methodology) 20 | - [Roles & responsibilities](#roles--responsibilities) 21 | - [Concepts](#concepts) 22 | - [Objectives](#objectives) 23 | - [Key Results](#key-results) 24 | - [Initiatives](#initiatives) 25 | - [Epics](#epics) 26 | - [Examples](#examples) 27 | - [Getting Started](#getting-started) 28 | - [Ultimate OKR](#ultimate-okr) 29 | - [Company OKRs](#company-okrs) 30 | - [Group Objectives](#group-objectives) 31 | - [Group Key Results](#group-key-results) 32 | - [Proposed Initiatives](#proposed-initiatives) 33 | - [Most common mistakes](#most-common-mistakes) 34 | - [Process](#process) 35 | - [Planning processes and milestones](#planning-processes-and-milestones) 36 | - [Further notes](#further-notes) 37 | - [Review processes and milestones](#review-processes-and-milestones) 38 | - [Resources](#resources) 39 | - [Perdoo concept definitions](#perdoo-concept-definitions) 40 | 41 | ## About OKRs — read first! 42 | 43 | Before diving into source{d}'s particular methodology on implementing OKRs, it is very helpful to understand the background and reasoning behind it. 44 | 45 | Here we present curated resources on the principles and applications of OKRs, which set the common ground before the specifics that apply to our case. 46 | 47 | * [All about OKRs with examples](https://www.perdoo.com/okr/) 48 | * [OKRs under Google's experience](https://rework.withgoogle.com/guides/set-goals-with-okrs/steps/introduction/) 49 | 50 | ## Methodology 51 | 52 | ### Roles & responsibilities 53 | 54 | * Ownership of the OKR _process_ (OKRs Ambassador): @[Fernanda](http://www.github.com/gomesfernanda). Responsible for ensuring that everyone who will be using OKR is trained, engaged and has ongoing help and guidance (the "how"). [Don't shoot the messenger](https://www.wikiwand.com/en/Shooting_the_messenger)! 55 | * Ownership of the OKR _contents_: Management and team leads still own their OKRs (the "what") and other related artifacts. Commitment is key. 56 | 57 | ### Concepts 58 | 59 | Here we present a list of key concepts, their meaning, applications and sample usage. 60 | 61 | #### Objectives 62 | 63 | > “Where do I want to go?” 64 | > 65 | > An Objective is a description of a goal to be achieved in the future. An Objective sets a clear direction and provides motivation. An Objective can be thought of like a destination on a map. 66 | > 67 | > An Objective should be ambitious and feel somewhat uncomfortable. 68 | 69 | Source: [Perdoo](#perdoo-concept-definitions) 70 | 71 | #### Key Results 72 | 73 | > “How do I know if I’m getting there?” 74 | > 75 | > A Key Result is a metric with a starting value and a target value that measures progress towards an Objective. A Key Result is like a signpost with a distance that shows how close you are to your Objective. 76 | > 77 | > A Key Result should be easy to grade with a number and should always be things that you don't do, but you can influence so it can happen. 78 | 79 | Source: [Perdoo](#perdoo-concept-definitions) 80 | 81 | #### Initiatives 82 | 83 | > “What will I do to get there?” 84 | > 85 | > An Initiative is a description of the work you’ll do to influence a Key Result. If an Objective is your destination and a Key Result shows the distance to go, an Initiative describes what you’ll do to get there, (take a car, row a boat, etc.). 86 | 87 | Source: [Perdoo](#perdoo-concept-definitions) 88 | 89 | #### Epics 90 | 91 | * An epic is a large body of work that can be broken down into a number of smaller stories (tasks). 92 | * Epics are on the lower level of the hierarchy (under Initiatives) but on the high level of the tasks. 93 | 94 | #### Examples 95 | 96 | | Objective| Key Result | Initiative | 97 | |----------------------|-----------------------|-----------------------| 98 | |Pioneer reusable rockets|Engine tests have a 99% success rate|Design and build a new turbopump| 99 | |Launch the most popular new iPhone App|Get featured by Apple on the App Store|Hire an app store optimization agency| 100 | |Become internationally recognized as an innovator|Gain 3 national newspaper mentions in 10 countries|Run 5 PR campaigns| 101 | 102 | Source: [Perdoo](#perdoo-concept-definitions) 103 | 104 | ### Getting Started 105 | 106 | Now that you're familiar with the concepts, we'll jump to the practical implementation, covering key aspects of each item. 107 | 108 | #### Ultimate OKR 109 | 110 | * Turn your mission and vision into an Ultimate Goal. 111 | * An Ultimate Goal should aim for a point at a considerable distance in the future (theoretically 10, 15 years for large companies, but adaptable to startups). 112 | 113 | #### Company OKRs 114 | 115 | * They represent the strategy. 116 | * 3 or 4 things your organization aims to achieve in the next 3 months. 117 | * Everyone in the organization should be able to give their input. 118 | * Start with an OKR workshop where all key stakeholders responsible for company strategy give their input for what they think the top priorities should be. 119 | 120 | #### Group Objectives 121 | 122 | * Key characteristics: aligned, high impact, time bound. 123 | * Aligned to the company objectives. 124 | * Created once Company OKRs have been agreed upon. 125 | * They will have a huge impact on your organization if you achieve them. 126 | * Keep Group Objectives within a short and strict time frame. 127 | 128 | #### Group Key Results 129 | 130 | * Key characteristics: high impact, specific, within influence. 131 | * If you achieve 70% to 80% of your target, the company will notice. 132 | * They should be focused and have a clearly defined scope. 133 | * Should always be things you measure that you don't do, but you can influence so it can happen. 134 | 135 | #### Proposed Initiatives 136 | 137 | * Key characteristics: specific and within control. 138 | * Describe the work required to influence Key Results. 139 | * Initiatives are just hypothesis for what work might deliver the biggest impact. 140 | * Initiatives are tasks, projects or similar activities. 141 | 142 | ![alt_text](https://github.com/src-d/okrs/blob/master/img/okrs_structure.png) 143 | 144 | _(Image: Perdoo)_ 145 | 146 | #### Most common mistakes 147 | 148 | * Setting objectives that are not ambitious enough. 149 | * Not having a clear understanding of the challenge you want to solve. 150 | * Having more than 3 Key Results per Objective. 151 | * Not involving all the stakeholders on OKRs elaboration. 152 | * Not communicating properly the process throughout the organization. 153 | * Writing poor OKRs (that don't measure customer behavior, but measures features delivery). 154 | * Writing OKRs that fail to scale (not tying into each other and not making sense strategically throughout the organization). 155 | 156 | ### Process 157 | 158 | The default timeframe for the OKRs is on a quarterly (3-month period) basis, with a mid-quarter review. 159 | 160 | For the OKRs of a given quarter of the year starting at moment T = 0, milestones and processes below are measured in terms of T-t weeks (weeks before the beginning of the quarter): 161 | 162 | #### Planning processes and milestones 163 | 164 | * [source{d} OKRs timeline spreadsheet](https://docs.google.com/spreadsheets/d/1ha_a3WXn-LMT-D470JF87WdaQt_-gG3LpRJRa0jQETc/edit?usp=sharing) 165 | * On T-4 weeks: a draft document is started and shared on [okrs Slack channel](https://src-d.slack.com/messages/C9W4GLSTB) and stored in the [OKRs folder on the root team drive](https://docs.google.com/?authuser=0#my-drive?action=locate&id=1xl6Bqm1xtVryHEJKPWXDOcuudZevUJsbs2Qcx_qYPMg&parent=1QJphGjg4qrrK5R_EcEP72MqjeOr6w90q). 166 | * From T-4 to T-2 weeks: during these 2 weeks, company-wide and top-down Objectives and Key Results are written with the involvement of top & middle management. Teams and other stakeholders will be consulted over this time on the fit and feasibility of objectives and key results. 167 | * On T-2 weeks: The top-down OKRs Draft is shared again with the company, now with the proposals for Objectives and Key Results. 168 | * From T-2 to T-0: Bottom-up weeks, all team members comment on the draft document, proposing: 169 | * Initiatives to achieve the OKRs proposed. Initiatives can be thought of as groups of Epics that would help us achieving an OKR. 170 | * OKRs and Initiatives that aren't directly linked to one of the company-wide OKRs (or were overlooked), but do provide value to the company. 171 | * Team leads and Product and Engineering management play a key role here, to ensure there are Initiatives for each OKR and Epics (even under a broader definition) to help have a shared common understanding of the problem tackled, refine requirements, preliminary feasibility. 172 | * From T-1 to T-0: OKRs are finalized, Initiatives linked to the respective Epics. This is a key week and commitment is required. 173 | * On T-0: the outcome is published and announced at CWM. The OKRs draft now finalized is merged to the [source{d} OKRs](https://github.com/src-d/okrs) repository. 174 | 175 | ##### Further notes 176 | 177 | * Discussions with all stakeholders will happen early in every stage of the process. 178 | * Team leads need to be aware of objectives when they are drafted. 179 | * Team leads need to be in the loop, specially during epics definition. 180 | * Acceptance of OKRs by all stakeholders need to happen during the last week, not later! 181 | 182 | #### Review processes and milestones 183 | 184 | * On T+7 (mid-quarter): Product and Engineering review OKR progress with all teams and relevant stakeholders and provide and update to the company on the [okrs Slack channel](https://src-d.slack.com/messages/C9W4GLSTB) and the company-wide meeting. This also serves as input for the beginning of the planning process of the next quarter. 185 | * On T+11 (end-of-quarter): Product and Engineering review OKR progress with all teams and relevant stakeholders and provide and update to the company on the [okrs Slack channel](https://src-d.slack.com/messages/C9W4GLSTB) and the company-wide meeting, and progress and achievements are merged in the [source{d} OKRs](https://github.com/src-d/okrs) repository. This also serves as input for the beginning of the planning process of the next quarter. 186 | 187 | ## Resources 188 | 189 | * [OKRs do not cascade](https://felipecastro.com/en/okr/okrs-not-cascade/) 190 | * [You suck at OKRs, here's why](https://medium.com/@jboogie/you-suck-at-okrs-heres-why-84e7bf2836d3) 191 | * [Outcomes vs Outputs: are you activity or results driven?](https://www.perdoo.com/blog/outcomes-vs-outputs/) 192 | 193 | ### Perdoo concept definitions 194 | 195 | Note: We believe the definitions and samples provided by [Perdoo](https://www.perdoo.com/okr/)* are some of the best available out there and fit our case, thus we are not reinventing the wheel but mostly quoting them here—which also become the ground truth for source{d}. 196 | 197 | *Which is a great tool to manage your OKRs, by the way. 198 | -------------------------------------------------------------------------------- /2018-Q2.md: -------------------------------------------------------------------------------- 1 | # Objectives & Key Results at source{d} 2 | 3 | ## Q2 2018 4 | 5 | The list and tree below is automatically generated from the issues in this repository, using our [OKR GitHub tool](https://github.com/dennwc/okrs) 6 | 7 | ------------- 8 | 9 | **Progress:** 0/2 10 | 11 | ### Improve our Monthly Financials Reporting Process 12 | 13 | [Source page](https://github.com/src-d/okrs/issues/58) 14 | 15 | **Progress:** 0% 16 | 17 | * [P0] Create a Monthly Financials Dashboard 18 | * [P0] Refactor existing Excel spreadsheets 19 | * [P0] Successfully incorporate US expenses to Reporting Process 20 | 21 | ### Vision: Being the leading company for ML on Code 22 | 23 | [Source page](https://github.com/src-d/okrs/issues/1) 24 | 25 | **Progress:** 0% 26 | 27 | * Store the world’s source code ([#5](https://github.com/src-d/okrs/issues/5)) 28 | * [P0] Store all public repositories from GitHub, BitBucket and self-hosted cgit ([#14](https://github.com/src-d/okrs/issues/14)) 29 | * [P0] Stable pipeline with rovers and borges 30 | * [P0] Get computing and storage production-ready cluster to 60 machines 31 | * [P1] Keep repositories never more than 30 days outdated ([#15](https://github.com/src-d/okrs/issues/15)) 32 | * [P1] Optimize borges to keep up with all repository updates within 30 days ([#27](https://github.com/src-d/okrs/issues/27)) 33 | * [P0] improve downloading of new repos by 50% 34 | * [P1] improve update rooted repositories by 50% 35 | * [P1] increase job throghtput by 30% 36 | * [P2] decrease timeout errors by 30% 37 | * [P2] decrease pod restarts by 50% 38 | * Being a better company to work at ([#4](https://github.com/src-d/okrs/issues/4)) 39 | * [P0] Successfully implement best practices for being a remote company ([#40](https://github.com/src-d/okrs/issues/40)) 40 | * [P0] Create a study on employees sentiment 41 | * [P0] Having a more diverse hiring funnel (increase diversity in terms of gender and race) 42 | * [P0] Improve instrumentation of the clusters for all teams ([#59](https://github.com/src-d/okrs/issues/59)) 43 | * [P0] Store pipeline cluster logs in a queryable manner ([#45](https://github.com/src-d/okrs/issues/45)) 44 | * [P0] Store logs 45 | * [P1] Be able to query logs 46 | * [P0] Support tracing logging 47 | * [P1] Successfully execute OKRs methodology 48 | * [P1] Remove technical friction between multiple teams ([#19](https://github.com/src-d/okrs/issues/19)) 49 | * [P0] Introduce monthly empathy sessions or other mechanism where different teams get to try other teams' tools 50 | * Having a more diverse funnel in terms of gender and race ([#36](https://github.com/src-d/okrs/issues/36)) 51 | * [P1] Identify and solve 2 potential bottlenecks 52 | * [P1] Bi-weekly tweets mentioning we are hiring and want more women and non-white people in our team 53 | * [P2] Sourcing through existing communities (eg. women developer communities) 54 | * Develop a remote on-boarding process ([#34](https://github.com/src-d/okrs/issues/34)) 55 | * [P1] Gain feedback on onboarding from every member who joined after the current implementation of onboarding guide 56 | * [P1] Have a complete onboarding guide on GitHub 57 | * Make our interview process more remote friendly ([#33](https://github.com/src-d/okrs/issues/33)) 58 | * [P0] Conduct 2 on-site interviews with an interviewer being remote during the candidate is on-site 59 | * [P1] Plan detailed steps of the fully-remote interviews to be applied in Q3 60 | * [P1] Tune the process with what we learned from these interviews ([#55](https://github.com/src-d/okrs/issues/55)) 61 | * [P0] Create research on candidates' sentiment towards on-site and remote interviews 62 | * Hire for each open role ([#30](https://github.com/src-d/okrs/issues/30)) 63 | * [P0] Attract **relevant** profiles of applicants through developer community 64 | * [P1] Make one hire for each open role 65 | * [P1] Increase candidate’s motivation and engagement at every interviewing step 66 | * [P1] Have a quick process from our side 67 | * [P1] Gain feedback from the candidates for the hiring process 68 | * Build a go-to-market strategy ([#3](https://github.com/src-d/okrs/issues/3)) 69 | * [P0] Determine which product category (Security & Compliance, Automated Code Review, or QA & Testing) 70 | * [P0] Determine licensing strategy 71 | * [P0] Determine go-to-market model 72 | * [P1] Determine early pricing approach 73 | * Determine which product category (Security & Compliance, Automated Code Review, or QA & Testing) ([#6](https://github.com/src-d/okrs/issues/6)) 74 | * [P0] Key result x 75 | * [P1] Deliver structured user research ([#7](https://github.com/src-d/okrs/issues/7)) 76 | * [P0] Define and describe the key use case segments 77 | * [P0] Map formally the personas for our products 78 | * [P1] Conduct 15 user research interviews 79 | * [P1] Conduct quantitative research over the Slack community 80 | * Having successful users of source{d} ([#2](https://github.com/src-d/okrs/issues/2)) 81 | * [P0] Partner with source{d} users ([#46](https://github.com/src-d/okrs/issues/46)) 82 | * [P0] Partner with 4 strategic users (2 in academia / 2 in industry) and provide guides / workshops / samples as they need them 83 | * [P1] Meet with those users monthly and gather feedback from their experience 84 | * [P1] Write friction logs / blog posts from their failure / success stories 85 | * [P0] Users are able to work with PGA ([#11](https://github.com/src-d/okrs/issues/11)) 86 | * [P0] Make engine suitable to run over PGA ([#17](https://github.com/src-d/okrs/issues/17)) 87 | * [P0] Fix the reported errors and do not crash 88 | * [P1] Report errors with meaning information for tracing the root causes 89 | * [P0] Make UAST usable without extensive knowledge of Babelfish ([#12](https://github.com/src-d/okrs/issues/12)) 90 | * [P0] Launch higher level UAST abstractions for Babelfish ([#20](https://github.com/src-d/okrs/issues/20)) 91 | * [P0] Higher-level APIs to list simple AST constructs ([#21](https://github.com/src-d/okrs/issues/21)) 92 | * [P0] UAST structure normalization 93 | * [P0] Port all existing beta language drivers 94 | * [P1] Higher-level categories for nodes. 95 | * [P2] Structural pointers. 96 | * [P0] Update Bblfsh playground ([#56](https://github.com/src-d/okrs/issues/56)) 97 | * [P0] All beta drivers to be supported automatically. 98 | * [P1] Interactive UAST visualization/manipulation (same as in gitbase playground). 99 | * [P1] Have reusable components between bblfsh dashboard and gitbase playground. 100 | * [P0] Have over 2/3 of key users to report feature as satisfactory 101 | * [P1] Set PGA update policy and perform it ([#41](https://github.com/src-d/okrs/issues/41)) 102 | * [P0] Specify the updates and versioning policy. 103 | * [P1] Add the regular PGA dataset update job to the full-scale data pipeline. 104 | * [P0] Launch gitbase and its playground ([#8](https://github.com/src-d/okrs/issues/8)) 105 | * [P0] Make gitbase suitable to run over PGA ([#16](https://github.com/src-d/okrs/issues/16)) 106 | * [P0] Make gitbase better suited for rooted repositories 107 | * [P0] Make gitbase queries on PGA not crash 108 | * [P1] Instrument gitbase to be able to trace performance 109 | * [P1] Improve performance of gitbase over PGA 110 | * [P0] Design the gitbase playground ([#39](https://github.com/src-d/okrs/issues/39)) 111 | * [P0] Competitive Research 112 | * [P0] Wireframing 113 | * [P1] Usability Testing 114 | * [P1] Working Prototype 115 | * [P1] User Research Activities & Report 116 | * [P0] Build gitbase playground ([#51](https://github.com/src-d/okrs/issues/51)) 117 | * [P0] Run gitbase playground locally (with 1 command, for 1 user) 118 | * [P0] Build web application that allows users to interact with gitbase 119 | * [P1] Create new interactive visualization of UAST (and apply to both playgrounds) 120 | * [P0] Launch a hosted version of the playground (>1 concurrent user) 121 | * [P0] Have over 50 users in the first month after public release 122 | * [P1] Get over 2/3 of user positive feedback 123 | * [P0] Launch Gemini application: file-level similarity ([#54](https://github.com/src-d/okrs/issues/54)) 124 | * [P0] Formally launch Gemini as a standalone application of our stack 125 | * [P0] Run on a single machine, for small number of repositories 126 | * [P1] Run on Apache Spark cluster, for full PGA 127 | * [P2] Run on Apache Spark cluster, for full world dataset 128 | * [P0] Deliver a reference implementation of function-level similarity ([#43](https://github.com/src-d/okrs/issues/43)) 129 | * [P0] XXX Need proper key results for the R&D 130 | * [P0] Update Code Annotation Tool to support function level ([#57](https://github.com/src-d/okrs/issues/57)) 131 | * [P0] Function-level is supported at CAT for labeling datasets 132 | * [P1] Reviewer part of CAT uses Feature Extractor REST API from ML 133 | * [P0] Annotate the dataset of XXX pairs of functions 134 | * [P0] Define the code review application product ([#9](https://github.com/src-d/okrs/issues/9)) 135 | * [P0] Explore interaction flows with developers ([#47](https://github.com/src-d/okrs/issues/47)) 136 | * [P0] Implement a Go PR review bot able to run multiple static analysis tools, make it available to specific users and gather feedback 137 | * [P1] Add “do not reinvent the wheel” feature to the bot based on gemini function duplication 138 | * [P1] Make bot language independent, consider Docker + gRPC based infra 139 | * [P0] Launch Gemini application: file-level similarity ([#54](https://github.com/src-d/okrs/issues/54)) 140 | * [P0] Formally launch Gemini as a standalone application of our stack 141 | * [P0] Run on a single machine, for small number of repositories 142 | * [P1] Run on Apache Spark cluster, for full PGA 143 | * [P2] Run on Apache Spark cluster, for full world dataset 144 | * [P0] Research: run Gemini on some repos, generate PR-level report ([#53](https://github.com/src-d/okrs/issues/53)) 145 | * [P0] A DB \w Gemini hashes over some N hand-picked popular repos 146 | * [P0] A Report on file similarity, for each PR in those repos 147 | * [P0] Build GitHub bot for PR-level feedback ([#52](https://github.com/src-d/okrs/issues/52)) 148 | * [P0] PoC of the Github bot, \w ability to run different PR-level applications- 149 | * Design, build it (following regular engineering process) with ability to run it locally 150 | * Have Gemini integrated there, as a first application 151 | * Host it on src-d infra 152 | * [P0] Have at least 2 external OSS projects to adopt it 153 | * [P1] Get over 2/3 of positive user feedback 154 | * [P0] Increasing the # of users of the source{d} stack ([#10](https://github.com/src-d/okrs/issues/10)) 155 | * [P0] Make #MLonCode a thing ([#49](https://github.com/src-d/okrs/issues/49)) 156 | * [P0] Identify 20 blog posts / papers on the topic written by others, propose cross-posting to our blog/medium 157 | * [P1] Identify 10 speakers at conferences talking about #MLonCode, invite them for collaboration / tweet about their talks / partner with them 158 | * [P2] post 5 times a day in our multiple social media accounts about #MLonCode 159 | * [P2] create a strategy to manage our online communities (slack, etc) and corresponding online marketing 160 | * [P0] Make source{d} the face of #MLonCode ([#50](https://github.com/src-d/okrs/issues/50)) 161 | * [P0] Develop half a day workshop on getting started with #MLonCode with source{d} stack (PGA, gitbase?, engine, etc) 162 | * [P1] Run that workshop at least once at a meetup / conference 163 | * [P0] Create a new talk on the future of #MLonCode and deliver it at least four times (existing confs and meetups) 164 | * [P1] Make that workshop and talk available online 165 | * [P1] Create two demos showing the power of our stack solving a “real problem” 166 | * [P2] Determine what percentage of time source{d} engineers should spend working on docs/tutorials/talks/etc 167 | * [P0] Make source{d} the lead of MLonCode research ([#42](https://github.com/src-d/okrs/issues/42)) 168 | * [P0] Create and maintain a research log with TL;DR summaries of research read 169 | * [P1] Publish 6 ML blog posts in Q2 170 | * [P2] Speak about ML on >4 relevant conferences 171 | * [P2] Reach 1,000 cumulative upvotes of new blog posts on Reddit 172 | * [P0] Enable sharing and publishing MLonCode models ([#44](https://github.com/src-d/okrs/issues/44)) 173 | * [P0] Define and design the product for model sharing (relates to 174 | * [P1] Conduct user research with all key users (e.g.: key academic groups, users of our stack). 175 | * [P0] Release updated content for sourced.tech ([#13](https://github.com/src-d/okrs/issues/13)) 176 | * [P0] Create a content strategy plan ([#35](https://github.com/src-d/okrs/issues/35)) 177 | * [P0] Editorial Environment Setup 178 | * [P0] Customer Journeys 179 | * [P0] Content Model 180 | * [P0] Copywriting 181 | * [P0] Metrics & Evaluation Analytics Setup 182 | * [P1] Information Architecture 183 | * [P2] Establish a Content Management Plan 184 | * [P1] Update brand touchpoints according to content plan 185 | * [P1] Apply new Visual Style to sourced.tech ([#32](https://github.com/src-d/okrs/issues/32)) 186 | * [P0] Visual Artifacts Study 187 | * [P1] Research 188 | * [P1] Chromatic Palete Study 189 | * [P1] Typography Study 190 | * [P1] Initial Proposals 191 | * [P1] Pure css update PR 192 | * [P1] Publish the CAT case-study development post on Medium ([#38](https://github.com/src-d/okrs/issues/38)) 193 | * [P0] Write a blog post regarding the process, methodologies and collaboration flow between teams on CAT 194 | * Define DevRel organization ([#48](https://github.com/src-d/okrs/issues/48)) 195 | * [P0] Describe the metrics of devrel success 196 | * [P0] Set monitoring up for all processes valuable to devrel 197 | * [P1] Create a dashboard displaying those metrics 198 | * [P0] Implement kanban processes in DevRel, follow the source{d} Engineering Methodology 199 | * [P0] Set up biweekly sync-ups with Eiso, Marcelo, Maximo, and Fernanda 200 | 201 | -------------------------------------------------------------------------------- /2018-Q3.md: -------------------------------------------------------------------------------- 1 | # OKRs 2018 Q3 2 | 3 | - [OKRs 2018 Q3](#okrs-2018-q3) 4 | - [Bring 'Code as Data' to market with enterprises](#bring-code-as-data-to-market-with-enterprises) 5 | - [Get gitbase enterprise ready](#get-gitbase-enterprise-ready) 6 | - [Improve gitbase performance to single second responses on most queries](#improve-gitbase-performance-to-single-second-responses-on-most-queries) 7 | - [Announce gitbase publicly](#announce-gitbase-publicly) 8 | - [Formally map 'Code as Data' enterprise needs](#formally-map-code-as-data-enterprise-needs) 9 | - [Continuous release of the website](#continuous-release-of-the-website) 10 | - [Define & design hosted Playground experiences](#define--design-hosted-playground-experiences) 11 | - [Release necessary language support for enterprise](#release-necessary-language-support-for-enterprise) 12 | - [Ensure stability of Babelfish in a production environment](#ensure-stability-of-babelfish-in-a-production-environment) 13 | - [Improve the 'Code as Data' individual user experience](#improve-the-code-as-data-individual-user-experience) 14 | - [Have an available demo cluster](#have-an-available-demo-cluster) 15 | - [Define a delivery strategy for the enterprise](#define-a-delivery-strategy-for-the-enterprise) 16 | - [[P1] Get Gemini enterprise ready](#p1-get-gemini-enterprise-ready) 17 | - [Formally map gemini enterprise needs](#formally-map-gemini-enterprise-needs) 18 | - [Being a better company to work at](#being-a-better-company-to-work-at) 19 | - [Successfully hire for each open role](#successfully-hire-for-each-open-role) 20 | - [Increase candidate’s motivation and engagement at every interviewing step](#increase-candidate%E2%80%99s-motivation-and-engagement-at-every-interviewing-step) 21 | - [Having a more diverse funnel in terms of gender and race](#having-a-more-diverse-funnel-in-terms-of-gender-and-race) 22 | - [Make our interview process more remote friendly](#make-our-interview-process-more-remote-friendly) 23 | - [Improve general happiness and communication](#improve-general-happiness-and-communication) 24 | - [Implement periodic employee happiness surveys](#implement-periodic-employee-happiness-surveys) 25 | - [Improve deployment of ML applications to the local GPU cluster](#improve-deployment-of-ml-applications-to-the-local-gpu-cluster) 26 | - [Improve engineering workflows](#improve-engineering-workflows) 27 | - [Improve financial analysis and reporting](#improve-financial-analysis-and-reporting) 28 | - [Bring 'Assisted Code Review' to developers in the open-source community](#bring-assisted-code-review-to-developers-in-the-open-source-community) 29 | - [Launch source{d} lookout alpha at GopherCon](#launch-sourced-lookout-alpha-at-gophercon) 30 | - [Define key product features](#define-key-product-features) 31 | - [Deliver formal user research](#deliver-formal-user-research) 32 | - [Release a production ready analyzer SDK](#release-a-production-ready-analyzer-sdk) 33 | - [Release a production ready service](#release-a-production-ready-service) 34 | - [Release a beta of the style analyzer[s]](#release-a-beta-of-the-style-analyzers) 35 | - [Build alpha/beta versions of the service (learning from PoC)](#build-alphabeta-versions-of-the-service-learning-from-poc) 36 | - [Any OSS project on Github is able to add lookout service (through 'Github Apps' flow)](#any-oss-project-on-github-is-able-to-add-lookout-service-through-github-apps-flow) 37 | - [Announce Lookout to the world](#announce-lookout-to-the-world) 38 | - [Store the world's source code](#store-the-worlds-source-code) 39 | - [Reach a stable version on borges & rovers](#reach-a-stable-version-on-borges--rovers) 40 | - [Stable and performant borges & rovers](#stable-and-performant-borges--rovers) 41 | - [Refactor to go-borges library, to reuse borges logic in other projects (i.e. Lookout)](#refactor-to-go-borges-library-to-reuse-borges-logic-in-other-projects-ie-lookout) 42 | - [Improve borges documentation](#improve-borges-documentation) 43 | - [Release the production kubernetes cluster](#release-the-production-kubernetes-cluster) 44 | - [Advance MLonCode awareness](#advance-mloncode-awareness) 45 | - [Make source{d} the face of MLonCode](#make-sourced-the-face-of-mloncode) 46 | - [Create an "MLonCode friends" program](#create-an-%22mloncode-friends%22-program) 47 | - [Make source{d} a friend of MLonCode academia](#make-sourced-a-friend-of-mloncode-academia) 48 | - [Promote current source{d} stack](#promote-current-sourced-stack) 49 | - [Define PR & BD Strategy](#define-pr--bd-strategy) 50 | - [Define Social Media Strategy](#define-social-media-strategy) 51 | - [Create a weekly newsletter for announcements, events, curated content and more](#create-a-weekly-newsletter-for-announcements-events-curated-content-and-more) 52 | - [Increase social engagement with MLonCode](#increase-social-engagement-with-mloncode) 53 | - [Deliver periodic & actionable insights from our data](#deliver-periodic--actionable-insights-from-our-data) 54 | 55 | ___ 56 | 57 | ## Bring 'Code as Data' to market with enterprises 58 | 59 | ### Get gitbase enterprise ready 60 | 61 | - [x] Release a stable gitbase version 62 | - [ ] Add regression testing (WIP: _pending automation_) 63 | - [ ] Ensure gitbase interoperability with 3rd party tools (WIP) 64 | 65 | #### Improve gitbase performance to single second responses on most queries 66 | 67 | - [x] Improve gitbase performance to single second responses on most queries ([10x](https://docs.google.com/spreadsheets/d/1IXIi3_6GENp0kABh47kVEutuDTDRIL44_r3j2aSicyw/edit#gid=2095431547)) 68 | - [ ] Switch Engine to use gitbase as a backend 69 | - [ ] Change engine schema to match gitbase's 70 | - [ ] Replace actual JGit implementation with a query builder and calls to gitbase 71 | 72 | #### Announce gitbase publicly 73 | 74 | - [ ] Figure out date for Gitbase announcement and see what we can do 75 | - [ ] Announcement talk at GitHub Universe 76 | - [ ] If not possible for Github Universe define alternative 77 | 78 | ### Formally map 'Code as Data' enterprise needs 79 | 80 | - [ ] Do 8 user research activities 81 | - [ ] Map formal user personas 82 | - [ ] Map key use cases 83 | - [ ] Map features missing & priorities 84 | 85 | ### Continuous release of the website 86 | 87 | - [ ] Deliver updated landing content 88 | - [ ] Product pages 89 | - [ ] General content 90 | - [ ] Add salesforce integration 91 | - [ ] Deliver actionable conversion funnel metrics 92 | - [ ] Deliver new visual style 93 | - [ ] Map content managing responsibilities 94 | 95 | #### Define & design hosted Playground experiences 96 | 97 | - [ ] Babelfish 98 | - [ ] Gitbase 99 | - [ ] Engine 100 | 101 | ### Release necessary language support for enterprise 102 | 103 | - [ ] C# driver (WIP: _started_) 104 | - [ ] C/C++ driver (WIP) 105 | 106 | ### Ensure stability of Babelfish in a production environment 107 | 108 | - [ ] Client/Library improvements, packaging, and stability 109 | 110 | ### Improve the 'Code as Data' individual user experience 111 | 112 | - [ ] Release proof-of-concept of a single CLI tool experience for end-to-end code as data workflow experience 113 | 114 | ### Have an available demo cluster 115 | 116 | - [ ] Deploy a demo cluster for 'Code as Data' that we can use for demos and 3rd parties 117 | 118 | ### Define a delivery strategy for the enterprise 119 | 120 | - [ ] Test deployment for faux-customer 121 | 122 | ### [P1] Get Gemini enterprise ready 123 | 124 | - [ ] Release a new version with the integration of function similarity (WIP) 125 | * [P1] function-level hashing runs on a single machine 126 | * [P1] function-level hashing runs on Apache Spark cluster & fraction of PGA 127 | * [P2] function-level hashing runs on Apache Spark cluster & full PGA 128 | - [ ] Announce gemini publicly 129 | - [P1] Deliver gemini product page 130 | 131 | #### Formally map gemini enterprise needs 132 | 133 | - [ ] Do 3 user research activities 134 | - [ ] Map formal user personas 135 | - [ ] Map key use cases 136 | - [ ] Map features missing & priorities 137 | 138 | ## Being a better company to work at 139 | 140 | ### Successfully hire for each open role 141 | 142 | - [ ] Hire a VP of Engineering 143 | - [ ] Develop a candidate pipeline for VP of Sales 144 | - [x] Improve candidate pipeline on Infrastructure Role 145 | - [x] Attract relevant profiles of applicants through our community 146 | - [x] Improve the speed of the hiring process from our side 147 | 148 | #### Increase candidate’s motivation and engagement at every interviewing step 149 | 150 | - [ ] Implement candidate feedback surveys 151 | - [ ] Deliver dashboard with actionable metrics 152 | 153 | #### Having a more diverse funnel in terms of gender and race 154 | 155 | - [ ] Explicit developer community promotion via social media 156 | - [x] Proactively reaching out to diverse communities 157 | - [x] Proper updates to the website & guide to promote multi-national and cultural environment 158 | 159 | #### Make our interview process more remote friendly 160 | 161 | - [ ] Identify bottlenecks in the hiring process that makes it less remote-friendly and solve them 162 | 163 | ### Improve general happiness and communication 164 | 165 | - [ ] Conduct a happiness survey and react to the unveiled issues 166 | - [ ] Conduct an engineering survey to improve development practices for Q3 and Q4 167 | - [x] Conduct empathy sessions for cross-team documentation validation 168 | - [ ] Improve internal communication for events happening at source{d} 169 | - [ ] Improve the formal process of speaking at a conference 170 | - [ ] Resolve connectivity problems at the Madrid office 171 | 172 | #### Implement periodic employee happiness surveys 173 | 174 | - [ ] Deliver dashboard with actionable metrics 175 | - [ ] Map key problems and successes 176 | 177 | #### Improve deployment of ML applications to the local GPU cluster 178 | 179 | - [ ] Create the design document 180 | - [ ] Specify the requirements: programs and services needed in the GPU cluster 181 | - [ ] Deploy the design document requirements 182 | - [ ] Research and install Kubeflow (or alternatives) to the production cluster 183 | 184 | #### Improve engineering workflows 185 | 186 | - [ ] Regression Test, Benchmarks and Deploy platform (WIP) 187 | - [ ] Improve Logs, CLI, and other guides. 188 | - [ ] Make it easy to update and maintain PGA (WIP) 189 | 190 | ### Improve financial analysis and reporting 191 | 192 | - [ ] Complete refactoring of the financial processes 193 | - [ ] Deliver financial insights dashboard 194 | 195 | ## Bring 'Assisted Code Review' to developers in the open-source community 196 | 197 | ### Launch source{d} lookout alpha at GopherCon 198 | 199 | #### Define key product features 200 | 201 | - [ ] Map formal user personas 202 | - [ ] Map key use cases (features & priorities) 203 | - [ ] Design the user experience 204 | - [ ] Have 70% of key users report a positive experience 205 | 206 | ##### Deliver formal user research 207 | 208 | - [ ] Do 5 internal user research activities 209 | - [ ] Do 10 external user research activities 210 | - [ ] Do a large-scale community survey 211 | - [ ] Estimate quant prevalence of pain points from code reviews/PRs 212 | 213 | #### Release a production ready analyzer SDK 214 | 215 | - [x] Build alpha/beta versions of an analyser SDK 216 | - [x] Build a simple reference example of analyzer 217 | - [x] Any developer is able to understand how to create a new analyzer 218 | - [x] Testing an analyzer locally is easy: streamlined to 1-2 shell commands 219 | - [ ] Release a production ready SDK with API stability guarantees (WIP) 220 | 221 | #### Release a production ready service 222 | 223 | ##### Release a beta of the style analyzer[s] 224 | 225 | - [ ] General code style rules mining under UAST (WIP: _AKA format analyzer_) 226 | - [ ] General code style rules mining over UAST 227 | - [ ] Iterate the higher level UAST abstractions to fix and maintain 228 | - [ ] Naming style suggestion 229 | - [ ] Incorporate the identifier splitter inside sourced-ml extraction pipeline 230 | - [ ] Typos correction in names (WIP: _prototype done_) 231 | - [ ] One-line best practices mining 232 | - [ ] Release UAST diffing 233 | 234 | ##### Build alpha/beta versions of the service (learning from PoC) 235 | 236 | - [x] Automated CI/CD pipeline to staging 237 | - [x] Service deployed on a staging environment 238 | - [x] 2 source{d} projects enable lookout from staging 239 | - [x] Implement the lookout service internally 240 | 241 | ##### Any OSS project on Github is able to add lookout service (through 'Github Apps' flow) 242 | 243 | - [ ] Private 'status page' of the service health (WIP) 244 | - [ ] Automated CI/CD pipeline for production environment (WIP) 245 | - [ ] Service deployed on a production environment (WIP, on gcloud) 246 | - [ ] 2 OSS projects besides source{d} enable lookout 247 | 248 | ##### Announce Lookout to the world 249 | 250 | - [ ] Prepare talk and announcement at GopherCon 251 | - [ ] Product webpage with description, videos, and instructions on how to use it 252 | - [ ] Write press release, blog post, etc 253 | - [ ] Plan social media strategy (twitter, reddit, hackernews ...) 254 | - [ ] Schedule an online meetup with technical details about the bot 255 | - [ ] Find alpha testers for bot and work with them closely until launch 256 | - [ ] Identify users after launch and partner with them 257 | 258 | ## Store the world's source code 259 | 260 | ### Reach a stable version on borges & rovers 261 | 262 | #### Stable and performing borges & rovers 263 | 264 | - [x] Improve regression tests with more use cases 265 | - [x] Keep improving go-git performance 266 | 267 | #### Refactor to go-borges library, to reuse borges logic in other projects (i.e. Lookout) 268 | 269 | - [x] Borges states diagram 270 | - [ ] Define a public API for that library studying actual use cases (WIP) 271 | - [ ] Integration tests and regression tests for that library 272 | 273 | #### Improve borges documentation 274 | 275 | - [x] Define documentation summary 276 | - [x] Gitbook integration 277 | 278 | ### Release the production kubernetes cluster 279 | 280 | - [ ] Release of the production cluster, and run rovers, borges and lookout, on it (WIP: _self-hosted k8s done_) 281 | - [ ] HA of databases and other persistent services. 282 | 283 | ## Advance MLonCode awareness 284 | 285 | ### Make source{d} the face of MLonCode 286 | 287 | - [ ] Run that workshop at least once at a meetup / conference 288 | - [ ] Create two demos showing the power of our stack solving a “real problem” 289 | - [ ] Get at least 6 more collaborators (talk/blog/...) with engineering 290 | - [ ] Improve the formal process of our internal speaker program in collaboration with Esther and get buy-in from Engineering 291 | 292 | ### Create an "MLonCode friends" program 293 | 294 | - [ ] Define "MLonCode friends" program goals & value proposition 295 | - [ ] Identify potential members and invite them officially, get 20 to join 296 | - [ ] Welcome each member personally and provide some swag 297 | - [ ] Classify members by profile (speakers, researchers, industry/academia, event organizers, etc) 298 | - [ ] Engage with members and enable them to grow their influence and our message 299 | 300 | ### Make source{d} a friend of MLonCode academia 301 | 302 | - [ ] Create a list of all academic events relevant to MLonCode until end of 2019 303 | - [ ] Decide level of involvement (attending, presenting, sponsoring, etc) 304 | - [ ] Release CodeNet with one challenge on top of PGA 305 | - [ ] Consider and plan/reject creation of competition on Kaggle 306 | - [ ] 3 citations of source{d} datasets / tech in academia endorsed documents 307 | - [ ] Develop and organize at least 3 Enterprise workshops in Q3 308 | 309 | ### Promote current source{d} stack 310 | 311 | - [ ] Write and promote 1 blog post for each project in the stack and how it came to be 312 | - [ ] Gather list of users of each project and classify them according to their profiles 313 | - [ ] source{d} Engine and/or Lookout featured at minimum 5 conferences 314 | - [ ] source{d} Engine and/or Lookout featured at minimum 5 meetups 315 | - [ ] Develop the MLonCode documentation / walkthrough 316 | 317 | ### Define PR & BD Strategy 318 | 319 | - [ ] Develop & pitch source{d}'s unique Open Source Philosophy / Culture to the press and get publication in at least 2 publications 320 | - [ ] Onboard a PR agency to support product announcements 321 | - [ ] Identify at least 1 BD led opportunity for joint announcement i.e GitHub / GitLab integration, etc 322 | 323 | ### Define Social Media Strategy 324 | 325 | - [ ] Define infrastructure for this (Buffer, etc) 326 | - [ ] Slack: figure out strategy and onboarding process 327 | - [ ] Increase followers on Twitter / Facebook / Linkedin ... 328 | - [ ] Provide an alternate method to Slack for communication: forum? 329 | 330 | ### Create a weekly newsletter for announcements, events, curated content and more 331 | 332 | - [ ] Create the newsletter 333 | - [ ] Curate content and send newsletter weekly 334 | - [ ] Reach 100 subscribers 335 | - [ ] Map and measure the conversion funnel 336 | - [ ] Deliver actionable metrics dashboard 337 | 338 | ### Increase social engagement with MLonCode 339 | 340 | - [ ] Increase hashtag usage on social media channels by X% (tbd) 341 | - [ ] Identify 20 blog posts / papers on the topic written by others, propose cross-posting to our blog/medium 342 | - [ ] Identify 10 speakers at conferences talking about MLonCode, invite them for collaboration / tweet about their talks / partner with them 343 | - [ ] Post 10 times a week in our multiple social media accounts about MLonCode 344 | - [ ] Create a strategy to manage our online communities (slack, etc) and corresponding online marketing 345 | 346 | #### Deliver periodic & actionable insights from our data 347 | 348 | - [ ] Automate data collection & storage 349 | - [ ] Map DevRel dashboard needs and future direction 350 | --------------------------------------------------------------------------------