This document discusses a case study conducted at Google to investigate the advantages and disadvantages of using a monolithic source code repository compared to multiple per-project repositories. The study utilized a survey of Google engineers as well as an analysis of developer tool logs. The survey found that engineers strongly prefer Google's monolithic repository and cited visibility of the codebase and simple dependency management as primary benefits. Engineer logs confirmed that they frequently view and edit code from other teams, indicating they take advantage of increased visibility. However, multi-repo systems provide benefits like more stable dependencies and flexibility in tool selection that a monolithic repo cannot match. Overall, the study uncovered several tradeoffs between the two approaches and that preferred development tools also influence engineers' preferences.
Software that requires maintenance and evolution presumably has value that causes the producers of the software—individuals and organizations—to invest in these activities. Given that there is almost always more that any given software package or product can provide, software producers should be motivated in enabling maintenance and evolution activities and should be interested in the software engineering research efforts that are undertaken to address identified pain points. Yet, despite efforts by providers of research results (software engineering researchers) and interest by recipients (software producing individuals and organizations), a gap remains and too few research results make their way into use. In this keynote talk from ICSME 2021, I focus on research results that take the form of software tools for software producers and explore what this gap is and how the gap might be bridged. This exploration aims to provide some practical tips for how to orient research to create usable and useful software tools.
Implications of Open Source Software Use (or Let's Talk Open Source)Gail Murphy
A talk given to the UBC Computer Science Alumni group discussing a number of implications of the use of open source as part of the global software supply chain.
In this talk, I explore what productivity means to software developers, how we might track the value that is delivered in software produced by developers and how we might begin to think about measuring the productive delivery of effective software.
Keynote at International Conference on Performance Engineering (ICPE) 2020.
SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014dreusser
SciForge: Is your code worth a full citation?
Development of the software used for research at PIK is discussed in order to strengthen quality and reproducibility. Often, efforts put into good maintenance of software is not sufficiently recognised. However, the community is actively working on concepts and solutions enabling researchers to publish software, cite it and be credited for it.
Software must meet the quality criteria of the scientific discourse to be a valuable and citeable contribution to science. Solutions also need to be developed regarding versioning and documentation, traceability, reproducibility and reusability. Furthermore, the archiving of source code and executables, the use of persistent identifiers, and metrics measuring productivity, impact, and recognition have to be addressed.
SciForge is a network and a currently running project at GFZ addressing these questions. In the joint seminar, the current debate on scientific software publication will be presented and discussed.
Software that requires maintenance and evolution presumably has value that causes the producers of the software—individuals and organizations—to invest in these activities. Given that there is almost always more that any given software package or product can provide, software producers should be motivated in enabling maintenance and evolution activities and should be interested in the software engineering research efforts that are undertaken to address identified pain points. Yet, despite efforts by providers of research results (software engineering researchers) and interest by recipients (software producing individuals and organizations), a gap remains and too few research results make their way into use. In this keynote talk from ICSME 2021, I focus on research results that take the form of software tools for software producers and explore what this gap is and how the gap might be bridged. This exploration aims to provide some practical tips for how to orient research to create usable and useful software tools.
Implications of Open Source Software Use (or Let's Talk Open Source)Gail Murphy
A talk given to the UBC Computer Science Alumni group discussing a number of implications of the use of open source as part of the global software supply chain.
In this talk, I explore what productivity means to software developers, how we might track the value that is delivered in software produced by developers and how we might begin to think about measuring the productive delivery of effective software.
Keynote at International Conference on Performance Engineering (ICPE) 2020.
SciForge Workshop@Potsdam Institute for Climate Impact Reserach; Nov 2014dreusser
SciForge: Is your code worth a full citation?
Development of the software used for research at PIK is discussed in order to strengthen quality and reproducibility. Often, efforts put into good maintenance of software is not sufficiently recognised. However, the community is actively working on concepts and solutions enabling researchers to publish software, cite it and be credited for it.
Software must meet the quality criteria of the scientific discourse to be a valuable and citeable contribution to science. Solutions also need to be developed regarding versioning and documentation, traceability, reproducibility and reusability. Furthermore, the archiving of source code and executables, the use of persistent identifiers, and metrics measuring productivity, impact, and recognition have to be addressed.
SciForge is a network and a currently running project at GFZ addressing these questions. In the joint seminar, the current debate on scientific software publication will be presented and discussed.
sciforge lightning talk at Collaborations Workshop 2015 (CW15)Martin Hammitzsch
Collaborations Workshop 2015 (CW15) - interdisciplinary working and its relationship to software
Oxford, March 25-27, 2015
http://www.software.ac.uk/cw15
QualiPSo is a four-year project, co-funded by the EU Commission, whose objective is to foster and promote the adoption of Open Source in Industries, SMES, and Public administrations by means of new software, methods, mortars and bricks. In particular, the objective will be achieved by means of different research activities, ranging from the legal issues to the definition of quality measurements mechanisms, all integrated into next generation Factories. These results will be then used within QualiPSo Competence Centre, widespread all over the world.
Scientific software has become an indispensable commodity for the production, processing and analysis of empirical data but also for modelling and simulation of complex processes. Software has a significant influence on the quality of research results. For strengthening the recognition of the academic performance of scientific software development, for increasing its visibility and for promoting the reproducibility of research results, concepts for the publication of scientific software have to be developed, tested, evaluated, and then transferred into operations. For this, the publication and citability of scientific software have to fulfil scientific criteria by means of defined processes and the use of persistent identifiers, similar to data publications.
Open source is a program in which the source code is available to the general public for use and/or modification from its original design free of cost.
Open source software are the once whose licenses are not restrictive and if gives us the freedom to use the program for any purpose, modify it and distribute it for further use without having to pay for it.
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...ijseajournal
The Eclipse framework is a popular and widely used framework that has been evolving for over a decade. The framework provides both stable interfaces (APIs) and unstable interfaces (non-APIs). Despite being discouraged by Eclipse, client developers often use non-APIs which may cause their systems to fail when ported to new framework releases. To overcome this problem, Eclipse interface producers may promote
unstable interfaces to APIs. However, client developers have no assistance to aid them to identify the promoted unstable interfaces in the Eclipse framework. We aim to help API users identify promoted unstable interfaces. We used the clone detection technique to identify promoted unstable interfaces as the framework evolves. Our empirical investigation on 16 Eclipse major releases presents the following observations. First, we have discovered that there exists over 60% non-API methods of the total interfaces in each of the analyzed 16 Eclipse releases. Second, we have discovered that the percentage of promoted non-APIs identified through clone detection ranges from 0.20% to 10.38%.
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...ijseajournal
The Eclipse framework is a popular and widely used framework that has been evolving for over a decade. The framework provides both stable interfaces (APIs) and unstable interfaces (non-APIs). Despite being discouraged by Eclipse, client developers often use non-APIs which may cause their systems to fail when ported to new framework releases. To overcome this problem, Eclipse interface producers may promote unstable interfaces to APIs. However, client developers have no assistance to aid them to identify the promoted unstable interfaces in the Eclipse framework. We aim to help API users identify promoted unstable interfaces. We used the clone detection technique to identify promoted unstable interfaces as the framework evolves. Our empirical investigation on 16 Eclipse major releases presents the following observations. First, we have discovered that there exists over 60% non-API methods of the total interfaces in each of the analyzed 16 Eclipse releases. Second, we have discovered that the percentage of promoted non-APIs identified through clone detection ranges from 0.20% to 10.38%.
IJERA (International journal of Engineering Research and Applications) is International online, ... peer reviewed journal. For more detail or submit your article, please visit www.ijera.com
Here are tips to address the main challenges of open source code in product development!
72% of organizations make non-commercial use of open source code and 55% use it for commercial product development, - says The Linux Foundation survey on corporate open source programs.
As the product development processes need much more accurate approaches, businesses have to think of the ways to prevent future or fix current flaws in #opensource code.
Intetics outlines the key problems you may face while dealing with #opensourcecode. Read more in the blog post.
https://intetics.com/blog/open-source-code-in-product-development-best-practices-and-risk-mitigation
How Virtual Compilation Transforms Static Code AnalysisCheckmarx
Many assume that code analysis requires code compilation as a prerequisite. Today, all major static code analyzers are built on this assumption and only scan post compilation - requiring buildable code. The reliance on compilation has major and negative implications for all stake holders: developers, auditors, CISOs, as well as the organizations that hope to build a secure development lifecycle (SDLC). Historically, static code analysis required a complete and buildable project to run against, which made the logical place to do the analysis at the build server and in-line with the entire build process. The “buildable” requirement also forced the execution of the scan nearer the end of the development process, making security repairs to code more expensive and greatly reducing any benefits.
<Programming> 2019 - ICW'19: The Issue of Monorepo and Polyrepo In Large Ente...Nicolas Brousse
Paper presentation at ICW'19. Abstract: Product and engineering teams’ speed of producing high-quality results is critical to ensuring enterprise competitiveness. Additionally, one can observe an increase in IT systems complexity driven by the adoption of service-oriented architecture, micro-services, and serverless. Therefore, many large enterprises benefit from a mono-repository for source code management because of the improved team cognition that results from eroding barriers between teams and from influencing enhanced teamwork quality. This paper, first, reviews the characteristics of a multi-repositories structure, a monorepository structure, and a hybrid model. Second, it discusses why some manage source code in a multi-repositories structure, either by choice or because of the organic evolution of large enterprises. Third, it reviews how mono-repositories in large teams, beyond the technical arguments, can drive high efficiency and enhanced product quality through improved team cognition.
Identification of required software, Analysis of the software requirements, Detailed specification of the software requirements, Software design, Programming, Testing, Maintenance
Why Google Stores Billions of Lines of Code in a Single RepositoryKapil Mohan
The monolithic model of source
code management is not for everyone. It is best suited to organisations like Google, with an open and collaborative culture. It would not work well for organisations where large parts
of the codebase are private or hidden between groups.
sciforge lightning talk at Collaborations Workshop 2015 (CW15)Martin Hammitzsch
Collaborations Workshop 2015 (CW15) - interdisciplinary working and its relationship to software
Oxford, March 25-27, 2015
http://www.software.ac.uk/cw15
QualiPSo is a four-year project, co-funded by the EU Commission, whose objective is to foster and promote the adoption of Open Source in Industries, SMES, and Public administrations by means of new software, methods, mortars and bricks. In particular, the objective will be achieved by means of different research activities, ranging from the legal issues to the definition of quality measurements mechanisms, all integrated into next generation Factories. These results will be then used within QualiPSo Competence Centre, widespread all over the world.
Scientific software has become an indispensable commodity for the production, processing and analysis of empirical data but also for modelling and simulation of complex processes. Software has a significant influence on the quality of research results. For strengthening the recognition of the academic performance of scientific software development, for increasing its visibility and for promoting the reproducibility of research results, concepts for the publication of scientific software have to be developed, tested, evaluated, and then transferred into operations. For this, the publication and citability of scientific software have to fulfil scientific criteria by means of defined processes and the use of persistent identifiers, similar to data publications.
Open source is a program in which the source code is available to the general public for use and/or modification from its original design free of cost.
Open source software are the once whose licenses are not restrictive and if gives us the freedom to use the program for any purpose, modify it and distribute it for further use without having to pay for it.
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...ijseajournal
The Eclipse framework is a popular and widely used framework that has been evolving for over a decade. The framework provides both stable interfaces (APIs) and unstable interfaces (non-APIs). Despite being discouraged by Eclipse, client developers often use non-APIs which may cause their systems to fail when ported to new framework releases. To overcome this problem, Eclipse interface producers may promote
unstable interfaces to APIs. However, client developers have no assistance to aid them to identify the promoted unstable interfaces in the Eclipse framework. We aim to help API users identify promoted unstable interfaces. We used the clone detection technique to identify promoted unstable interfaces as the framework evolves. Our empirical investigation on 16 Eclipse major releases presents the following observations. First, we have discovered that there exists over 60% non-API methods of the total interfaces in each of the analyzed 16 Eclipse releases. Second, we have discovered that the percentage of promoted non-APIs identified through clone detection ranges from 0.20% to 10.38%.
IDENTIFICATION OF PROMOTED ECLIPSE UNSTABLE INTERFACES USING CLONE DETECTION ...ijseajournal
The Eclipse framework is a popular and widely used framework that has been evolving for over a decade. The framework provides both stable interfaces (APIs) and unstable interfaces (non-APIs). Despite being discouraged by Eclipse, client developers often use non-APIs which may cause their systems to fail when ported to new framework releases. To overcome this problem, Eclipse interface producers may promote unstable interfaces to APIs. However, client developers have no assistance to aid them to identify the promoted unstable interfaces in the Eclipse framework. We aim to help API users identify promoted unstable interfaces. We used the clone detection technique to identify promoted unstable interfaces as the framework evolves. Our empirical investigation on 16 Eclipse major releases presents the following observations. First, we have discovered that there exists over 60% non-API methods of the total interfaces in each of the analyzed 16 Eclipse releases. Second, we have discovered that the percentage of promoted non-APIs identified through clone detection ranges from 0.20% to 10.38%.
IJERA (International journal of Engineering Research and Applications) is International online, ... peer reviewed journal. For more detail or submit your article, please visit www.ijera.com
Here are tips to address the main challenges of open source code in product development!
72% of organizations make non-commercial use of open source code and 55% use it for commercial product development, - says The Linux Foundation survey on corporate open source programs.
As the product development processes need much more accurate approaches, businesses have to think of the ways to prevent future or fix current flaws in #opensource code.
Intetics outlines the key problems you may face while dealing with #opensourcecode. Read more in the blog post.
https://intetics.com/blog/open-source-code-in-product-development-best-practices-and-risk-mitigation
How Virtual Compilation Transforms Static Code AnalysisCheckmarx
Many assume that code analysis requires code compilation as a prerequisite. Today, all major static code analyzers are built on this assumption and only scan post compilation - requiring buildable code. The reliance on compilation has major and negative implications for all stake holders: developers, auditors, CISOs, as well as the organizations that hope to build a secure development lifecycle (SDLC). Historically, static code analysis required a complete and buildable project to run against, which made the logical place to do the analysis at the build server and in-line with the entire build process. The “buildable” requirement also forced the execution of the scan nearer the end of the development process, making security repairs to code more expensive and greatly reducing any benefits.
<Programming> 2019 - ICW'19: The Issue of Monorepo and Polyrepo In Large Ente...Nicolas Brousse
Paper presentation at ICW'19. Abstract: Product and engineering teams’ speed of producing high-quality results is critical to ensuring enterprise competitiveness. Additionally, one can observe an increase in IT systems complexity driven by the adoption of service-oriented architecture, micro-services, and serverless. Therefore, many large enterprises benefit from a mono-repository for source code management because of the improved team cognition that results from eroding barriers between teams and from influencing enhanced teamwork quality. This paper, first, reviews the characteristics of a multi-repositories structure, a monorepository structure, and a hybrid model. Second, it discusses why some manage source code in a multi-repositories structure, either by choice or because of the organic evolution of large enterprises. Third, it reviews how mono-repositories in large teams, beyond the technical arguments, can drive high efficiency and enhanced product quality through improved team cognition.
Identification of required software, Analysis of the software requirements, Detailed specification of the software requirements, Software design, Programming, Testing, Maintenance
Why Google Stores Billions of Lines of Code in a Single RepositoryKapil Mohan
The monolithic model of source
code management is not for everyone. It is best suited to organisations like Google, with an open and collaborative culture. It would not work well for organisations where large parts
of the codebase are private or hidden between groups.
Following topics will be addressed into presentation:
Motivation and goals of splitting monolith application
Criteria and markers to start splitting process. Is it necessary at all?
Optimal order of extracting microservices
How organize the whole process in closed iterative steps?
What can be done with common libraries and shared code?
Options for technology and deployment of target microservices
How organize and motivate the teams and convince management?
Speaker Bio
Andrei is a Software Architect in VMWare Tanzu Labs. The areas of his interest are REST API design, Microservices, Cloud, resilient distributed systems, security and agile development. Andrei is PMC and committer of Apache CXF and committer of Syncope projects.
CODE REVIEW AND COOPERATIVE PAIR PROGRAMMING BEST PRACTICEijseajournal
ABSTRACT
We need ways to improve the code quality. Programmers have different level of tenure and experience. Standard and programming languages change and we are forced to re-use legacy code with minimum revision. Programmers develop their habits and can be slow to incorporate new technologies to simplify the code or improve the performance. We rolled out our customized code review and pair programming process to address these issues. The paper discusses the about the improvement of mandatory code review and pair programming practiced inthe commercial software development, and also proposes effective approaches to customize the code review and pair programming to avoid the pitfalls and keep the benefits
A Tool for Optimizing Java 8 Stream Software via Automated RefactoringRaffi Khatchadourian
Streaming APIs are pervasive in mainstream Object-Oriented languages and platforms. For example, the Java 8 Stream API allows for functional-like, MapReduce-style operations in processing both finite, e.g., collections, and infinite data structures. However, using this API efficiently involves subtle considerations like determining when it is best for stream operations to run in parallel, when running operations in parallel can actually be less efficient, and when it is safe to run in parallel due to possible lambda expression side-effects. In this paper, we describe the engineering aspects of an open source automated refactoring tool called Optimize Streams that assists developers in writing optimal stream software in a semantics-preserving fashion. Based on a novel ordering and typestate analysis, the tool is implemented as a plug-in to the popular Eclipse IDE, using both the WALA and SAFE frameworks. The tool was evaluated on 11 Java projects consisting of ~642 thousand lines of code, where we found that 36.31% of candidate streams were refactorable, and an average speedup of 1.55 on a performance suite was observed. We also describe experiences gained from integrating three very different static analysis frameworks to provide developers with an easy-to-use interface for optimizing their stream code to its full potential.
Bridging the Gap: from Data Science to ProductionFlorian Wilhelm
A recent but quite common observation in industry is that although there is an overall high adoption of data science, many companies struggle to get it into production. Huge teams of well-payed data scientists often present one fancy model after the other to their managers but their proof of concepts never manifest into something business relevant. The frustration grows on both sides, managers and data scientists.
In my talk I elaborate on the many reasons why data science to production is such a hard nut to crack. I start with a taxonomy of data use cases in order to easier assess technical requirements. Based thereon, my focus lies on overcoming the two-language-problem which is Python/R loved by data scientists vs. the enterprise-established Java/Scala. From my project experiences I present three different solutions, namely 1) migrating to a single language, 2) reimplementation and 3) usage of a framework. The advantages and disadvantages of each approach is presented and general advices based on the introduced taxonomy is given.
Additionally, my talk also addresses organisational as well as problems in quality assurance and deployment. Best practices and further references are presented on a high-level in order to cover all facets of data science to production.
With my talk I hope to convey the message that breakdowns on the road from data science to production are rather the rule than the exception, so you are not alone. At the end of my talk, you will have a better understanding of why your team and you are struggling and what to do about it.
Open Source project failure often stems from not setting clear objectives or having a shared vision from the start. That said there are many success stories, including two well known Statistical examples: Demetra; and Eurostat SDMX tools (SDMX-RI). However, in all these examples there was at first a founding organisation/entity that created the right environment for its successful path into a new paradigm. In the context of my presentation this being the Statistical Information System Collaboration Community (SIS-CC / http://siscc.oecd.org).
Presented at the International Marketing and Output DataBase Conference, Gozd Martuljek, September 18 - 22, 2016.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
2. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
ICSE-SEIP ’18, May 27-June 3, 2018, Gothenburg, Sweden C. Jaspan et al.
prefer our monolithic repo, and that visibility of the code-
base and simple dependency management were the primary
factors for this preference. Engineers also cite as important
the ability to find example uses of API and the ability to
automatically receive API updates. Logs data confirms that
engineers do take advantage of both the visibility of the code-
base and the ability to edit code from other teams. Contrary
to expectations, viewing popular APIs was not the primary
reason engineers view code outside of their team; this provides
further [18] evidence that viewing code to find examples of
using an API is important, possibly more so than viewing
the implementation of the API.
We also discovered many interesting tradeoffs between
using monolithic and multi-repo codebases; they each had
benefits that were not possible in the other system. One
such tradeoff was around dependencies. Engineers note that
a primary benefit of multi-repo codebases is the ability to
maintain stable, versioned dependencies. This is particularly
interesting because it is in direct contrast to two of the pri-
mary benefits of a monolithic repo: ease of both dependency
management and of receiving API updates. Another tradeoff
appeared around flexibility of the toolchain. Engineers who
prefer multiple repos also prefer the freedom and flexibility
to select their own toolchain. Interestingly, the forced con-
sistency of a monolithic repo was also cited as a benefit of
monolithic repos.
Finally, we saw evidence that for some engineers, the de-
velopment tools were more important than the style of repo.
Engineers called out favored development tools by name as a
reason to use one repo over another, even though in theory,
these tools could be available for any type of repo.
2 MONOLITHIC REPOSITORIES
For purposes of this paper, we define a monolithic source
repo to have several properties:
(1) Centralization: The codebase is contained in a single
repo encompassing multiple projects.
(2) Visibility: Code is viewable and searchable by all
engineers in the organization.
(3) Synchronization: The development process is trunk-
based; engineers commit to the head of the repo.
(4) Completeness: Any project in the repo can be built
only from dependencies also checked into the repo.
Dependencies are unversioned; projects must use
whatever version of their dependency is at the repo
head.
(5) Standardization: A shared set of tooling governs how
engineers interact with the code, including building,
testing, browsing, and reviewing code.
This definition is consistent with [21] and [29]. 1
At the other extreme, a multi-repo system is one where
code is separated by project. Notice that in a multi-repo
1
Notice that there is a difference between a monolithic repo and a mono-
lithic architecture. Linux is an example of a monolithic architecture,
but it is not an example of a monolithic repo. Google’s codebase is the
opposite; it is a monolithic codebase but not a monolithic architecture.
system, it may still be true that code is viewable by all
engineers, as is the case for open-source projects on GitHub
or BitBucket. In theory, a multi-repo system could also have
a shared set of developer tools; in practice this is rare as
there is no enforcement for this to happen across repos. In a
multi-repo setup, commits are not to a single head, so version
skew and diamond dependencies (where each project may
depend on a different version of a library) do occur.
At Google, almost all code exists in a single large, cen-
tral repo, in which almost all code2
is visible to almost all
engineers. The repo is used by over 20,000 engineers and
contains over 2 billion lines of code. All engineers that work
in this monolithic repo use a shared set of tools, including a
single build system, common testing infrastructure, a single
code browsing tool, a single code review tool, and a custom
source control system. The build system depends on com-
pilers that are also checked into the codebase; this allows
a centralized tooling team to update the compiler version
across the company.
While engineers can view and edit nearly the entire code-
base, all code is committed only after the approval of a code
owner. Code ownership is path-based, and directory owners
implicitly own all subdirectories as well. Engineers are limited
to using a small set of programming languages, and there is
a tool-enforced style for each language.
3 METHODOLOGY
To understand how engineers perceive the advantages and
disadvantages of a monolithic repo, we surveyed a sample of
engineers at Google. Rather than only measuring engineer
satisfaction with the monolithic repo, we asked them to
compare Google’s monolithic repo to their prior experiences
with other repo systems and to one hypothetical example.
The goal was to identify the relative tradeoffs between a
monolithic repo and multi-repos.
We also took advantage of our ability to log engineers’
interactions with the codebase. Our common developer tools
allow us to instrument not only commits to the codebase,
but also file views. We used these logs to confirm some of the
survey responses by showing that engineers not only say they
take advantage of the visibility they get from a monolithic
repo, but actively utilize this benefit.
3.1 Assumptions
We had several assumptions based on prior internal surveys
and interviews about developer tools.
First, we expected our developer tools to be a major con-
tributor to why engineers prefer our codebase. The internal
tools regularly receive exceptionally high satisfaction ratings
in surveys and interviews. This is a potential source of bias if
we ask about satisfaction with our codebase, and we wished
to separate satisfaction with the tools from satisfaction with
the general concept of a monolithic repo. To mitigate this,
we asked a question in the survey that attempts to hold the
developer tooling stable for a comparison.
2
The primary exceptions are Chrome and Android.
3. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Advantages and Disadvantages of a Monolithic Repository ICSE-SEIP ’18, May 27-June 3, 2018, Gothenburg, Sweden
Second, we expected visibility to be highly important to
engineers. Engineers anecdotally cite it as a major factor for
development velocity. However, we were uncertain whether
engineers actually take advantage of this power. Do engineers
say that visibility is important because they like the idea
of being able to view code in another project, or do they
actually utilize this ability on a regular basis? Because of
this assumption, we planned our logs analysis to investigate
this further and mitigate this risk. Additionally, in our sur-
vey, we compare monolithic repos against open-source repos.
Open-source repos like GitHub are also multi-repo codebases,
but with full visibility, and so provide for a useful point of
reference beyond visibility benefits.
Finally, we expected complexity to be a theme. Prior in-
ternal surveys had shown that the size and complexity of the
codebase overwhelms engineers. However, we were not sure
how this complaint stacks up against potential benefits.
3.2 Survey Methodology
We randomly selected 1902 engineers who had worked at
Google for at least three months, who had committed code
to our monolithic repo in the six months prior, and who
had averaged at least five hours a week in our developer
tools. The population for this sample was 23,000 software
engineers at Google. We constructed our survey invitation
to maximize survey responses using existing best practices
from the SE research community [26]. Engineers who had
not completed their survey in the first 24 hours received
an email reminder. None of the questions were required to
complete the survey. Responses were confidential to the au-
thors, but not anonymous. We also provided no incentives
for survey completion. Of the 1902 engineers in the sample,
869 completed the survey, yielding a response rate of 46%.
Table 1 lists the survey questions, which were presented
in three blocks. The first block was shown to all partici-
pants. It asks about the engineer’s overall satisfaction with
our monolithic codebase, their beliefs about how it impacts
velocity and quality3
, and their past experience with other
codebases. The second block of questions was only asked if the
participant indicated that they had commercial experience
with a multi-repo codebase, and the third block was only
asked if the participant indicated experience in working on
an open-source project.
The survey utilized several free-response questions to cap-
ture each participant’s points of comparison and their mo-
tivation(s) for preferences. We employed an open coding
methodology to categorize responses. Responses could re-
ceive multiple tags; the full list we used is described in [14].
We did a pass for common responses and tagged them (e.g.,
responses consisting entirely of the name of the internal code
browsing tool were tagged “visibility” and “developer tools”).
We tagged the remainder collaboratively with three authors.
We resolved disagreements by re-reading the response and
3
The survey does not define the terms “velocity” or “code quality”,
but these are commonly used terms within Google and engineers have
developed shared meaning around them.
coming to a shared agreement. In some cases, we split tags and
retagged responses to tease apart emergent themes. Finally,
we did keyword searches to verify tagged responses. We used
the 21 tags to create frequency graphs and narratives around
five emergent themes (Section 5).
3.3 Logs analysis methodology
For our logs analysis, we sought to understand the extent
to which engineers view and commit files outside of their
project. As a project might be defined in different ways, we
chose instead to focus at the level of a Product Area (PA).
As there are only 12 PAs at the company, any view or edits
that are to the code of a different PA are highly likely to be
outside of an engineer’s project. This provides us with a lower
bound for the amount of cross-project views and commits.
We analyzed two types of logs:
• Code browsing logs. Engineers at the company use a
web-based tool to browse code. The code browsing
tool logs every time an engineer views a file. While
engineers can still browse code within their editor,
this practice is less common, as local editors have un-
derstandable difficulty indexing and searching cross-
references across a repo of this size.
• Code commit logs. This is simply the code that was
committed into the codebase by an engineer.
To investigate the percentage of actions (views and com-
mits) on code outside of an engineer’s PA, we needed a
mapping from engineer to PA, and from source file to PA.
Each of the approximately 28,000 engineers4
is assigned to
one of 12 PAs for every week in our one-year study period.
To map from source file to PA, we used project metadata
files. These files specify, for each project, the code directories
they own and the PA the project belongs to. Code directories
are not uniquely owned by a PA, and some directories are
not owned by any PA. In the case that multiple projects
claim ownership, we selected the majority PA. 53% of code
directories were assigned a PA; 47% were unassigned either
due no ownership or a tie for majority ownership.
For the remaining 47% with no clear owning PA, we looked
at reviewers for commits in the directory. All code within
our company must be reviewed by an engineer who owns
that code, so reviewers give a good approximation of code
ownership. For each source code directory, we compiled the
list of reviewers who approved changes that were commit-
ted to that directory. We then looked up the PA for those
reviewers and selected the majority PA of the reviewers for
that directory. Majority PA is chosen because code often has
non-owner reviewers from other PAs (e.g., subject-matter
experts, language approvers, etc.) From this, we were able to
assign PAs to 93% of directories.
The remaining 7% are directories where the code has no
assigned project metadata and also has not been reviewed
4
We only considered full-time employees with job categories that signal
that software engineering is their primary task. This includes software
engineers and related job categories, but not job categories such as
managers, UI designers, or quantitative analysts.
4. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
ICSE-SEIP ’18, May 27-June 3, 2018, Gothenburg, Sweden C. Jaspan et al.
Num Text Response type
Q1.1 Rate your satisfaction with Google’s codebase as a software engineer. 7 point scale, “Extremely satisfied” to “Ex-
tremely dissatisfied”
Q1.2 Please rate how important the following are to your velocity as a
developer.
• I can edit source code from almost any project at Google
• I can search almost all of Google’s source code
5 point scale, “Extremely important” to
“Not at all important”
Q1.3 Please rate how important the following are to your code quality as a
developer.
• I can edit source code from almost any project at Google
• I can search almost all of Google’s source code
5 point scale, “Extremely important” to
“Not at all important”
Q1.4 Tell us more about your background: Which of the following scenarios
have you experienced as a software engineer? Select all that apply, they
do not need to relate to your Google employment.
Multi-select
• Collaborating as an individual on
open-source projects
• Working at a small company with
fewer than 5 software engineers
• Working at a startup or a new
project where you started the code-
base from scratch
• Working at a company with lots of
engineers, who have multiple code
repos
• Working at a company other than
Google, who has a large monolithic
codebase
Q2.1 Think back to your experience with the last multi-repo codebase you
used. Rate your satisfaction with that codebase as a software engineer.
7 point scale, “Extremely satisfied” to “Ex-
tremely dissatisfied”
Q2.2 Comparing your experience with the most recent multi-repo codebase
you used to working in Google’s codebase, which codebase did you
prefer?
7 point scale, “Strongly prefer multi-repo
codebase” to “Strongly prefer Google’s
codebase ”
Q2.3 Why? Describe what motivates your preference. Free response
Q2.4 What are some of the benefits you found to working in a multi-repo
codebase?
Free response
Q2.5 What are some of the benefits you found to working in Google’s single-
repo codebase?
Free response
Q2.6 If you could choose to work with Google’s codebase as a monolithic
repo or in multiple smaller repos, which would you choose?
Single select
• I would prefer to work with
Google’s codebase in a single repo
• I would prefer to work with
Google’s codebase in multiple
smaller repos
• No preference
Q2.7 What is the single main reason you would choose to use Google’s
codebase (as a single repo/in multiple smaller repos)?
Free response
Q3.1 Comparing your experience with your most recent open-source project
to working in Google’s codebase, which codebase did you prefer?
Single select
• My open-source project codebase
• Google’s codebase
• Neither
Q3.2 What are some of the benefits you found to working in open-source
codebases?
Free response
Q3.3 What are some of the benefits you found to working in Google’s code-
base?
Free response
Table 1: Survey questions
5. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Advantages and Disadvantages of a Monolithic Repository ICSE-SEIP ’18, May 27-June 3, 2018, Gothenburg, Sweden
(and thus not modified) in over a year. We excluded these
code directories from our analysis.
To analyze the extent of views/commits that occur cross-
PA, we calculated the percentage of an engineer’s interactions
with files in a different PA for each week in 2016. We then
averaged each engineer’s percentage across all weeks. Finally,
we computed distribution statistics across all engineers.
3.4 Threats to Validity
Our survey may suffer from selection bias; software engineers’
codebase preferences may impact where they work, such that
those who prefer multi-repo codebases may choose to work
at a company with such a codebase. Other companies could
rerun our survey to determine whether their workforce prefers
their respective codebase model. Our survey may also suffer
from nonresponse bias, though we acheived a good response
rate of 46%.
Our survey results may have a major confounding factor
from Google’s internal developer tools. Engineers may have
rated the monolithic codebase highly when, in fact, it was the
developer tools that they had a strong preference for. Indeed,
the developer tools did come up as a major benefit, though
certainly not the only one. To mitigate this confound, Q2.6
and Q2.7 ask about whether particpants had a preference for
Google’s codebase in a monolithic repo or a (hypothetical)
multi-repo codebase where tooling could be considered to
be equal. This appears to be a successful mitigation; fewer
respondents cited developer tools in these questions compared
to Q2.2 and Q2.3.
Our survey results may also suffer from priming. In partic-
ular, Q1.2 and Q1.3 ask the participant to think about the
relationship between their ability to see and edit the entire
codebase with velocity and code quality. It is likely that
this primed participants later to think about the visibility
of a codebase, velocity, and code quality when considering
potential benefits to different types of code repos.
We used an open-coding methodology to classify developer
survey responses into thematic areas. This process is inher-
ently subjective. We used a collaborative open-coding process
with three coders to ensure no single coder had unmitigated
influence over the coding. We do not claim this to be a
complete or singular way of coding this data.
The primary threat to validity for the quantitative logs
analysis is the heuristic for assigning source code to a PA.
53% of the code directories were mapped to a PA using
metadata files. These metadata files may be inaccurate if a
project moves from one PA to another PA, though this is
rare. If this happens, we would have swapped whether the
project was within an engineer’s PA or outside of it. We also
could not calculate a PA for the 7% of directories which had
no metadata file and no commits in the last year. However,
it is likely that these are dead projects. Finally, we assign
only a single PA to each directory. 3.9% of directories are
claimed by multiple PAs. 13.6% of users had at least one
interaction matching a file’s minority PA (a potential false
17%!
79%!
26%!
17%!
33%!
3%!
19%!
1%!
5%!
0%!
I can edit source code from almost
any project at our company!
I can search across our company's
source code!
Extremely important! Very important! Moderately important! Slightly important! Not at all important!
Figure 1: Impact on velocity. (Q1.2)
12%!
67%!
17%!
22%!
30%!
8%!
25%!
2%!
16%!
0%!
I can edit source code from almost
any project at our company!
I can search across our company's
source code!
Extremely important! Very important! Moderately important! Slightly important! Not at all important!
Figure 2: Impact on code quality. (Q1.3)
positive). However, the impact was small; only 6 engineers
had 1% or more of their interactions affected.
4 RESULTS
Of the 869 engineers who completed the survey:
• 455 (52%) had prior experience where they started
a codebase from scratch.
• 379 (44%) had prior experience in a corporate multi-
repo codebase.
• 337 (39%) had prior experience using open-source
codebases.
• 321 (37%) had prior experience working at a company
with fewer than 5 software engineers.
• 205 (24%) had prior experience using a monolithic
codebase at a different company.
Survey questions Q1.2 and Q1.3 asked all 869 engineers to
evaluate how their ability to search/edit code impacted their
velocity and code quality. Figures 1 and 2 show the results for
these questions. Participants overwhelmingly reported that
the ability to search code is important to both velocity and
code quality. Participants had mixed opinions on whether
the ability to edit code across the codebase is important to
velocity and code quality.
The logs analysis confirmed that engineers regularly view
code outside of their PA. The first two rows of Table 2 show
6. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
ICSE-SEIP ’18, May 27-June 3, 2018, Gothenburg, Sweden C. Jaspan et al.
Interaction 1st% 5th% 10th% 20th% Median 80th% 90th% 95th% 99th% Exclusions
Code view 1% 3% 6% 11% 28% 54% 69% 82% 94%
None
Code commit 0% 0% 0% 0% 5% 32% 60% 79% 100%
Code view 0% 2% 3% 6% 18% 44% 61% 75% 92%
Common files
Code commit 0% 0% 0% 0% 3% 26% 54% 74% 100%
Code view 1% 2% 3% 6% 17% 41% 57% 71% 89% Common files and low
activity engineers
Code commit 0% 0% 0% 0% 4% 25% 51% 70% 92%
Table 2: Percentage of cross-PA interactions for engineers.
the percentage of cross-PA interactions for engineers. For
example:
• The median code view value of 28% indicates that for
50% of engineers, over 28% of file views are outside
of the author’s PA.
• The 90th percentile code commit value of 60% means
that for 10% of engineers, over 60% of their commits
are outside of their PA.
As engineers at our company, we were surprised by how
much cross-PA activity actually occurs in practice. We hy-
pothesized that many of the code views may be coming from
engineers viewing the APIs of common libraries, including
core libraries like collections, distributed databases, and dis-
tributed computing frameworks [5, 6, 11]. To account for this,
we compiled a set of files to be excluded from analysis due
to their common nature:
• A hand-curated list of 26 very common directory
prefixes (including projects like Guava [11])
• All directories that had more than 10,000 cross-PA
code views in 2016. This constitutes 63,500 source
code directories out of 1,817,000 (3.5%).
• All build configuration files, as these may be looked
at to see what code is available for reuse.
• All interface files for service-level APIs [22].
The second two rows of Table 2 exclude the files described
above from the analysis. Despite these exclusions, there is
only a minor change in the distributions. This signals that
most of the cross-PA views are not for common libraries.
We also examined the people who only commited code
outside of their PA. Most of these came from engineers who
had not contributed much code at all. The last two rows
of Table 2 exclude both common files and engineers who
authored fewer than 20 commits in 2016.5
This had the effect
of removing outliers at both ends of the distribution.
5
Why 20? We examined the number of commits for our 1902 surveyed
engineers, all of whom had averaged at least 5 hours a week working
within our developer tools and had submitted code in the prior 6
months. We found that all but 4 of the 1902 surveyed engineers had
more than 20 CLs.
26%
5%
57%
17%
9% 11%
2%
13%
3%
11%
1%
24%
1%
14%
Satisfaction with our monolithic
codebase
Satisfaction with previous multi
repo codebase
Extremely satisfied Moderately satisfied Slightly satisfied Neutral
Slightly dissatisfied Moderately dissatisfied Extremely dissatisfied
Figure 3: Relative satisfaction ratings of engineers with com-
mercial multi-repo experience. (Q1.1 and Q2.1)
4.1 Participants with corporate multi-repo
codebase experience
379 of the 869 participants reported experience working at
a company that used multiple repos. Q2.1 asked these par-
ticipants to rate their satisfaction with the latest such code-
base, and Q1.1 asked participants for their satisfaction with
Google’s codebase. Figure 3 compares the satisfaction rates
for these 379 participants on these two questions. While sat-
isfaction with Google’s codebase is high overall, satisfaction
with multi-repo codebases is mixed.
The survey also explicitly asked these 379 participants
which codebase they prefer (Q2.2) and why (Q2.3). 326 par-
ticpants preferred Google’s codebase, 22 prefered their most
recent monolithic codebase, and 31 had no preference. The
authors open-coded the responses for the 232 participants
who provided a reason for their preference, which resulted in
544 codes (some responses received multiple codes). Figure
4 shows the counts of reasons for their preference, split by
which repo they preferred. The list of codes is in [14], and
relevant codes are discussed further in Section 5. The top
reasons for preferring Google’s codebase centered around
code reuse, including the ability to see all the code and
the ease of dependency management. Since there were only
22 participants who preferred their most recent multi-repo
experience, it is hard to infer many patterns. The primary
7. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Advantages and Disadvantages of a Monolithic Repository ICSE-SEIP ’18, May 27-June 3, 2018, Gothenburg, Sweden
-6!
-2!
-2!
-11!
-1!
-2!
-2!
-2!
-1!
9!
15!
20!
21!
39!
29!
38!
49!
50!
52!
53!
98!
Stability!
Consistent Style!
Community/Collaboration!
Quality!
Velocity!
Usage Examples!
Easy Updates!
Available Dev Tools!
Dependency Mgmt!
Reduced cognitive load!
Code Reuse!
Visibility of codebase!
Previous Multi Repo Codebase! Our monolithic codebase!
Figure 4: Reasons for preferring Google’s monolithic repo or
most recent multi-repo codebase, as stated by participants
with commercial multi-repo experience. (Q2.2 and Q2.3)
2!
13!
15!
18!
19!
27!
39!
48!
50!
54!
54!
75!
104!
None/Very Little!
Build process!
Consistent Style!
Community!
Testing!
Quality!
Dependency Mgmt!
Velocity!
Available Dev Tools!
Usage Examples!
Code Reuse!
Easy Updates!
Visibility of Codebase!
Figure 5: Benefits to Google’s monolithic repo, according to
participants with commercial multi-repo experience. (Q2.4
reason provided was velocity; interestingly, this was also a
common reason for preferring the monolithic repo.
Regardless of their preferred codebase, all 379 participants
were asked to provide benefits to working in both Google’s
codebase (Q2.4) and their prior multi-repo codebase (Q2.5).
238 participants provided 579 benefits to using Google’s
codebase (Figure 5), and 227 participants provided 298 bene-
fits to using their past multi-repo codebase (Figure 6). If a
participant explicitly provided no benefit (by either stating
this outright, using profane language, or providing obviously
sarcastic remarks), we coded it as “None/Very little”.
The 379 participants with experience using a corporate
multi-repo codebase were also asked whether they would
prefer to work in Google’s codebase using either the current
monolothic repo or a multi-repo system (Q2.6) and why
(Q2.7). 294 participants chose the current monolithic system,
26 would prefer it to be a multi-repo system, and 52 had
no preference. 234 participants provided a reason for their
choice which resulted in 325 codes, as shown in Figure 7. The
primary reasons for preferring a multi-repo codebase were
for stability of dependencies and velocity. Velocity was also
the primary reason for preferring the monolithic repo, and
7!
10!
10!
11!
12!
14!
17!
19!
20!
23!
50!
60!
Branches!
Privacy!
Available Dev Tools!
Reduced cognitive load!
Freedom/Flexibility!
Quality!
Small size!
Velocity!
Dependency Mgmt!
Build Time!
None/Very Little!
Stable dependencies!
Figure 6: Benefits to multi-repo codebases, according to par-
ticipants with commercial multi-repo experience. (Q2.5)
-12!
-4!
-2!
-2!
-1!
-2!
-6!
9!
9!
12!
15!
15!
17!
19!
30!
42!
45!
59!
Stable Dependencies!
Build time!
Branches!
Easy updates!
Works great as is!
Available Dev Tools!
Reduced cognitive load!
Usage Examples!
Collaboration!
Quality!
Code Reuse!
Visibility of Codebase!
Dependency mgmt!
Velocity!
Hypothetical multiple repos! Current monolithic repo!
Figure 7: Reasons for preferring Google’s codebase either as
a monolithic repo or as a hypothetical multi-repo codebase,
as stated by engineers with multi-repo experience. (Q2.6 and
Q2.7)
was followed by ease of depedency management and codebase
visibility. Despite attempting to control for the developer
tools, we did still see some participants cite developer tools
as a reason to prefer one over the other. These participants
emphasized the uniformity and consistency of the tools as
important to their velocity and cognitive load. Engineers
cited build time as a reason they would prefer our company’s
codebase in a multi-repo system, which is consistent with
build times being a benefit to open-source and multi-repo
systems. Build speed can be slow within a large monolithic
repo because building a project requires building its depen-
dencies. If the dependencies are versioned and available as
binaries, as is the case for most multi-repo systems, build
speeds improve significantly.
4.2 Participants with open-source experience
337 of the participants had experience with open-source repos.
These repos are of particular interest to us because they, like
the monolithic repo, allow for full visiblity into the codebase.
We first asked participants whether they preferred the code-
base of their most recent open-source codebase, or Google’s
8. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
ICSE-SEIP ’18, May 27-June 3, 2018, Gothenburg, Sweden C. Jaspan et al.
1!
9!
9!
10!
12!
13!
14!
18!
25!
26!
33!
63!
87!
None/Very Little!
Usage examples!
Community/Collaboration!
Dependencies mgmt!
Consistent Style!
Easy Updates!
Testing!
Velocity!
Build process!
Code reuse!
Quality!
Visibility of codebase!
Available Developer Tools!
Figure 8: Benefits to Google’s monolithic repo, according to
participants with open-source experience. (Q3.2)
codebase (Q3.1). 192 participants preferred Google’s code-
base, 33 preferred their most recent open-source codebase,
and 40 had no preference.6
Regardless of their preference, these 337 participants were
asked to describe the relative benefits of each (Q3.2 and Q3.3).
149 participants provided 379 benefits for using Google’s code-
base (Figure 8) and 129 participants provided 181 benefits
for using open-source codebases (Figure 9). As expected,
the visibility of the codebase took a lesser role, though we
were surprised that it still came up as a benefit for Google’s
codebase in this comparison. We notice that code reuse, easy
updates, and usage examples all appeared within the stated
benefits for monolithic repos over open-source repos. We
hypothesize that either the open-source codebases are not
large enough to make these benefits apparent, or that the
tooling is not sufficient to support these benefits. Developer
tools was the primary benefit for both, indicating perhaps
that either both provide excellent tooling or that engineers
are strongly split about tools. The second-most cited benefit
for the open-source repo was being a member of the larger
community. Participants enjoyed giving back to others and
having their work visible to other people.
5 DISCUSSION
The results in this study highlight five themes about the
advantages and disadvantages of a monolithic repo when
compared to multi-repo codebases.
The visibility of a monolithic repo is highly impactful. En-
gineers report that the ability to easily search code has a
large positive impact on both velocity and code quality. Our
quantitative logs analysis confirms that engineers do view
code from across the organization. The logs analysis also
showed that these views are not limited to common libraries;
the most common libraries made up only 3.5% of the cross-
organization page views for 50% of engineers.
6
This question is flawed in that it assumes these cannot be the same
thing. Several open-source projects at Google develop code in the
monolithic repo and then export to open-source repos.
7!
7!
7!
8!
8!
9!
14!
18!
19!
23!
24!
28!
Stable dependencies!
Build process!
None/Very Little!
Quality!
Branches!
External Standards!
Smaller size!
Freedom/Flexibility!
Velocity!
Reduced cognitive load!
Community/Collaboration!
Available Developer Tools!
Figure 9: Benefits of open-source codebases, according to par-
ticipants with open-source experience. (Q3.3)
Visibility was the top benefit of Google’s monolithic repo
for engineers with prior experience using multi-repo code-
bases (Figure 5). Furthermore, it was also the primary driver
behind the next three benefits, each of which are enabled
through a visible codebase: looking up the documentation and
implementations of APIs (coded as Code Reuse), searching
for examples of how to use APIs (coded as Usage Examples),
and migrating clients of an API to the latest version (coded
as Easy Updates).
The visibility of the monolithic repo also enables engineers
to edit code across the organization, although this happens
less frequently and is rated as less important to velocity and
quality than searching for code. This is primarily important
for the use case of migrating clients of an API, a task which
is undertaken only by the owners of an API.
Visibility also came up in the context of velocity. While
engineers cited velocity as a benefit of both the monolithic
codebase and their prior multi-repo codebase, it was cited for
different reasons. When providing benefits for the monolithic
repo, engineers tied velocity back to visiblity and finding
example code for APIs. When providing benefits for multi-
repo codebases, engineers tied velocity back to smaller code
sizes, build speed, and not being limited in their tool choice.
Developer tools may be as important as the type of repo.
Engineers commonly cited developer tools as a benefit to
both our monolithic repo and to open-source repos. Two
internal tools were frequently called out by name; our code
browsing tool had 42 mentions in reponses to Q3.2, and the
code reviewing tool had 14. Likewise, Git was mentioned 16
times by name in the responses to Q3.3. This signals that
engineers tend to be very tied to their preferred tools. It
also highlights a recognized tradeoff of Google’s monolithic
codebase: we have developed specific tools to maintain our
monolithic repo, but in doing so have lost the ability to use
industry-standard tools that engineers are familiar with.
Developer tools also appear to play a significant role when
comparing commercial multi-repo codebases. In the results
for Q2.1, we saw that 88% of engineers preferred Google’s
9. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Advantages and Disadvantages of a Monolithic Repository ICSE-SEIP ’18, May 27-June 3, 2018, Gothenburg, Sweden
Dependency BDependency A
Project Project
Dependency C
Dependency C
v1
Dependency C
v2
Dependency BDependency A
Figure 10: Diamond dependences occur when a project has
two dependencies which depend on the same underlying li-
brary. When a developer upgrades a dependency, they run
the risk of breaking a diamond in the dependency graph.
monolithic repo over their past multi-repo setup, and devel-
oper tools was highlighted as one benefit of Google’s codebase.
In the results for Q2.6, we held the tooling the same, and the
preference for the monolithic repo went down to 79%. While
visibilty is extremely important, there are some engineers
who have strong preferences for their development tools.
There is a tension between consistent style and tool use
with freedom and flexibility of the toolchain. One of the pro-
vided benefits of the monolithic repo is a consistent style;
many engineers also associated this with higher-quality code.
Likewise, engineers reported that having shared tooling in-
creased their velocity. However, the benefits for open-source
projects included the freedom and flexibility to select their
own tools, styles, and programming languages. Engineers felt
empowered to decide based on the best fit their project.
There is a tension between having all dependencies at the
latest version and having versioned dependencies. Two of the
primary benefits cited for a monolithic repo were the ease
of dependency management (coded as Dependency Mgmt)
and the ease of updating dependent code (coded as Easy
Updates). Google engineers stated how much they loved not
having to deal with the diamond dependency problem [9]
(see Figure 10), and they praised the ability to receive code
updates as their dependencies migrated. These two benefits
were found by engineers with either multi-repo experience
(Figure 5) or open-source experience (Figure 8), though it
was more frequently called out by engineers with multi-repo
experience. Both of these benefits are enabled by building all
code off the latest version of their dependencies.
This aspect of the monolithic model was also cited as a
disadvantage. Engineers felt the effects of the code churning
underneath them, and they were frustrated if their depen-
dencies broke. The primary cited benefit of the multi-repo
codebase is having a set of dependencies that do not change
until the project owner choses (Figure 6, coded as Stable
Dependencies). This ensures that project owners update to a
stable version of their dependency that works well with their
other dependencies. Dependency mangement also came up as
benefit for a multi-repo codebase, but in a different context
than for monolithic repos: engineers who cited this wanted
to limit their dependencies and control when they created
versions of their own libraries for others to use.
A small minority of engineers believed that the difficulty
of dependency management with versioned dependencies led
to improved code quality through two good practices. First,
they believed that if the process is onerous, engineers would
not add dependencies unless absolutely necessary. Using a
smaller set of dependencies has numerous benefits such as
improving build speeds and reducing binary sizes. Second,
they believed that difficulty in updating dependencies would
force engineers to write higher quality APIs, as there would be
no second chance. As soon as the API was released, someone
would depend on it, and one would not be able to fix it later.
Reducing cognitive load is important, but there are many
ways to achieve this. Reducing cognitive load on the engineer
also emerged as a theme in both monolithic and multi-repos.
Reduction of cognitive load was cited as a reason for pre-
ferring Google’s codebase over multi-repo codebases (Figure
5 and Figure 8), yet it was also cited as benefit of both
commercial multi-repo and open-source codebases (Figure
6 and Figure 9). The difference was in how engineers be-
lieve this could be achieved. For multi-repo and open-source
codebases, engineers noted that the source of the reduced
cognitive load was a smaller codebase size (coded as Small
size), and that this resulted in other benefits as well, like
improved build times and faster development velocity. For
Google’s monolithic repo, reduced cognitive load came up in
the context of visibility and developer tools. Engineers found
that having access to both APIs and example code made it
easier to understand their own code.
6 RELATED WORK
Monolithic repos are a relatively new trend within indus-
try [10, 21], and there has been little opportunity to study
them in practice. A study at Google [25] examined how
developers use code search in Google’s monolithic codebase.
The study found that code search is a key component in de-
velopment workflows; engineers used the ability to search the
entire codebase to understand how to use an API, understand
what an implementation is doing, or to debug failures. Our
work reinforces this finding, as engineers in our survey and
observational datasets reported and were repeatedly observed
using our monolithic repo for code search.
Version control has been a focus of toolbuilders since the
release of Source Code Control System in 1972 [19, 20, 24, 27].
While most early version control systems were based on
central per-project repos, we are unaware of instances of
monolithic repos during the early history of version control
systems. The rise of distributed version control has provoked
some research into the differential impact of centralized and
distributed version control on development [3, 7]. This is an or-
thogonal question to monolithic vs. multi-repo models; either
centralized or distributed version control systems can host
monolithic repos (although most distributed version control
systems have faced scalability problems until recently [10, 12]).
The rise of distributed version control has provoked a number
10. 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
ICSE-SEIP ’18, May 27-June 3, 2018, Gothenburg, Sweden C. Jaspan et al.
of development models based on branches within distributed
repos; the research community has studied branching models
intended to facilitate development velocity [1, 2]. Distributed
repos necessitate merging between these repos or branches;
researchers have contributed tools to make developers aware
of the merged state of multiple development repos [4], as well
as developing novel merge algorithms [13].
Desouza [8] discusses how dependency management occurs
through communication channels, for example, when and
how engineers notify dependent components that a change
is imminent. Monolithic repos make a significant portion of
this communication unnecessary, as changes to dependencies
can be simultaneous with an update to clients, and all clients
are contained in the repo. In a multi-repo system, there is no
canonical source of truth that enumerates all of a component’s
reverse dependencies.
Github and other open-source codebases do have many
similarities to a monolithic repo, and these open-source code-
bases and communities have been well-studied [15, 16, 23, 28].
There are two significant differences between them and a
monolithic codebase: there is not a shared set of developer
tools, and the dependencies are not kept up to date at a
single repo head. In some languages, such as Go, Rust, and
Node, some developer tools and dependency management
systems are standardized, but as they still presume specific
versions, the diamond dependency problem remains.
7 CONCLUSION
Like virtually all choices in computing, the choice of whether
to use a monolithic or multi-repo model is a comparison of
tradeoffs. Monolithic repos may seem inflexible to engineers
accustomed to having more autonomy over the tools and
dependencies they use in their projects. However, the stan-
dardization of toolchains and dependencies found in mono-
lithic repos eliminates whole classes of versioning problems,
encourages consistent and high-quality code, and empowers
engineers to study and learn from the institutional knowledge
of their company, crystallized in the form of source code.
REFERENCES
[1] Earl T. Barr, Christian Bird, Peter C. Rigby, Abram Hindle,
Daniel M. German, and Premkumar Devanbu. 2012. Cohesive
and Isolated Development with Branches. In FASE.
[2] Christian Bird and Thomas Zimmermann. 2012. Assessing the
Value of Branches with What-if Analysis. In FSE.
[3] Caius Brindescu, Mihai Codoban, Sergii Shmarkatiuk, and Danny
Dig. 2014. How Do Centralized and Distributed Version Control
Systems Impact Software Changes?. In ICSE.
[4] Yuriy Brun, Reid Holmes, Michael D Ernst, and David Notkin.
2011. Proactive detection of collaboration conflicts. In FSE.
[5] Craig Chambers, Ashish Raniwala, Frances Perry, Stephen Adams,
Robert Henry, Robert Bradshaw, and Nathan. 2010. FlumeJava:
Easy, Efficient Data-Parallel Pipelines. In PLDI.
[6] Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C Hsieh,
Deborah A Wallach, Mike Burrows, Tushar Chandra, Andrew
Fikes, and Robert E Gruber. 2008. Bigtable: A distributed storage
system for structured data. ACM Transactions on Computer
Systems (TOCS) 26, 2 (2008), 4.
[7] Brian de Alwis and Jonathan Sillito. 2009. Why Are Software
Projects Moving from Centralized to Decentralized Version Con-
trol Systems?. In Proceedings of Cooperative and Human Aspects
on Software Engineering.
[8] Cleidson RB de Souza and David F Redmiles. 2008. An empirical
study of software developers’ management of dependencies and
changes. In ICSE.
[9] Mark Florisson and Alan Mycroft. 2017. Towards a Theory
of Packages. http://www.cl.cam.ac.uk/~mbf24/packages.pdf.
(2017). Accessed: 2017-2-17.
[10] Durham Goode and Siddarth P Agarwal. 2014. Scaling Mercurial
at Facebook. https://code.facebook.com/posts/218678814984400/
scaling-mercurial-at-facebook/. (2014). Accessed: 2017-2-17.
[11] guava 2014. Guava: Google Core Libraries for Java. https://code.
google.com/p/guava-libraries/. (2014). Accessed: 2014-11-14.
[12] Brian Harry. 2017. Scaling Git at Microsoft.
https://blogs.msdn.microsoft.com/bharry/2017/02/03/
scaling-git-and-some-back-story/. (2017). Accessed: 2017-2-17.
[13] Judah Jacobson. 2009. A formalization of darcs patch theory us-
ing inverse semigroups. ftp://ftp.math.ucla.edu/pub/camreport/
cam09-83.pdf. (2009). Accessed: 2018-2-17.
[14] Ciera Jaspan, Matthew Jorde, Andrea Knight, Caitlin Sadowski,
Edward K. Smith, Collin Winter, and Emerson Murphy-Hill. 2017.
Codes for survey free responses. goo.gl/ZNvYMe. (2017).
[15] Eirini Kalliamvakou, Georgios Gousios, Kelly Blincoe, Leif Singer,
Daniel M German, and Daniela Damian. 2014. The promises
and perils of mining GitHub. In Proceedings of the 11th working
conference on mining software repositories. ACM, 92–101.
[16] Dawn Nafus. 2012. ’Patches don’t have gender’: What is not open
in open source software. New Media & Society 14, 4 (2012).
[17] Saeed Noursalehi. 2017. GVFS at Microsoft. https:
//blogs.msdn.microsoft.com/visualstudioalm/2017/02/03/
announcing-gvfs-git-virtual-file-system/. (2017). Accessed:
2017-2-17.
[18] Chris Parnin, Christoph Treude, and Lars Grmmel. 2012. Crowd
documentation: Exploring the coverage and the dynamics of
api discussions on stack overflow. Technical Report. Georgia
Institute of Technology.
[19] Santiago Perez De Rosso and Daniel Jackson. 2013. What’s wrong
with git?: a conceptual design analysis. In Proceedings of the intl.
symposium on New ideas, new paradigms, and reflections on
programming & software. ACM.
[20] Santiago Perez De Rosso and Daniel Jackson. 2016. Purposes,
concepts, misfits, and a redesign of git. In OOPSLA.
[21] Rachel Potvin and Josh Levenburg. 2016. Why Google Stores
Billions of Lines of Code in a Single Repository. Commun. ACM
(2016).
[22] protobuf 2014. Protocol Buffers.
http://code.google.com/p/protobuf/. (2014).
[23] Baishakhi Ray, Daryl Posnett, Vladimir Filkov, and Premkumar
Devanbu. 2014. A large scale study of programming languages
and code quality in github. In FSE.
[24] Marc J Rochkind. 1975. The source code control system. IEEE
Transactions on Software Engineering 4 (1975), 364–370.
[25] Caitlin Sadowski, Kathryn T. Stolee, and Sebastian Elbaum. 2015.
How Developers Search for Code: A Case Study. In FSE.
[26] Edward Smith, Robert Loftin, Emerson Murphy-Hill, Christian
Bird, and Thomas Zimmermann. 2013. Improving developer
participation rates in surveys. In Proceedings of Cooperative and
Human Aspects on Software Engineering.
[27] Walter F Tichy. 1985. RCS — a system for version control.
Software: Practice and Experience 15, 7 (1985).
[28] Bogdan Vasilescu, Kelly Blincoe, Qi Xuan, Casey Casalnuovo,
Daniela Damian, Premkumar Devanbu, and Vladimir Filkov. 2016.
The sky is not the limit: multitasking across GitHub projects. In
ICSE.
[29] Wikipedia. 2017. Codebases — Wikipedia, The Free Encyclopedia.
https://en.wikipedia.org/wiki/Codebase. (2017). Accessed: 2017-
10-23.