Martin Fowler

Branching Patterns: Final Thoughts and Recommendations

Martin Fowler

Final post in “Branching Patterns” As I said at the beginning of this long piece: branching is easy, merging is harder. Branching is a powerful technique, but it makes me think of goto statements, global variables, and locks for concurrency.

System 238

Branching Patterns: Hotfix Branch

Martin Fowler

Hotfix Branch: A branch to capture work to fix an urgent production defect. more…. skip-home-page

239
239

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Branching Pattern: Mainline Integration

Martin Fowler

Developers integrate their work by pulling from mainline, merging, and - if healthy - pushing back into mainline. more…. skip-home-page

Branching Pattern: Mainline

Martin Fowler

The second branching pattern in my article is Mainline: a single, shared, branch that acts as the current state of the product. more…. skip-home-page

248
248

From Build to Buy: The Path to Better Analytics for Your Application

Speaker: Ardeshir Ghanbarzadeh, Senior Product Marketing Manager, Logi Analytics

Making the transition from building your analytics in-house to investing in a third-party embedded solution can be complicated.Watch this webinar with Ardeshir Ghanbarzadeh, Senior Product Marketing Manager at Logi Analytics, for tips on making the transition as smooth as possible, and getting on the right path to better analytics for your app!

Patterns for Managing Source Code Branches

Martin Fowler

In my conversations with software developers, a regular topic of controversy is how manage source code branching. Tools like git make it easy to create branches, but managing them to improve coordination and minimize the costs of integration unearths plenty of difficulties.

A Guide to Threat Modelling for Developers

Martin Fowler

Threat modeling is a well-respected practice in designing secure systems. But it's often done with complicated, exhaustive upfront analysis.

Branching Patterns: Comparing Feature Branching and Continuous Integration

Martin Fowler

Feature Branching appears to be the most common branching strategy in the industry at the moment, but there is a vocal group of practitioners who argue that Continuous Integration is usually a superior approach. more…. skip-home-page

Branching Patterns: Reviewed Commits

Martin Fowler

Reviewed Commits: every commit to mainline is peer-reviewed before the commit is accepted. more…. skip-home-page

224
224

Branching Patterns: Integration Frequency

Martin Fowler

Integration Frequency has a huge impact upon a team's workflow. Higher frequency integration reduces the problems of complex merges, makes refactoring easier, and generally improves the communication and cohesiveness of a team. more…. skip-home-page

226
226

Data Analytics in the Cloud for Developers and Founders

Speaker: Javier Ramírez, Senior AWS Developer Advocate, AWS

You have lots of data, and you are probably thinking of using the cloud to analyze it. But how will you move data into the cloud? In which format? How will you validate and prepare the data? What about streaming data? Can data scientists discover and use the data? Can business people create reports via drag and drop? Can operations monitor what’s going on? Will the data lake scale when you have twice as much data? Is your data secure? In this session, we address common pitfalls of building data lakes and show how AWS can help you manage data and analytics more efficiently.

Branching Patterns: Looking at some branching policies

Martin Fowler

In this article, I've talked about branching in terms of patterns.

How to do effective video calls

Martin Fowler

During 2011-2012 there was a small but significant revolution in how we worked at ThoughtWorks. When we needed to communicate while separated we used to do telephone meetings, but within a year the telephone disappeared and we started using video calls instead.

Video 239

Refactoring: This class is too large

Martin Fowler

Most programmers have personal projects that do important things for them personally, but never have enough time and energy to keep them in good condition. Clare is no exception, and needed to spend time getting such an unruly codebase back into line.

Energy 221

Branching Patterns: Collaboration Branch and Team Integration Branch

Martin Fowler

With this update, I finish off my todo list of branching patterns with Collaboration Branch (A branch created for a developer to share work with other members of the team without formal integration.)

How to Choose the Best Embedded Analytics Solution to Modernize Your Application

If you are looking to modernize your application to improve competitiveness, then one of the quickest wins you can have is to embed sophisticated analytics that will wow your existing and prospective customers.

Branching Pattern: Feature Branching

Martin Fowler

Put all work for a feature on its own branch, integrate into mainline when the feature is complete. more…. skip-home-page

209
209

Branching Pattern: Healthy Branch

Martin Fowler

On each commit, perform automated checks, usually building and running tests, to ensure there are no defects on the branch. more…. skip-home-page

Branching Patterns: Future Branch

Martin Fowler

