The use of branches within a version control system is a risk management technique. They are commonly used to minimise the risk of unanticipated side-effects when releasing critical changes to production, or to minimise the disruption to developer productivity when making changes to the base product. But branching is not the only means of managing risk and that is what this talk addresses – the forces that drives the use of branches, what are their problems and what are the alternatives.
Feature toggle widely used in industry to release incomplete features and do A/B testing on features. The presentation covers pros and cons of the approach and share some tips and tricks.
Feature toggling is a multi-purpose technique for easily turning features on and off. I will describe the concept, different types of feature toggles, some best practices, and give some examples of how Visma currently uses feature toggling.
Version Control - Patterns and PracticesChris Oldwood
After the text editor and programming language the next most valuable, hotly debated and often poorly used tool is probably the version control system. Some treat it as nothing more than an ad-hoc backup of their source code whilst others endeavour to create a narrative that describes the evolution of their entire software product from inception to decommission.
This session takes a walk through the software development lifecycle and examines the role the source control system plays – what we store, why we store it, how we change it and then later how we reconstruct what was changed and why. We’ll look at the various forces that dictate our branching (and subsequent merging) strategies along with some of the less contentious policies we can adopt to ensure our system continues to evolve reliably whilst maintaining a traceable narrative.
Despite the range of commercial and open source SCM products out there the patterns and practices I will discuss here are almost universal. For the Software Archaeologist preserving history across file/folder moves and renames is just one aspect where tool specific knowledge matters. But before we can get there we need to deal with their lack of agreement on a common vernacular…
Waltzing with Branches [Agile o/t Beach]Chris Oldwood
The use of branches within a version control system is a risk management technique. They are commonly used to minimise the risk of unanticipated side-effects when releasing critical changes to production, or to minimise the disruption to developer productivity when making changes to the base product. But branching is not the only means of managing risk and that is what this talk addresses – the forces that drives the use of branches, what are their problems and what are the alternatives.
Feature toggle widely used in industry to release incomplete features and do A/B testing on features. The presentation covers pros and cons of the approach and share some tips and tricks.
Feature toggling is a multi-purpose technique for easily turning features on and off. I will describe the concept, different types of feature toggles, some best practices, and give some examples of how Visma currently uses feature toggling.
Version Control - Patterns and PracticesChris Oldwood
After the text editor and programming language the next most valuable, hotly debated and often poorly used tool is probably the version control system. Some treat it as nothing more than an ad-hoc backup of their source code whilst others endeavour to create a narrative that describes the evolution of their entire software product from inception to decommission.
This session takes a walk through the software development lifecycle and examines the role the source control system plays – what we store, why we store it, how we change it and then later how we reconstruct what was changed and why. We’ll look at the various forces that dictate our branching (and subsequent merging) strategies along with some of the less contentious policies we can adopt to ensure our system continues to evolve reliably whilst maintaining a traceable narrative.
Despite the range of commercial and open source SCM products out there the patterns and practices I will discuss here are almost universal. For the Software Archaeologist preserving history across file/folder moves and renames is just one aspect where tool specific knowledge matters. But before we can get there we need to deal with their lack of agreement on a common vernacular…
Waltzing with Branches [Agile o/t Beach]Chris Oldwood
The use of branches within a version control system is a risk management technique. They are commonly used to minimise the risk of unanticipated side-effects when releasing critical changes to production, or to minimise the disruption to developer productivity when making changes to the base product. But branching is not the only means of managing risk and that is what this talk addresses – the forces that drives the use of branches, what are their problems and what are the alternatives.
Startupfest 2012 - Coefficients of frictionStartupfest
It must have been amazing to live when the steam engine was invented. For millennia, human enterprise has tried to do one thing: overcome the friction of the physical world. From the first wheel and the earliest lever, to the structure of representative government and the design of broadcast TV, we’ve been fighting friction since we crawled out of the primordial ooze. That steam engine promised spare muscle, a beast of burden than never complained. Machinery would set us free. As it turned out, we were wrong. The answer wasn’t a better way to overcome friction—it was a move to the near-frictionless world of electrons. Today, every edifice we’ve erected to fight friction is crumbling in the face of a frictionless future. Join Alistair Croll for a wild romp through the economics of abundance, augmented humanity, home manufacturing, firing before aiming, coal supplies, education, and more, and see why there is simply no better time in human history to be a disruptor.
Wondering how to get a job as a consumer product manager if you’ve only done enterprise work? Worried that your portfolio isn’t sexy because you don’t have a flashy consumer mobile app under your belt? Put that all that thinking behind you and see why product management is an agnostic skill and set of tools that let you do anything. Hear from Mike Mayes, a product design consultant with over 15 years experience building online marketplaces and platforms for (mostly) the enterprise, with a mix of B2C and C2C thrown in along the way.
This presentation showcases the tools and techniques that can help with ANY product. Here's some insights into the similarities between consumer and enterprise product management, and details on why it’s important to always be “design thinking” as a PM
This presentation looks at "web2" in the context of human experience, suggesting that the social web as extension of "real life" means that it transcends the marketing-biased, "numbered web" hype that has typically surrounded it.
The slides focus particularly on the use of "social web" tools in the enterprise.
I will present these slides at Online Information 4th December 2008. See http://www.online-information.co.uk/online08/seminar_description_ims.html?presentation_id=442 for more information
This is my presentation from the IIM National Conference on 15 August 2007. I'm hoping to cause a little bit of a stir and push a few people out of their comfort zones.
There are three embedded videos that don't work on SlideShare. Use the URLs on the relevant pages to view the videos at YouTube.
There are a lot of slides, but the whole thing runs about 40 minutes in real life.
UX in the Age of AI: Where Does Design Fit In? Fluxible 2017Carol Smith
Cognitive computing and machine learning are not new concepts, but they are new to most UX’ers. Carol Smith addresses questions about artificial intelligence (AI) such as:
- What are these terms and technologies and how do they work?
- How can we take advantage of these powerful systems to help our users?
- Should I be concerned that computers will take over the world soon? Spoiler: It is extremely unlikely.
Once this baseline understanding is established, we’ll look at examples of AI in use and discuss the relevancy of design work in the age of AI. Additionally, we’ll explore the ethical challenges inherent with the use of AI from the user’s perspective, specifically regarding trust and transparency.
This was presented at Fluxible 2017 in Kitchener-Waterloo, Ontario, Canada on 23 Sept 2017.
These are the slides of my talk on June 22nd 2015 at the GOTO Night in Cologne
https://secure.trifork.com/berlin-2015/freeevent/index.jsp?eventOID=7123
Domain-Driven Design changed the way we reason about large software systems. Modern practices, tools and technologies like continuous delivery, NoSQL, and cloud-based virtualization allow the creation of fine-grained systems to solve the specific problems at hand.
Having DDD in mind and technical expertise at our hands, with microservice architectures we can build complex systems that reflect our businesses' complex realities and are easy to change at the same time. This talk will show what DDD and microservice architectures have in common and how you can use both to create software systems that fit your domain.
Startupfest 2012 - Coefficients of frictionStartupfest
It must have been amazing to live when the steam engine was invented. For millennia, human enterprise has tried to do one thing: overcome the friction of the physical world. From the first wheel and the earliest lever, to the structure of representative government and the design of broadcast TV, we’ve been fighting friction since we crawled out of the primordial ooze. That steam engine promised spare muscle, a beast of burden than never complained. Machinery would set us free. As it turned out, we were wrong. The answer wasn’t a better way to overcome friction—it was a move to the near-frictionless world of electrons. Today, every edifice we’ve erected to fight friction is crumbling in the face of a frictionless future. Join Alistair Croll for a wild romp through the economics of abundance, augmented humanity, home manufacturing, firing before aiming, coal supplies, education, and more, and see why there is simply no better time in human history to be a disruptor.
Wondering how to get a job as a consumer product manager if you’ve only done enterprise work? Worried that your portfolio isn’t sexy because you don’t have a flashy consumer mobile app under your belt? Put that all that thinking behind you and see why product management is an agnostic skill and set of tools that let you do anything. Hear from Mike Mayes, a product design consultant with over 15 years experience building online marketplaces and platforms for (mostly) the enterprise, with a mix of B2C and C2C thrown in along the way.
This presentation showcases the tools and techniques that can help with ANY product. Here's some insights into the similarities between consumer and enterprise product management, and details on why it’s important to always be “design thinking” as a PM
This presentation looks at "web2" in the context of human experience, suggesting that the social web as extension of "real life" means that it transcends the marketing-biased, "numbered web" hype that has typically surrounded it.
The slides focus particularly on the use of "social web" tools in the enterprise.
I will present these slides at Online Information 4th December 2008. See http://www.online-information.co.uk/online08/seminar_description_ims.html?presentation_id=442 for more information
This is my presentation from the IIM National Conference on 15 August 2007. I'm hoping to cause a little bit of a stir and push a few people out of their comfort zones.
There are three embedded videos that don't work on SlideShare. Use the URLs on the relevant pages to view the videos at YouTube.
There are a lot of slides, but the whole thing runs about 40 minutes in real life.
UX in the Age of AI: Where Does Design Fit In? Fluxible 2017Carol Smith
Cognitive computing and machine learning are not new concepts, but they are new to most UX’ers. Carol Smith addresses questions about artificial intelligence (AI) such as:
- What are these terms and technologies and how do they work?
- How can we take advantage of these powerful systems to help our users?
- Should I be concerned that computers will take over the world soon? Spoiler: It is extremely unlikely.
Once this baseline understanding is established, we’ll look at examples of AI in use and discuss the relevancy of design work in the age of AI. Additionally, we’ll explore the ethical challenges inherent with the use of AI from the user’s perspective, specifically regarding trust and transparency.
This was presented at Fluxible 2017 in Kitchener-Waterloo, Ontario, Canada on 23 Sept 2017.
These are the slides of my talk on June 22nd 2015 at the GOTO Night in Cologne
https://secure.trifork.com/berlin-2015/freeevent/index.jsp?eventOID=7123
Domain-Driven Design changed the way we reason about large software systems. Modern practices, tools and technologies like continuous delivery, NoSQL, and cloud-based virtualization allow the creation of fine-grained systems to solve the specific problems at hand.
Having DDD in mind and technical expertise at our hands, with microservice architectures we can build complex systems that reflect our businesses' complex realities and are easy to change at the same time. This talk will show what DDD and microservice architectures have in common and how you can use both to create software systems that fit your domain.
Taming the Monolith – Are Microservices Just an Implementation Detail?Thoughtworks
Dennis Traub's talk from the first GOTO Night in Cologne.
Domain-Driven Design changed the way we reason about large software systems. Modern practices, tools and technologies like continuous delivery, NoSQL, and cloud-based virtualization allow the creation of fine-grained systems to solve the specific problems at hand.
Having DDD in mind and technical expertise at our hands, with microservice architectures we can build complex systems that reflect our businesses’ complex realities and are easy to change at the same time. This talk will show what DDD and microservice architectures have in common and how you can use both to create software systems that fit your domain.
My talk at Interesting South 2008 (http://interestingsouth.com/).
A brief discussion of the need for and ways groups can behave more naturally in order to collaborate and innovate as opposed to the restrictive way we are taught to work.
When we hear the term "monolithic" we instantly think of architecture, but when was the last time you delivered an application on a mainframe or home computer? We've been using the term "monolithic architecture" as a pejorative for years but the real constraint is often not the architecture itself but the tight coupling in the delivery mechanism. What we have really been suffering from is "monolithic delivery". Even micro-services, the current darling of the software architecture world and answer to the monolith, is equally susceptible to tight coupling in the wrong hands.
This session looks at the relationship between software design and delivery, and asks if the modern monolith is just misunderstood? In our rush to embrace the new world of micro-services are we prematurely optimising the wrong constraints?
When it comes to writing tests we often live in the here-and-now and consequently end up producing "write-only" tests. This session looks at what we need to consider if we want to create tests that our future selves and teammates will find valuable instead of becoming another burden on top of delivering the feature itself.
If there is one place that we find it easy to take shortcuts it's when writing tests. Whether we're under the cosh or have an overly-optimistic view of our ability to write self-documenting code, instead of creating tests that support the production code and development process we can find ourselves producing WTFs (Weak Test Functions). The net effect is often a viscous cycle that disparages, instead of encourages us.
In the past I've tried many different ways to try and short-circuit the test writing process, but have only come-up short every time. This session takes a look at why skimping on elements of the test structure, such as organisation, naming and scope only leads to pain and hardship in the long run. Along the way we'll uncover the truth behind common folklore, such as only having one assertion per test.
As a general rule we should strive to use the right tool for the job. If you find yourself installing an IDE on a production server just to search your log files for a particular piece of text, then you’ve probably chosen the wrong tool.
The modern IDE can be an excellent tool for day-to-day developer duties, but we do not solely write code; we also have to do analysis, testing, support, etc. For these we should be looking at more focused tools, and occasionally we may need to build our own. Sometimes the right tool is not readily accessible and we have to weigh up whether (ab)using the wrong tool may in fact be the more efficient choice.
This session takes a look at a variety of both command-line and GUI tools that have proved to be useful to the speaker time-and-time again. Most of the examples will come from the areas of build automation, testing and support with a few wildcards thrown in for good measure. Text editors will not be discussed for obvious reasons.
Readers already familiar with the C Vu column “In the Toolbox” should find familiarity in the subject matter without an overwhelming sense of déjà vu.
This session looks at applying the same principles and disciplines used in other areas of system development to tame the ever increasing complexity that has arisen from the maturity of the RDBMS. To show how easy it can be to apply TDD/Unit Testing to SQL development, part of the talk will involve coding up a procedure in a test-first manner using a freely available T-SQL based test framework.
Holding slide for my first stand-up comedy routine at the ACCU 2016 conference.
See: http://chrisoldwood.blogspot.co.uk/2016/04/stand-up-and-deliver.html
Holding slide for my second stand-up comedy routine at the ACCU 2016 conference.
See: http://chrisoldwood.blogspot.co.uk/2016/04/stand-up-and-deliver.html
Using xUnit as a Swiss-Aarmy Testing ToolkitChris Oldwood
Modern Unit Testing practices act as a conduit for improved software designs that are more amenable to change and can be easily backed by automation for fast feedback on quality assurance. The necessity of reducing external dependencies forces us to design our modules with minimum coupling which can then be leveraged both at the module, component and subsystem levels in our testing. As we start to integrate our units into larger blocks and interface our resulting components with external systems we find ourselves switching nomenclature as we progress from Unit to Integration testing. But is a change in mindset and tooling really required?
The xUnit testing framework is commonly perceived as an aid to Unit Testing but the constraints that it imposes on the architecture mean that it is an excellent mechanism for invoking arbitrary code in a restricted context. Tests can be partitioned by categorisation at the test and fixture level and through physical packaging leading to a flexible test code structure. Throw in its huge popularity and you have a simplified learning curve for expressing more that just unit tests.
Using scenarios from his current system Chris aims to show how you can use a similar format and tooling for unit, component and integration level tests; albeit with a few liberties taken to work around the inherent differences with each methodology.
It’s been said that the first 90% of a project consumes 90% of the time, whereas the second 10 % accounts for the other 90% of the time. One reason might be because elevating software from “mostly works” to robust and supportable requires an attention to detail in the parts of a system that are usually mocked out during unit testing. It’s all too easy to focus on testing the happy paths and gloss over the more tricky design problems such as how to handle a full disk or Cheshire cat style network.
This session delves into those less glamorous non-functional requirements that crop up the moment you start talking to hard disks, networks, databases, etc. Unsurprisingly it will have a fair bit to say about detecting and recovering from errors; starting with ensuring that you generate them correctly in the first place. This will undoubtedly lead on to the aforementioned subject of testing systemic effects. Finally there will also be diversions into the realms of monitoring and configuration as we look into the operational side of the code once it’s running.
At the end you will hopefully have smiled at the misfortune of others (mostly me) and added a few more items to the ever growing list of “stuff I might have to think about when developing software”.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Transform Your Communication with Cloud-Based IVR SolutionsTheSMSPoint
Discover the power of Cloud-Based IVR Solutions to streamline communication processes. Embrace scalability and cost-efficiency while enhancing customer experiences with features like automated call routing and voice recognition. Accessible from anywhere, these solutions integrate seamlessly with existing systems, providing real-time analytics for continuous improvement. Revolutionize your communication strategy today with Cloud-Based IVR Solutions. Learn more at: https://thesmspoint.com/channel/cloud-telephony
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Looking for a reliable mobile app development company in Noida? Look no further than Drona Infotech. We specialize in creating customized apps for your business needs.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
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
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppGoogle
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-fusion-buddy-review
AI Fusion Buddy Review: Key Features
✅Create Stunning AI App Suite Fully Powered By Google's Latest AI technology, Gemini
✅Use Gemini to Build high-converting Converting Sales Video Scripts, ad copies, Trending Articles, blogs, etc.100% unique!
✅Create Ultra-HD graphics with a single keyword or phrase that commands 10x eyeballs!
✅Fully automated AI articles bulk generation!
✅Auto-post or schedule stunning AI content across all your accounts at once—WordPress, Facebook, LinkedIn, Blogger, and more.
✅With one keyword or URL, generate complete websites, landing pages, and more…
✅Automatically create & sell AI content, graphics, websites, landing pages, & all that gets you paid non-stop 24*7.
✅Pre-built High-Converting 100+ website Templates and 2000+ graphic templates logos, banners, and thumbnail images in Trending Niches.
✅Say goodbye to wasting time logging into multiple Chat GPT & AI Apps once & for all!
✅Save over $5000 per year and kick out dependency on third parties completely!
✅Brand New App: Not available anywhere else!
✅ Beginner-friendly!
✅ZERO upfront cost or any extra expenses
✅Risk-Free: 30-Day Money-Back Guarantee!
✅Commercial License included!
See My Other Reviews Article:
(1) AI Genie Review: https://sumonreview.com/ai-genie-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
#AIFusionBuddyReview,
#AIFusionBuddyFeatures,
#AIFusionBuddyPricing,
#AIFusionBuddyProsandCons,
#AIFusionBuddyTutorial,
#AIFusionBuddyUserExperience
#AIFusionBuddyforBeginners,
#AIFusionBuddyBenefits,
#AIFusionBuddyComparison,
#AIFusionBuddyInstallation,
#AIFusionBuddyRefundPolicy,
#AIFusionBuddyDemo,
#AIFusionBuddyMaintenanceFees,
#AIFusionBuddyNewbieFriendly,
#WhatIsAIFusionBuddy?,
#HowDoesAIFusionBuddyWorks
AI Genie Review: World’s First Open AI WordPress Website CreatorGoogle
AI Genie Review: World’s First Open AI WordPress Website Creator
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-genie-review
AI Genie Review: Key Features
✅Creates Limitless Real-Time Unique Content, auto-publishing Posts, Pages & Images directly from Chat GPT & Open AI on WordPress in any Niche
✅First & Only Google Bard Approved Software That Publishes 100% Original, SEO Friendly Content using Open AI
✅Publish Automated Posts and Pages using AI Genie directly on Your website
✅50 DFY Websites Included Without Adding Any Images, Content Or Doing Anything Yourself
✅Integrated Chat GPT Bot gives Instant Answers on Your Website to Visitors
✅Just Enter the title, and your Content for Pages and Posts will be ready on your website
✅Automatically insert visually appealing images into posts based on keywords and titles.
✅Choose the temperature of the content and control its randomness.
✅Control the length of the content to be generated.
✅Never Worry About Paying Huge Money Monthly To Top Content Creation Platforms
✅100% Easy-to-Use, Newbie-Friendly Technology
✅30-Days Money-Back Guarantee
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
#AIGenieApp #AIGenieBonus #AIGenieBonuses #AIGenieDemo #AIGenieDownload #AIGenieLegit #AIGenieLiveDemo #AIGenieOTO #AIGeniePreview #AIGenieReview #AIGenieReviewandBonus #AIGenieScamorLegit #AIGenieSoftware #AIGenieUpgrades #AIGenieUpsells #HowDoesAlGenie #HowtoBuyAIGenie #HowtoMakeMoneywithAIGenie #MakeMoneyOnline #MakeMoneywithAIGenie
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Waltzing with Branches [ACCU]
1. Waltzing with BranchesWaltzing with Branches
Chris OldwoodChris Oldwood
ACCU Conference 2016ACCU Conference 2016
@chrisoldwood | gort@cix.co.uk@chrisoldwood | gort@cix.co.uk
2. Cargo Cult SoftwareCargo Cult Software
EngineeringEngineering
““They go through the motions of looking likeThey go through the motions of looking like
effective organizations that are stylisticallyeffective organizations that are stylistically
similar. But without any real understandingsimilar. But without any real understanding
of why the practices work […]”of why the practices work […]”
---- Steve McConnellSteve McConnell
3. Another cult is born…Another cult is born…
https://twitter.com/jezhumble/status/400071665482088448
4. Read the small print!Read the small print!
https://twitter.com/jezhumble/status/400071665482088448
6. <<<<<<<<<<<<<<<<<<<<<<<<
Knox in box.Knox in box.
Fox in socks.Fox in socks.
Knox on foxKnox on fox
in socks in box.in socks in box.
========================
Socks on KnoxSocks on Knox
and Knox in box.and Knox in box.
Fox in socksFox in socks
on box on Knox.on box on Knox.
>>>>>>>>>>>>>>>>>>>>>>>>
8. ““The business of believing only what you haveThe business of believing only what you have
the right to believe is calledthe right to believe is called riskrisk
managementmanagement.”.”
---- Waltzing with BearsWaltzing with Bears
9. ““Risk management is the process of thinkingRisk management is the process of thinking
out corrective actions before a problemout corrective actions before a problem
occurs, while it’s still an abstraction.”occurs, while it’s still an abstraction.”
---- Waltzing with BearsWaltzing with Bears
10. Risk: Loss of ProductivityRisk: Loss of Productivity
https://commons.wikimedia.org/wiki/File:Mengniu-production-line.jpg
11. Risk: Loss of ConfidenceRisk: Loss of Confidence
http://melvillegroup.com/wp-content/uploads/2013/08/fear-man-biting-nails.jpg
12. Risk Management StrategiesRisk Management Strategies
Avoid itAvoid it
Contain itContain it
Mitigate itMitigate it
Evade itEvade it
36. BranchingBranching cancan be used tobe used to
managemanage somesome risks, but thererisks, but there
are more productive ways.are more productive ways.
Brief bio – gave a related talk a few years ago, but coming from a different angle now.
It’s an emotive subject – not helped by the tools giving us more power to avoid the real issues (it’s always a people problem).
http://www.stevemcconnell.com/ieeesoftware/eic10.htm
Coined the phrase in early ~2000 (term much older – most famously the Melanesian islanders just after World War II).
Teams aspire to be like the cool companies – adopt the right practice and it will come.
Branching is one practice that appears to be acquiring cargo cult status.
https://twitter.com/jezhumble/status/400071665482088448
It’s easy to see how it happens – who wouldn’t want this?
If a huge company like Google can make it work – we must be able to!
The last entry in the list is fundamental to making the rest work.
Also, Google have the funds and people to create the tooling they need to make it work.
The talk’s title comes from a famous book by DeMarco and Lister.
It’s name comes from a song by Dr Seuss - My Uncle Terwilliger Waltzes With Bears.
- Dr Seuss’ writing often seems like the result of a botched merge .
The book is about managing risk on software projects, but has wider appeal as risk management is more useful than that.
It’s less than 200 pages long.
Initial story about William Kingdon Clifford’s paper The Ethics of Belief.
Whilst philosophical in nature it actually learns towards the scientific method for justification.
Links back to the cargo cult mentality.
Risk management versus crisis management (i.e. risk has materialized).
Anyone who has worked in software development for a while should be able to come up with a list pretty quickly.
Breaking the build for everyone.
Checking in without even compiling and then going on holiday for two weeks!
Loss of productivity down the pipeline – testers, deployment, etc.
Leave broken or fix it and move on?
Does the change we made work without breaking something else?
Do we even trust the person making the changes?
Risk as a pejorative misses the opportunities.
Turn a risk into an opportunity to learn instead – experiments, Chaos Monkey, etc.
Branching is attractive as it’s cheap on time and resources (due to immutable data structures).
Only really 2 branches from a collaboration perspective – integration and private (sharing or working alone).
Should call it Merging Strategies.
Merge debt – analogous to Technical Debt (changes accrued but not integrated).
Pain is at the end, often when time pressures are most upon us.
General wisdom (if you’re going to merge regularly) – only merge from stable to volatile.
- The default branch when VCS doesn’t support branching.
Called different names - trunk/main/master.
Explain representation – time is left-to-right.
- A common “Enterprise” anti-pattern for big teams is one integration branch per project.
- Reaction to code freeze – branch to avoid holding up development of version N+1.
- Ideally trunk still needs to be stable prior to branching – no last minute high-risk changes that might be pulled.
- Need integration branch when starting from a label.
Very few, carefully reviewed changes expected - only essential changes.
Organisation or regulatory requirements may require them to be used for quarentine purposes.
Special case of a release branch (patch or hotfix) when supporting multiple product versions.
Potentially time-critical, e.g. security fix.
Label is snapshot in time whereas a branch is evolution.
- Undesirable, but often a reaction to an overly long testing phase.
- Small, focused commits make it easier to cherry pick as changes are isolated.
- Heavy refactoring makes this much harder as the likelihood for dependent changes increases.
- Changes can get lost on the merge back at the end.
- Record a merge at the end as nothing has changed code-wise but the loop should be closed.
- Polar opposite of release branch.
- Branch for a specific feature (task) – often volatile in nature, e.g. a spike.
- Or the developer may be volatile, e.g. new joiner.
- Not necessary a single-developer branch, can allow multiple people to work more freely.
- Easy to throw away with no residual effects (e.g. Spike).
- Very short-lived branch, effectively only one commit.
- Put current changes to one side and integrate again later when dust has settled.
Supported natively by some, called “stashing” in Git, branch from working copy is an alternative in SVN.
Was more useful when the working copy was large and disk space was scare.
- The release merge is easier due to small focused changes.
The feature branch merge can be harder because of the potential volume for change, e.g. refactoring.
Not just syntactic merge conflicts, but semantic conflicts which cause upheaval as they’re often more subtle.
- Back to the old days when branching wasn’t possible .
- Break task down into much, much smaller tasks.
- New code and refactorings don’t require toggling off, only changes (low risk, but not no risk).
- Need to schedule clean-up after toggled on permanently.
- Toggles can be compile-time (#ifdef) or runtime (.config entries).
- Pessimistic workflow that uses feature branches and (ideally) automation to manage the risk.
- Gatekeeper can be manual (code review) or automated (merge + build + tests).
Forks are another type of branch, may be very short-lived or never merged.
Look into iojs and node branch split and merge.
Fundamental change in mindset away from big releases and siloed development to incremental change.
Before knowing what agile development was this concept was what drove my change in behaviour.
Be careful of what you perceive as waste – it may enable a reduction in opportunity and technical risk.
Unlike some ad-hoc development it’s carefully orchestrated – requires discipline.
Deliver software in smaller chunks (Allan Kelly’s Diseconomies of scale).
Many of the processes we historically put in place are to minimise the problems from big changes, but are self-reinforcing, e.g. CAB.
Opportunity risk comes from delaying changes, e.g. the scheduler refactoring.
- Large amounts of automation are needed on any non-trivial codebase to help assure quality.
Commit should trigger the continuous integration server to watch your back.
- Optimistic workflow assumes commits are correct and should be ready to ship.
- The only breakage should be environmental or long-running tests that can be elided by developers.
- Build number should be auto-generated and baked into artefacts where possible.
- Wipe workspace if you can afford it, else clean thoroughly to give same effect – no uncommitted hacks should taint the build.
Having a CI server does not necessarily mean you are doing continuous integration.
CI is about close collaboration to minimise waste, not establishing a blame culture when the codebase deteriorates.
Implies smaller units of change.
- The testing pyramid (programmer versus customer). **Tweet about test types.**
Must be fast and easy to run (i.e. automated).
Point out amount of code that changes at Google (on Jez’s tweet).
Instead of trying to get it right first time, work with what we know and refactor as our understanding grows.
- Physical structure changes are hard with long lived branches, less so with VCS’s that do (implied) directory versioning.
Two heads really are better than one.
Helps eliminate waste caused by building the wrong thing.
And keeps quality up as it aids building the thing right.
- Close monitoring allows opportunity to be exploited sooner because there is still a tight feedback loop when in production.
- SCM Patterns book – it may be old but it’s got the principles.
- In summary: branches have their uses but managing risk by avoidance should not be top of the list.
- No books, just a blog and some articles – one on branching strategies in particular.