This talk is about bringing in the segregation to identify the debt and the tactics of paying off technical debt in a matured, sustainable manner. Yes, it can be paid off provided enough focus is given to it.
Whether we know it or not, every time we deliver a feature we also deliver technical debt. This debt remains largely invisible, it isn't tracked, it isn't visible on our information radiators and we very seldom tell our clients about it. The closest we come to acknowledging technical debt is bugs, mainly because our users tell us there is a problem, so we can't ignore it. Technical debt shouldn't be invisible, it's as real as the features we deliver and we should start treating it so. In this talk I propose a technical debt model which can be used when identifying technical debt, furthermore I propose a low friction technique for integrating technical debt into your current SDLC process.
Keynote at halfstackconf 2017 discussing the falsehood of the idea that in order to survive the automation evolution everybody needs to learn how to code. Machines can code, too.
Construcción de web aps- un enfoque hexagonalch1l3no
This document discusses different architectural approaches for software applications. It begins by describing some issues with a simple MVC approach, such as tight coupling between layers and wiring domain logic to frameworks. It then introduces the Hexagonal architecture, which aims to decouple an application from external dependencies by establishing an isolation layer and using ports and adapters. The core of Hexagonal architecture is explained as having inner domain logic and outer adapters that interact with external things through ports. Examples are given of how to create a project command in this architecture by defining commands, controllers, and isolating domain logic. Pros are listed as lower technical debt and good abstraction that allows code reuse, while a potential con is greater complexity to implement compared to MVC.
The document discusses the Creative Commons organization and its mission to create legal and technical tools that enable reasonable copyright through "some rights reserved" licenses, as an alternative between ignoring copyright and fair use. It provides an overview of Creative Commons' six main licenses and how they can be read by humans, lawyers and machines. It also addresses criticisms of digital rights management and argues that Creative Commons aims to encourage sharing and cultural participation rather than restrict copying.
This is a version of the talk given at Dev Bootcamp in Chicago.
Technical Debt has become a catch-all phrase for any code that needs to be re-worked. Much like Refactoring has become a catch-all phrase for any activity that involves changing code. These fundamental misunderstandings and comfortable yet mis-applied metaphors have resulted in a plethora of poor decisions. What is technical debt? What is not technical debt? Why should we care? What is the cost of misunderstanding? What do we do about it? Doc discusses the origins of the metaphor, what it means today, and how we properly identify and manage technical debt.
Beyond the MVC framework, EWD provides a design-oriented approach to web development that abstracts away technical implementation details. EWD pages focus on design through declarative scripts that handle data fetching and navigation. This allows designers and developers to work together through the entire application lifecycle without programmers needing to understand design or designers needing to learn programming.
Your first web application. From Design to LaunchDavid Brooks
Everyone has an idea for the next big web application, but what does it take to bring that application to life?
David Brooks walks you through the process from planning and design to launch. You'll learn what you need to know to build it, and how to fill the gaps you might have in your skill set.
Whether we know it or not, every time we deliver a feature we also deliver technical debt. This debt remains largely invisible, it isn't tracked, it isn't visible on our information radiators and we very seldom tell our clients about it. The closest we come to acknowledging technical debt is bugs, mainly because our users tell us there is a problem, so we can't ignore it. Technical debt shouldn't be invisible, it's as real as the features we deliver and we should start treating it so. In this talk I propose a technical debt model which can be used when identifying technical debt, furthermore I propose a low friction technique for integrating technical debt into your current SDLC process.
Keynote at halfstackconf 2017 discussing the falsehood of the idea that in order to survive the automation evolution everybody needs to learn how to code. Machines can code, too.
Construcción de web aps- un enfoque hexagonalch1l3no
This document discusses different architectural approaches for software applications. It begins by describing some issues with a simple MVC approach, such as tight coupling between layers and wiring domain logic to frameworks. It then introduces the Hexagonal architecture, which aims to decouple an application from external dependencies by establishing an isolation layer and using ports and adapters. The core of Hexagonal architecture is explained as having inner domain logic and outer adapters that interact with external things through ports. Examples are given of how to create a project command in this architecture by defining commands, controllers, and isolating domain logic. Pros are listed as lower technical debt and good abstraction that allows code reuse, while a potential con is greater complexity to implement compared to MVC.
The document discusses the Creative Commons organization and its mission to create legal and technical tools that enable reasonable copyright through "some rights reserved" licenses, as an alternative between ignoring copyright and fair use. It provides an overview of Creative Commons' six main licenses and how they can be read by humans, lawyers and machines. It also addresses criticisms of digital rights management and argues that Creative Commons aims to encourage sharing and cultural participation rather than restrict copying.
This is a version of the talk given at Dev Bootcamp in Chicago.
Technical Debt has become a catch-all phrase for any code that needs to be re-worked. Much like Refactoring has become a catch-all phrase for any activity that involves changing code. These fundamental misunderstandings and comfortable yet mis-applied metaphors have resulted in a plethora of poor decisions. What is technical debt? What is not technical debt? Why should we care? What is the cost of misunderstanding? What do we do about it? Doc discusses the origins of the metaphor, what it means today, and how we properly identify and manage technical debt.
Beyond the MVC framework, EWD provides a design-oriented approach to web development that abstracts away technical implementation details. EWD pages focus on design through declarative scripts that handle data fetching and navigation. This allows designers and developers to work together through the entire application lifecycle without programmers needing to understand design or designers needing to learn programming.
Your first web application. From Design to LaunchDavid Brooks
Everyone has an idea for the next big web application, but what does it take to bring that application to life?
David Brooks walks you through the process from planning and design to launch. You'll learn what you need to know to build it, and how to fill the gaps you might have in your skill set.
James Tagg is an inventor and entrepreneur who has founded several technology companies. He holds numerous patents in over 100 countries related to touchscreen technology. He studied physics, computer science, design, and engineering at various universities in England. He currently lives on a farm in Kent, England with his family.
This document provides an overview of a blockchain training program. It begins with an introduction to blockchain technology and how it records transactions in a distributed digital ledger. The training content is then outlined, covering blockchain basics, concepts like mining and consensus mechanisms, and hands-on projects involving wallets, smart contracts, and building private blockchain networks. The training aims to provide a deep understanding of blockchain fundamentals and job readiness. Example projects are listed from beginner to advanced levels, including building a student marks management app on blockchain. In closing, the document notes the strong demand for blockchain skills according to LinkedIn and lists industries and companies that are actively hiring for blockchain expertise.
Name in Vain: Improving design one word at a timeBoris Litvinsky
The document discusses the importance of naming in code. It states that naming matters as it signifies potential problems in design and shortens the learning curve. It also discusses different types of bad names like vague names that don't express a role, abbreviations that are ambiguous, names that are too long to remember, and names that include unnecessary context. The document emphasizes that names should reference terms from the domain model and be written like well-written prose using classes as nouns, methods as verbs, interfaces as adjectives, and booleans as auxiliary verbs. It concludes with six reminders for good naming practices.
API Workshop: Deep dive into code samplesTom Johnson
See http://idratherbewriting.com for more details. This was the third slidedeck I used in my presentation. Most of these slides repeat what I presented as a soap! conference webinar in Poland.
This document contains copyright information for the CiviCRM translation project and provides translation strings for various project, task, and task status attributes in CiviCRM like "Owner Entity Table", "Project Owner ID", "Task Type", and "Status Details".
How can agile help you in clearing the technical debtManu Pk
The document discusses how Agile practices can help teams pay off technical debt. It defines technical debt as poor software development practices that increase the cost of future changes. It recommends continuously integrating code, using quality tools, and negotiating with product owners to prioritize technical debt repayment. The document suggests using spikes to experiment with new technologies and evolving designs over upfront designs. The key message is that Agile teams can detect and address technical issues using practices like continuous integration, code quality tools, spikes for experimentation, and negotiating priority of technical debt repayment with product owners.
1. Internal CSS: CSS code is placed within <style> tags in the <head> section of an HTML page.
2. External CSS: CSS code is placed in a separate .css file and linked to an HTML page using <link> tags. This avoids repeating CSS across multiple pages.
3. Inline CSS: CSS code is applied directly to HTML elements using the style attribute, overriding other styles for that specific element. This has the highest specificity.
This document introduces Bina Ramamurthy and discusses blockchain technology. It covers:
- Bina Ramamurthy's background and credentials, including authoring a book on blockchain.
- An overview of what blockchain is, including how it provides trust through decentralization, disintermediation, and an immutable distributed ledger.
- The potential impact of blockchain in areas like finance, commerce, and applications, and how it could create new career opportunities across many fields.
- An introduction to developing decentralized applications using blockchain platforms and languages like Ethereum and Solidity.
Writing less code with Serverless on AWS at AWS Community Day DACH 2021Vadym Kazulkin
The purpose of Serverless is to focus on writing the code that delivers business value and offload undifferentiated heavy lifting to the Cloud providers or SaaS vendors of your choice. Today’s code quickly becomes tomorrow’s technical debt even if you meet the perfect decision. The less you own, the better it is from the maintainability point of view. In this talk I will go through examples of the various Serverless architectures on AWS where you glue together different Serverless managed services relying mostly on configuration, significantly reducing the amount of the code written to perform the task. Own less, build more!
The document discusses web content strategy and management. It defines web content as written material for websites and discusses how content should remain constant while delivery platforms may change. It emphasizes making content portable and machine-readable through semantic markup. This allows both users and software to understand the structure and meaning of content. Semantic tagging of content also improves performance, allows content reuse in different contexts, and facilitates content sharing.
Crowd Documentation - How Programmer Social Communities are Flipping Software...Chris Parnin
The document discusses how crowd-sourced documentation, particularly on sites like Stack Overflow, has become a primary source of knowledge for software developers when learning new APIs. It finds that developers often use community sites like Stack Overflow more than official documentation, with some key points:
- Stack Overflow contains twice as many code examples as official documentation guides
- Developers report getting as much as 50% of their documentation from Stack Overflow
- In web searches, Stack Overflow questions receive 2-10x more visits than official documentation
- A small percentage (5-10%) of community members answer the majority (60%) of questions
The document is a summer training report about web technology presented by Utkarsh Tiwari. It discusses various topics related to web technology including what web technology and development are, front end and back end development, common technologies used like HTML, CSS, JavaScript, SQL, and PHP. It provides examples of front end technologies and explains how a website works by describing the process when a user enters a URL in their browser. The importance of web technology is also highlighted such as global reach, cost effectiveness, improved communication, enhanced customer experience, driving innovation, and enabling social impact.
The document discusses the challenges of traditional web application development where designers are separated from programmers after the initial design phase. This often results in the programmer's code being incomprehensible to designers. The document proposes an alternative design-focused paradigm where web applications are conceptualized as dynamic web pages that fetch data from a database and transition between pages based on user interaction or database content. This view retains the designer's role throughout the development process.
The document discusses different approaches for structuring Angular applications in a microservices architecture. It presents three solutions: 1) Using iframes to separate functionality into independent modules owned by different teams. 2) Loading multiple Angular apps separately. 3) Dividing the application into Angular modules that can be independently developed and deployed by different teams. The document analyzes advantages and tradeoffs of each approach.
This document discusses web content strategy and management. It addresses how content can be delivered across multiple platforms while maintaining a consistent brand identity and user experience. It also explains the importance of semantic markup for content, which allows both users and software to understand the structure and meaning of content. When done properly, a semantic approach to web content has benefits like improved performance, reusability and portability of content across delivery channels.
DeMarle-MFAEmergent Media at Champlain CollegeAnn DeMarle
Presentation on the implications of technology, the communications landscape and how the MFA at Champlain College in Emergent Media prepares a student for it.
Deep learning networks can be successfully applied to big data for knowledge discovery, knowledge application, and knowledge-based prediction. In other words, deep learning can be a powerful engine for producing actionable results.
Have you ever asked a programmer how much longer “this” is going to take? Here goes another typical answer. I am done with most of the tasks, need extra time to finish the last few ones. And the “last few tasks” never ends or takes enormous amounts of time.
On the one hand, we all know that estimates always go wrong. But there is another aspect to this too, i.e. the last mile problem. It can be because of the “fear or shipping” or not applying the guideline “done is better than perfect”.
This talk is about a few tricks I tried not to get into the “perfection” mode; instead, get into the habit of “shipping”. Surprisingly, that helped me to avoid providing estimates :)
Expand Contract Pattern for Continuous Delivery of DatabasesLeena N
This document discusses techniques for continuously delivering database changes, including database refactoring. It describes strategies like splitting tables and columns, adding transition periods, using versioning, automation with testing, and making changes incrementally and reversibly. Database refactoring includes structural, data quality, referential integrity, and transformation changes. Tools, strategies for low risk releases, and patterns like branch by abstraction and strangler are recommended to support evolutionary development and continuous delivery of database changes.
James Tagg is an inventor and entrepreneur who has founded several technology companies. He holds numerous patents in over 100 countries related to touchscreen technology. He studied physics, computer science, design, and engineering at various universities in England. He currently lives on a farm in Kent, England with his family.
This document provides an overview of a blockchain training program. It begins with an introduction to blockchain technology and how it records transactions in a distributed digital ledger. The training content is then outlined, covering blockchain basics, concepts like mining and consensus mechanisms, and hands-on projects involving wallets, smart contracts, and building private blockchain networks. The training aims to provide a deep understanding of blockchain fundamentals and job readiness. Example projects are listed from beginner to advanced levels, including building a student marks management app on blockchain. In closing, the document notes the strong demand for blockchain skills according to LinkedIn and lists industries and companies that are actively hiring for blockchain expertise.
Name in Vain: Improving design one word at a timeBoris Litvinsky
The document discusses the importance of naming in code. It states that naming matters as it signifies potential problems in design and shortens the learning curve. It also discusses different types of bad names like vague names that don't express a role, abbreviations that are ambiguous, names that are too long to remember, and names that include unnecessary context. The document emphasizes that names should reference terms from the domain model and be written like well-written prose using classes as nouns, methods as verbs, interfaces as adjectives, and booleans as auxiliary verbs. It concludes with six reminders for good naming practices.
API Workshop: Deep dive into code samplesTom Johnson
See http://idratherbewriting.com for more details. This was the third slidedeck I used in my presentation. Most of these slides repeat what I presented as a soap! conference webinar in Poland.
This document contains copyright information for the CiviCRM translation project and provides translation strings for various project, task, and task status attributes in CiviCRM like "Owner Entity Table", "Project Owner ID", "Task Type", and "Status Details".
How can agile help you in clearing the technical debtManu Pk
The document discusses how Agile practices can help teams pay off technical debt. It defines technical debt as poor software development practices that increase the cost of future changes. It recommends continuously integrating code, using quality tools, and negotiating with product owners to prioritize technical debt repayment. The document suggests using spikes to experiment with new technologies and evolving designs over upfront designs. The key message is that Agile teams can detect and address technical issues using practices like continuous integration, code quality tools, spikes for experimentation, and negotiating priority of technical debt repayment with product owners.
1. Internal CSS: CSS code is placed within <style> tags in the <head> section of an HTML page.
2. External CSS: CSS code is placed in a separate .css file and linked to an HTML page using <link> tags. This avoids repeating CSS across multiple pages.
3. Inline CSS: CSS code is applied directly to HTML elements using the style attribute, overriding other styles for that specific element. This has the highest specificity.
This document introduces Bina Ramamurthy and discusses blockchain technology. It covers:
- Bina Ramamurthy's background and credentials, including authoring a book on blockchain.
- An overview of what blockchain is, including how it provides trust through decentralization, disintermediation, and an immutable distributed ledger.
- The potential impact of blockchain in areas like finance, commerce, and applications, and how it could create new career opportunities across many fields.
- An introduction to developing decentralized applications using blockchain platforms and languages like Ethereum and Solidity.
Writing less code with Serverless on AWS at AWS Community Day DACH 2021Vadym Kazulkin
The purpose of Serverless is to focus on writing the code that delivers business value and offload undifferentiated heavy lifting to the Cloud providers or SaaS vendors of your choice. Today’s code quickly becomes tomorrow’s technical debt even if you meet the perfect decision. The less you own, the better it is from the maintainability point of view. In this talk I will go through examples of the various Serverless architectures on AWS where you glue together different Serverless managed services relying mostly on configuration, significantly reducing the amount of the code written to perform the task. Own less, build more!
The document discusses web content strategy and management. It defines web content as written material for websites and discusses how content should remain constant while delivery platforms may change. It emphasizes making content portable and machine-readable through semantic markup. This allows both users and software to understand the structure and meaning of content. Semantic tagging of content also improves performance, allows content reuse in different contexts, and facilitates content sharing.
Crowd Documentation - How Programmer Social Communities are Flipping Software...Chris Parnin
The document discusses how crowd-sourced documentation, particularly on sites like Stack Overflow, has become a primary source of knowledge for software developers when learning new APIs. It finds that developers often use community sites like Stack Overflow more than official documentation, with some key points:
- Stack Overflow contains twice as many code examples as official documentation guides
- Developers report getting as much as 50% of their documentation from Stack Overflow
- In web searches, Stack Overflow questions receive 2-10x more visits than official documentation
- A small percentage (5-10%) of community members answer the majority (60%) of questions
The document is a summer training report about web technology presented by Utkarsh Tiwari. It discusses various topics related to web technology including what web technology and development are, front end and back end development, common technologies used like HTML, CSS, JavaScript, SQL, and PHP. It provides examples of front end technologies and explains how a website works by describing the process when a user enters a URL in their browser. The importance of web technology is also highlighted such as global reach, cost effectiveness, improved communication, enhanced customer experience, driving innovation, and enabling social impact.
The document discusses the challenges of traditional web application development where designers are separated from programmers after the initial design phase. This often results in the programmer's code being incomprehensible to designers. The document proposes an alternative design-focused paradigm where web applications are conceptualized as dynamic web pages that fetch data from a database and transition between pages based on user interaction or database content. This view retains the designer's role throughout the development process.
The document discusses different approaches for structuring Angular applications in a microservices architecture. It presents three solutions: 1) Using iframes to separate functionality into independent modules owned by different teams. 2) Loading multiple Angular apps separately. 3) Dividing the application into Angular modules that can be independently developed and deployed by different teams. The document analyzes advantages and tradeoffs of each approach.
This document discusses web content strategy and management. It addresses how content can be delivered across multiple platforms while maintaining a consistent brand identity and user experience. It also explains the importance of semantic markup for content, which allows both users and software to understand the structure and meaning of content. When done properly, a semantic approach to web content has benefits like improved performance, reusability and portability of content across delivery channels.
DeMarle-MFAEmergent Media at Champlain CollegeAnn DeMarle
Presentation on the implications of technology, the communications landscape and how the MFA at Champlain College in Emergent Media prepares a student for it.
Deep learning networks can be successfully applied to big data for knowledge discovery, knowledge application, and knowledge-based prediction. In other words, deep learning can be a powerful engine for producing actionable results.
Have you ever asked a programmer how much longer “this” is going to take? Here goes another typical answer. I am done with most of the tasks, need extra time to finish the last few ones. And the “last few tasks” never ends or takes enormous amounts of time.
On the one hand, we all know that estimates always go wrong. But there is another aspect to this too, i.e. the last mile problem. It can be because of the “fear or shipping” or not applying the guideline “done is better than perfect”.
This talk is about a few tricks I tried not to get into the “perfection” mode; instead, get into the habit of “shipping”. Surprisingly, that helped me to avoid providing estimates :)
Expand Contract Pattern for Continuous Delivery of DatabasesLeena N
This document discusses techniques for continuously delivering database changes, including database refactoring. It describes strategies like splitting tables and columns, adding transition periods, using versioning, automation with testing, and making changes incrementally and reversibly. Database refactoring includes structural, data quality, referential integrity, and transformation changes. Tools, strategies for low risk releases, and patterns like branch by abstraction and strangler are recommended to support evolutionary development and continuous delivery of database changes.
n this world of Microservices, I am building a Monolith app. In this world of React and Vue, am building a server-side rendered app.
However, I need Javascript. I can’t avoid that. I need some parts of the page updated dynamically. I need to show/hide certain parts of the page depending upon user actions.
I don’t want JQuery for the obvious reasons. Slow.., Heavy and then, of course, it can easily create spaghetti code.
That is when I came across Stimulus JS - a modest Javascript framework. It sprinkles Javascript to add behaviour to your HTML.
It has a controller, action and targets (i.e. the HTML elements). Moreover, it pairs well with Turbolinks. So I don’t need to do the circus of converting JSON to DOM.
I’ve been using Stimulus for over a year and its been quite good. This talk is about my experiences with Stimulus with a few examples. I will share recommendations on where it might be useful and where it is not.
Patterns and practices for evolvability - the key for technical agilityLeena N
Evolvability refers to the ability to adapt to market needs and the changing environment. Mainly two kinds of evolvability are needed: Product evolving as per the market needs to avoid Building something that nobody wants The architecture and the design of the software evolving to allow the team to make faster changes to the product without breaking things That is why it is crucial to build the right product and build it in the right way.
Expand contract pattern - Continuous Delivery for Databases - DevOpsDays SeattleLeena N
Modifying the schema of a production database is *hard*. If something goes wrong, the impact on both customers and the team can be enormous. And it can be hard or even impossible to rollback a database schema change if things go wrong. And the same is true for any architectural change for a production application.
The Branch by Abstraction and Strangler Pattern makes significant application changes easier. Are there any similar patterns we can use to make production database changes less risky?
Indeed, there are. The Expand/Contract pattern is a blueprint for making the database migration. It makes the remodelling both reversible and safe. By *expanding* the application to accommodate both the old and the new schemas in parallel, we can give ourselves time to:
- Migrate any downstream dependencies on the old database schema
- Gain confidence that the migration is safe
We *contract* the application to the new version, once we’ve satisfied that the old schema is no longer needed.
The pattern helps to make significant, but necessary refactorings to your data model in a **continuous delivery way**. Most importantly, without threatening the robustness of your production applications.
Expand contract pattern continuous delivery and databasesLeena N
Modifying the schema of a production database is hard. If something goes wrong, the impact on both customers and the team can be enormous. And it can be hard or even impossible to rollback a database schema change if things go wrong. And the same is true for any architectural change for a production application.
The Branch by Abstraction and Strangler Pattern makes significant application changes easier. Are there any similar patterns we can use to make production database changes less risky?
Indeed, there are. The Expand/Collapse pattern is a blueprint for making the database migration and makes the remodelling both reversible and safe. By expanding the application to accommodate both the old and the new schemas in parallel, we can give ourselves time to:
- Migrate any downstream dependencies on the old database schema;
- Gain confidence that the migration is safe.
We contract the application to the new version, once we’ve satisfied that the old schema is no longer needed.
The pattern helps to make significant, but necessary refactorings to your data model in a continuous delivery way. Most importantly, without threatening the robustness of your production applications.
Expand contract pattern - Continuous Delivery and DatabasesLeena N
Modifying the schema of a production database is *hard*. If something goes wrong, the impact on both customers and the team can be enormous. And it can be hard or even impossible to rollback a database schema change if things go wrong. And the same is true for any architectural change for a production application.
The Branch by Abstraction and Strangler Pattern makes significant application changes easier. Are there any similar patterns we can use to make production database changes less risky?
Indeed, there are. The Expand/Contract pattern is a blueprint for making the database migration. It makes the remodelling both reversible and safe. By *expanding* the application to accommodate both the old and the new schemas in parallel, we can give ourselves time to:
- Migrate any downstream dependencies on the old database schema
- Gain confidence that the migration is safe
We *contract* the application to the new version, once we’ve satisfied that the old schema is no longer needed.
The pattern helps to make significant, but necessary refactorings to your data model in a **continuous delivery way**. Most importantly, without threatening the robustness of your production applications.
What does career growth mean? How does one grow in their career? How do you choose an organisation which allows one to grow?
One grows when the environment allows growing. I am not talking about the std. the corporate ladder. One can climb those automatically as the time passes. But all of us agree that it doesn't mean "growth".
The key ingredients for the actual growth is the following:
* Purpose - the intention to contribute to the well-being of others
* Practice - Consistent and deliberate practice
* Perseverance - Persistence to try out hard things
The talk is about examples and stories about these ingredients and what makes those who have these ingredients and those who don't.
This document discusses test-driven development (TDD) and refactoring using the Gilded Rose kata exercise. It provides rules for TDD, such as only writing production code with a failing test and refactoring code after each test. Simple design principles are outlined, like revealing intention and avoiding duplication. Extreme object-oriented programming rules are also listed, like limiting indentation and properties. The goal is to practice TDD and refactoring skills through the Gilded Rose kata.
Merge hells!! feature toggles to the rescue - Presented @ Agile TorontoLeena N
Have you ever wondered how Amazon does deployments in every 11 seconds? Have you ever wondered how frequently Google Chrome updates?
Compare that with an enterprise product you are using or the banking application that you use, it takes weeks or even months for an update. The assumption is that frequent releases are possible for Googles or Amazons or Unicorns. It is not for others.
This talk is about why that assumption is wrong. It can be done anywhere, with enough focus and investment for the Continuous Delivery pipeline to make sure that every commit is releasable or deployable.
And fundamental to Continuous Delivery is Continuous Integration. Continuous Integration guarantees every change committed to the repository is tested and reported about production readiness. And Feature Toggle is for turning features on/off depending upon certain conditions. This opens the opportunity to test certain features quickly with few users for experimentation and learning.
Feature branching has been popular for long, but everyone knows about the “code merge hell”, a common issue because of long-lived branches or infrequent integration. If the team is spending time in fixing the merge hells and checking what part of the code needs to be merged, then it is not the efficient use of human talent.
Merge hells!! Feature toggles to the rescue - DevOpsDays MadisonLeena N
This document discusses using feature toggles to help manage merge conflicts and allow for continuous delivery of code changes. It notes that building features nobody wants is a waste of resources. Feature toggles allow code to be deployed without being released, avoiding rollback issues. They also enable options like A/B testing and canary releasing. The document recommends managing feature toggles through configuration files and designing systems to be failure-tolerant using circuit breakers. It suggests architectures like branch by abstraction and strangler patterns to help manage feature toggles. Overall, it advocates taking a lean approach by working in small batches to integrate changes continuously.
Developing, building, testing and deploying react native appsLeena N
React Native is gaining maturity as a cross-platform mobile app development solution. With a strong community around the ecosystem, mobile app development is all set to become simpler and enjoyable.
This talk is about various techniques and tools that are available for building, testing and deploying React Native apps for Android and iOS platforms.
Merge hells!! feature toggles to the rescueLeena N
Introducing Continuous Delivery practices to a team in trouble can be daunting. Where do you start ? What do you do first ? Which battle do you pick first ?
I’ll share my experience of guiding a team to achieve a higher degree of delivery maturity. This is a journey from a troublesome, struggling start of chaotic manual deployments, merge hell, regular production roll backs and lost code, to deliver a single commit to trunk automatically and reliably, under an hour, many times a day.
This document discusses two companies' journeys to continuous delivery of software. The first story describes automating a loan processing platform that now processes close to $4 million in loans with a small team. The second story automated a mobile device management solution for healthcare. The document then outlines the continuous delivery process used, including practices like continuous integration, deployment pipelines and emphasizing delivering business value. Challenges discussed include balancing speed and quality while improving processes through retrospectives.
Continuous delivery is a software development discipline where you build software in such a way that the software can be released to production at any time. The idea is to make your software releasable at any moment of time by integrating it continuously and releasing it frequently to get early and frequent feedback.
Because of the approval process that exists in the release process of Android apps, Continuous Delivery is not easy for Android apps as compared to web application deployments. And it's also assumed that not much tools are available to enable Continuous Delivery.
Yes, its still not instant update to the app, but still things are better than how it has been in the past. This talk gives an overview of tools and techniques that can help us to create a pipeline to get fast and frequent feedback through continuous delivery.
Continuous delivery is a software development practice where software can be released to production at any time by building software in a way that enables frequent, automated releases. It involves practices like continuous integration, where code is automatically merged and tested frequently, automated testing and deployment, and using deployment pipelines and tools to streamline the release process. Many large tech companies practice continuous delivery, with some deploying new code in minutes or every 11 seconds to get changes to users quickly.
Merge hells - Feature Toggles to the rescueLeena N
The document discusses how feature toggles can help address "merge hells" that can occur with continuous integration. Feature toggles allow incomplete features to be deployed without being released, avoiding the need to rollback deployments. They enable options like A/B testing, canary releasing, and managing experimental and operations toggles. To manage feature toggles, teams should follow mainline development practices, use feature toggle tools, set expiry dates for toggles, and consider toggles as a first step towards continuous delivery.
This document discusses impact mapping as a technique for delivering projects with impact. It provides an example of impact mapping for an MDM (mobile device management) product. The key steps of impact mapping include: defining goals and who they impact; identifying desired behaviors and how to enable them; establishing metrics to measure impact; and planning milestones to test assumptions. Impact mapping focuses on creating actual behavioral change rather than just shipping software.
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISTier1 app
Are you ready to unlock the secrets hidden within Java thread dumps? Join us for a hands-on session where we'll delve into effective troubleshooting patterns to swiftly identify the root causes of production problems. Discover the right tools, techniques, and best practices while exploring *real-world case studies of major outages* in Fortune 500 enterprises. Engage in interactive lab exercises where you'll have the opportunity to troubleshoot thread dumps and uncover performance issues firsthand. Join us and become a master of Java thread dump analysis!
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio, Inc.
Alluxio Webinar
June. 18, 2024
For more Alluxio Events: https://www.alluxio.io/events/
Speaker:
- Jianjian Xie (Staff Software Engineer, Alluxio)
As Trino users increasingly rely on cloud object storage for retrieving data, speed and cloud cost have become major challenges. The separation of compute and storage creates latency challenges when querying datasets; scanning data between storage and compute tiers becomes I/O bound. On the other hand, cloud API costs related to GET/LIST operations and cross-region data transfer add up quickly.
The newly introduced Trino file system cache by Alluxio aims to overcome the above challenges. In this session, Jianjian will dive into Trino data caching strategies, the latest test results, and discuss the multi-level caching architecture. This architecture makes Trino 10x faster for data lakes of any scale, from GB to EB.
What you will learn:
- Challenges relating to the speed and costs of running Trino in the cloud
- The new Trino file system cache feature overview, including the latest development status and test results
- A multi-level cache framework for maximized speed, including Trino file system cache and Alluxio distributed cache
- Real-world cases, including a large online payment firm and a top ridesharing company
- The future roadmap of Trino file system cache and Trino-Alluxio integration
The Rising Future of CPaaS in the Middle East 2024Yara Milbes
Explore "The Rising Future of CPaaS in the Middle East in 2024" with this comprehensive PPT presentation. Discover how Communication Platforms as a Service (CPaaS) is transforming communication across various sectors in the Middle East.
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...Luigi Fugaro
Vector databases are transforming how we handle data, allowing us to search through text, images, and audio by converting them into vectors. Today, we'll dive into the basics of this exciting technology and discuss its potential to revolutionize our next-generation AI applications. We'll examine typical uses for these databases and the essential tools
developers need. Plus, we'll zoom in on the advanced capabilities of vector search and semantic caching in Java, showcasing these through a live demo with Redis libraries. Get ready to see how these powerful tools can change the game!
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...The Third Creative Media
"Navigating Invideo: A Comprehensive Guide" is an essential resource for anyone looking to master Invideo, an AI-powered video creation tool. This guide provides step-by-step instructions, helpful tips, and comparisons with other AI video creators. Whether you're a beginner or an experienced video editor, you'll find valuable insights to enhance your video projects and bring your creative ideas to life.
A neural network is a machine learning program, or model, that makes decisions in a manner similar to the human brain, by using processes that mimic the way biological neurons work together to identify phenomena, weigh options and arrive at conclusions.
Nashik's top web development company, Upturn India Technologies, crafts innovative digital solutions for your success. Partner with us and achieve your goals
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
Superpower Your Apache Kafka Applications Development with Complementary Open...Paul Brebner
Kafka Summit talk (Bangalore, India, May 2, 2024, https://events.bizzabo.com/573863/agenda/session/1300469 )
Many Apache Kafka use cases take advantage of Kafka’s ability to integrate multiple heterogeneous systems for stream processing and real-time machine learning scenarios. But Kafka also exists in a rich ecosystem of related but complementary stream processing technologies and tools, particularly from the open-source community. In this talk, we’ll take you on a tour of a selection of complementary tools that can make Kafka even more powerful. We’ll focus on tools for stream processing and querying, streaming machine learning, stream visibility and observation, stream meta-data, stream visualisation, stream development including testing and the use of Generative AI and LLMs, and stream performance and scalability. By the end you will have a good idea of the types of Kafka “superhero” tools that exist, which are my favourites (and what superpowers they have), and how they combine to save your Kafka applications development universe from swamploads of data stagnation monsters!
Building API data products on top of your real-time data infrastructureconfluent
This talk and live demonstration will examine how Confluent and Gravitee.io integrate to unlock value from streaming data through API products.
You will learn how data owners and API providers can document, secure data products on top of Confluent brokers, including schema validation, topic routing and message filtering.
You will also see how data and API consumers can discover and subscribe to products in a developer portal, as well as how they can integrate with Confluent topics through protocols like REST, Websockets, Server-sent Events and Webhooks.
Whether you want to monetize your real-time data, enable new integrations with partners, or provide self-service access to topics through various protocols, this webinar is for you!
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
React.js, a JavaScript library developed by Facebook, has gained immense popularity for building user interfaces, especially for single-page applications. Over the years, React has evolved and expanded its capabilities, becoming a preferred choice for mobile app development. This article will explore why React.js is an excellent choice for the Best Mobile App development company in Noida.
Visit Us For Information: https://www.linkedin.com/pulse/what-makes-reactjs-stand-out-mobile-app-development-rajesh-rai-pihvf/
Orca: Nocode Graphical Editor for Container OrchestrationPedro J. Molina
Tool demo on CEDI/SISTEDES/JISBD2024 at A Coruña, Spain. 2024.06.18
"Orca: Nocode Graphical Editor for Container Orchestration"
by Pedro J. Molina PhD. from Metadev
The Comprehensive Guide to Validating Audio-Visual Performances.pdfkalichargn70th171
Ensuring the optimal performance of your audio-visual (AV) equipment is crucial for delivering exceptional experiences. AV performance validation is a critical process that verifies the quality and functionality of your AV setup. Whether you're a content creator, a business conducting webinars, or a homeowner creating a home theater, validating your AV performance is essential.
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...Luigi Fugaro
Vector databases are redefining data handling, enabling semantic searches across text, images, and audio encoded as vectors.
Redis OM for Java simplifies this innovative approach, making it accessible even for those new to vector data.
This presentation explores the cutting-edge features of vector search and semantic caching in Java, highlighting the Redis OM library through a demonstration application.
Redis OM has evolved to embrace the transformative world of vector database technology, now supporting Redis vector search and seamless integration with OpenAI, Hugging Face, LangChain, and LlamaIndex. This talk highlights the latest advancements in Redis OM, focusing on how it simplifies the complex process of vector indexing, data modeling, and querying for AI-powered applications. We will explore the new capabilities of Redis OM, including intuitive vector search interfaces and semantic caching, which reduce the overhead of large language model (LLM) calls.
Boost Your Savings with These Money Management AppsJhone kinadey
A money management app can transform your financial life by tracking expenses, creating budgets, and setting financial goals. These apps offer features like real-time expense tracking, bill reminders, and personalized insights to help you save and manage money effectively. With a user-friendly interface, they simplify financial planning, making it easier to stay on top of your finances and achieve long-term financial stability.
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...kalichargn70th171
In today's fiercely competitive mobile app market, the role of the QA team is pivotal for continuous improvement and sustained success. Effective testing strategies are essential to navigate the challenges confidently and precisely. Ensuring the perfection of mobile apps before they reach end-users requires thoughtful decisions in the testing plan.
Penify - Let AI do the Documentation, you write the Code.KrishnaveniMohan1
Penify automates the software documentation process for Git repositories. Every time a code modification is merged into "main", Penify uses a Large Language Model to generate documentation for the updated code. This automation covers multiple documentation layers, including InCode Documentation, API Documentation, Architectural Documentation, and PR documentation, each designed to improve different aspects of the development process. By taking over the entire documentation process, Penify tackles the common problem of documentation becoming outdated as the code evolves.
https://www.penify.dev/
12. “Technical debt can be compared to monetary debt.
Unaddressed technical debt increases software
entropy. ”
https://en.wikipedia.org/wiki/Technical_debt
13. “Technical debt is not necessarily a bad thing, and
sometimes (e.g., as a proof-of-concept) technical debt
is required to move projects forward.”
https://en.wikipedia.org/wiki/Technical_debt
16. “A lot of bloggers at least have explained the debt
metaphor and confused it, I think, with the idea that
you could write code poorly with the intention of
doing a good job later and thinking that that was the
primary source of debt.”
http://wiki.c2.com/?WardExplainsDebtMetaphor
17. “I'm never in favor of writing code poorly, but I
am in favor of writing code to reflect your current
understanding of a problem even if that
understanding is partial.”
http://wiki.c2.com/?WardExplainsDebtMetaphor
20. ● Passes all the tests
● Reveals Intention
● No Duplication
● Fewer Elements
4 Rules of Simple Design
https://martinfowler.com/bliki/BeckDesignRules.html
21.
22. Renaming classes and variables is one of my most
frequent refactoring activities
~ Jeff Atwood
https://blog.codinghorror.com/i-shall-call-it-somethingmanager/
43. The Technical Debt Trap - Doc Norton
Why do teams fail to sustain code quality?
A mess is not a technical debt - Uncle Bob
Sacrificial Architecture - Martin Fowler
What is Technical Debt
References
44. Leena S N
@leenasn / leena.sn@multunus.com
https://medium.com/@leenasn
https://medium.com/continuousdelivery