Future Branch: A single branch used for changes that are too invasive to be handled with other approaches. more…. skip-home-page

192
192

Bliki: KeystoneInterface

Martin Fowler

Software development teams find life can be much easier if they integrate their work as often as they can. They also find it valuable to release frequently into production. But teams don't want to expose half-developed features to their users.

Why Smoking Costs Employers More Than They Realize

Your employees are smoking, and at a cost of $7,000 per year for each employee who smokes, that adds up - fast! This free report will show you how an effective cessation program pays for itself.

Branching Patterns: Environment Branch

Martin Fowler

Environment Branch: Configure a product to run in a new environment by applying a source code commit. This pattern is a bad smell, only useful as a jerry-rigged mechanism for an application lacking that design, but then should be a high priority for removal with a sustainable alternative. more….

Branching Patterns: Maturity Branch

Martin Fowler

A branch whose head marks the latest version of a level of maturity of the code base. Maturity Branches are usually named after the appropriate stage in the development flow. Hence terms like "production branch", "staging branch", and "QA branch". more…. skip-home-page

Branching Patterns: Release Train

Martin Fowler

Release Train: Release on a set interval of time, like trains departing on a regular schedule. Developers choose which train to catch when they have completed their feature. more…. skip-home-page

Threat Modeling: Grow your practise

Martin Fowler

Final installment in “A Guide to Threat Modelling for Developers” Feedback and continuous improvement is central to managing risk. Neither the systems we build nor the threats they face are simple, as I stressed at the start of this guide.

Nine Developer Enablement Practices to Achieve DevOps at Enterprise Scale

In this eBook, Christian Oestreich, a senior software engineering leader with experience at multiple Fortune 500 companies, shares how a metrics-driven mindset can dramatically improve software quality and enable DevOps at enterprise scale.

Threat Modeling: Brainstorm threats

Martin Fowler

New installment in “A Guide to Threat Modelling for Developers” Jim looks at how to come up with threats to a system, introducing STRIDE, a simple framework to help teams think about threats. more…. skip-home-page

System 170

Branching Patterns: Experimental Branch

Martin Fowler

Experimental Branch: Collects together experimental work on a code base that's not expected to be merged directly into the product. more…. skip-home-page

174
174

On Pair Programming

Martin Fowler

At ThoughtWorks, we regularly use Pair Programming. We find it's a rarely used practice, in part due to lack of knowledge in how to do it well and because its benefits are not immediately obvious.

Threat Modeling: Prioritise and fix

Martin Fowler

New installment in “A Guide to Threat Modelling for Developers” Software teams are incentivised to deliver, and rarely have unlimited bandwidth to go away and address every threat identified. And some of the threats may pose an insignificant risk.

Machine Learning for Builders: Tools, Trends, and Truths

Speaker: Rob De Feo, Startup Advocate at Amazon Web Services

Machine learning techniques are being applied to every industry, leveraging an increasing amount of data and ever faster compute. But that doesn’t mean machine learning techniques are a perfect fit for every situation (yet). So how can a startup harness machine learning for its own set of unique problems and solutions, and does it require a warehouse filled with PhDs to pull it off?

Technical Components of CD4ML

Martin Fowler

Our authors now move on to the technical components that make Continuous Delivery possible for a Machine Learning system. The first two are "Discoverable and Accessible Data" followed by "Reproducible Model Training". more…. skip-home-page

Continuous Delivery for Machine Learning

Martin Fowler

Bliki: OutcomeOverOutput

Martin Fowler

Imagine a team writing software for a shopping website. If we look at the team's output, we might consider how many new features they produced in the last quarter, or a cross-functional measure such as a reduction in page load time.

Games 205

Threat Modeling: Explain and Explore

Martin Fowler

The first question for threat modeling is "what are you building?" We explore this with low-fi diagrams, understanding the data flows, and identifying the assets. more…. skip-home-page

Data 160

5 Signs It's Time to Replace Your Homegrown Analytics

If you built your analytics in house, chances are your basic features are no longer enough for your end users. Is it time to move on to a more robust analytics solution with more advanced capabilities? Follow this free guide for tips on making the build to buy transition.

Branching Patterns: Integration Friction, Modularity, and some personal thoughts

Martin Fowler

I now finish off the integration patterns section of the article by describing the problem of integration friction, why modularity plays an important role when thinking of branching, and what kind of integration patterns I prefer to work with. more…. skip-home-page

168
168