tagged by: collaboration

On Pair Programming

Many people who work in software development today have heard of the practice of pair programming, yet it still only has patchy adoption in the industry. One reason for its varying acceptance is that its benefits are not immediately obvious, it pays off more in the medium- and long-term. And it's also not as simple as "two people working at a single computer", so many dismiss it quickly when it feels uncomfortable. However, in our experience, pair programming is vital for collaborative teamwork and high quality software.

by Birgitta Böckeler and Nina Siessegger

15 Jan 2020

Read more…

article

extreme programming collaboration

Remote versus Co-located Work

There isn't a simple dichotomy of remote versus co-located work, instead there are several patterns of distribution for teams each of which has different trade-offs and effective techniques suitable for them. While it's impossible to determine conclusive evidence, my sense is that most groups are more productive working in a co-located manner. But you can build a more productive team by using a distributed working model, because it gives you access to a wider talent pool.

Patterns for Managing Source Code Branches

Modern source-control systems provide powerful tools that make it easy to create branches in source code. But eventually these branches have to be merged back together, and many teams spend an inordinate amount of time coping with their tangled thicket of branches. There are several patterns that can allow teams to use branching effectively, concentrating around integrating the work of multiple developers and organizing the path to production releases. The over-arching theme is that branches should be integrated frequently and efforts focused on a healthy mainline that can be deployed into production with minimal effort.

by Martin Fowler

28 May 2020

Read more…

article

continuous delivery collaboration version control

Ship / Show / Ask

Ship/Show/Ask is a branching strategy that combines the features of Pull Requests with the ability to keep shipping changes. Changes are categorized as either Ship (merge into mainline without review), Show (open a pull request for review, but merge into mainline immediately), or Ask (open a pull request for discussion before merging).

by Rouan Wilsenach

8 Sep 2021

Read more…

article

collaboration version control

The strong and weak forces of architecture

Good technical design decisions are very dependent on context. Teams that regularly work together on common goals are able to communicate regularly and negotiate changes quickly. These teams exhibit a strong force of alignment, and can make technology and design decisions that harness that strong force. As we zoom out in a larger organisation an increasingly weak force exists between teams and divisions that work independently and have less frequent collaboration. Recognising the differences in these strong and weak forces allows us to make better decisions and give better guidance for each level, allowing for more empowered teams that can move faster.

Maximizing Developer Effectiveness

Technology is constantly becoming smarter and more powerful. I often observe that as these technologies are introduced an organization’s productivity instead of improving has reduced. This is because the technology has increased complexities and cognitive overhead to the developer, reducing their effectiveness. In this article, the first of a series, I introduce a framework for maximizing developer effectiveness. Through research I have identified key developer feedback loops, including micro-feedback loops that developers do 200 times a day. These should be optimized so they are quick, simple and impactful for developers. I will examine how some organizations have used these feedback loops to improve overall effectiveness and productivity.

by Tim Cochran

26 Jan 2021

Read more…

article

productivity collaboration

Lean Inception

An inception is an activity done at the start of a project to gather together the people involved and set a common direction and working style for the on-going work. The lean inception is a focused form of inception, which can be done in a single week. During this time we understand the key features and customers for the product, and build a canvas to formulate the characteristics of a Minimum Viable Product.

by Paulo Caroli

22 Feb 2022

Read more…

article

project planning collaboration lean

How to do effective video calls

Get good audio, use gallery view, mute if not talking, and welcome the cat.

by Martin Fowler

19 Mar 2020

Read more…

article

collaboration covid-19

The Elephant in the Architecture

We, and our colleagues, are often called on to perform architectural assessments for our clients. When we do this, the architects involved with these systems will talk about the performance of these systems, how resilient they are to faults, and how they are designed to evolve to easily support new capabilities. The elephant that rarely comes up, however, is how different systems contribute to business value, and how this value interacts with these other architectural attributes.

by Ian Cartwright and Martin Fowler

2 Mar 2020

Read more…

article

enterprise architecture technical leadership collaboration

Academic Rotation

A while ago I was chatting with a post-doc on his way to an academic career. He was asking me about research topics wanting my input as he felt I could inform him on what would be research of practical use. I wasn't very helpful, but I did mention that the best way to do this would be to spend some time in industry to get a feel of how software development works in the wild and what problems could do with some research effort. His answer to this thought was very troubling.

by Martin Fowler

17 Dec 2008

Read more…

bliki

collaboration internet culture

Alignment Map

Alignment maps are organizational information radiators that help visualize the alignment of ongoing work with business outcomes. The work may be regular functionality addition or technical work such as re-architecting or repaying technical debt or improving the build and deployment pipeline. Team members use alignment maps to understand what business outcomes their day-to-day work is meant to improve. Business and IT sponsors use them to understand how ongoing work relates to the business outcomes they care about.

by Sriram Narayan

18 Aug 2015

Read more…

bliki

team organization project planning collaboration

Building Architect

When people use the term 'software architect' they are using a metaphor from building construction to help people understand the architect's role.Ironically in doing this they misunderstand the actual role of a building architect.

by Martin Fowler

14 Aug 2003

Read more…

bliki

process theory collaboration

Communal Dashboard

With the growing interest in data analytics and visualizations, we're seeing more effort put into interesting visualizations that allow people to draw insight from data floating around in an organization. Most of these dashboards are aimed at individual usage, but there is a growing tendency to use them for a more communal purpose.

by Martin Fowler

22 Aug 2012

Read more…

bliki

team environment collaboration data analytics

Conversational Stories

Here's a common misconception about agile methods. It centers on the way user stories are created and flow through the development activity. The misconception is that the product owner (or business analysts) creates user stories and then put them in front of developers to implement. The notion is that this is a flow from product owner to development, with the product owner responsible for determining what needs to be done and the developers how to do it.

Dev Ops Culture

Agile software development has broken down some of the silos between requirements analysis, testing and development. Deployment, operations and maintenance are other activities which have suffered a similar separation from the rest of the software development process. The DevOps movement is aimed at removing these silos and encouraging collaboration between development and operations.

Dot Voting

From time to time during a meeting or workshop, it's good to get votes on a number things in order to rank or choose a subset. A quick and nice way to do this is dot voting.

by Martin Fowler

Read more…

bliki

collaboration

Open Space

Open Space is an approach to help you put together self-organizing conferences. I was first introduced to it by Norm Kerth in 1997 and have since seen it used, and used it myself, many times. It seems to work well in small scales, groups of a dozen or two people, and at larger scales of one or two hundred. I've seen it for periods of one to three days. I'll describe it with variations I have seen: Crested Butte is a small annual workshop of around 20 people, Agile Universe 2002 had about 100 or so at the conference with Open Space in one track (they've continued to do this since, but I've not been able to get there), foocamp did this with a couple of hundred people. The technique was developed by Harrison Owen and is well described in his book.

by Martin Fowler

24 Aug 2005

Read more…

bliki

conferences collaboration

Pair Programming

Pair Programming is a software development practice that has the developers work in groups of two. All serious code is written by two programmers, typically sitting side-by-side with a single monitor, often with a single keyboard. As they add code, they discuss each step together.

by Martin Fowler

30 Mar 2020

Read more…

bliki

extreme programming collaboration

Pair Programming Misconceptions

A bunch of common misconceptions about Pair Programming.

Pleasing The Customer

All agile methods stress the importance of direct interaction between the developers of a system and customers who are its eventual beneficiaries. The agile manifesto said "Business people and developers must work together daily throughout the project", which is there to stress the high frequency of interaction. Extreme Programming stresses this through its practice of OnsiteCustomer.

by Martin Fowler

15 Aug 2003

Read more…

bliki

agile collaboration

Refinement Code Review

When people think of code reviews, they usually think in terms of an explicit step in a development team's workflow. These days the Pre-Integration Review, carried out on a Pull Request is the most common mechanism for a code review, to the point that many people witlessly consider that not using pull requests removes all opportunities for doing code review. Such a narrow view of code reviews doesn't just ignore a host of explicit mechanisms for review, it more importantly neglects probably the most powerful code review technique - that of perpetual refinement done by the entire team.

Sticky Timeline

A project timeline is a valuable thing to produce during a project retrospective. A timeline should show the various events that occurred during the project, and how they affected the project.

by Martin Fowler

2 Dec 2003

Read more…

bliki

collaboration

Team Room

A common thing you find in agile projects is that the development team sits in a single open team room. It was advocated early on in Extreme Programming and called out as one of primary practices in the second edition. Agilists favor a open team room as it promotes lots of informal and deep communication between people on the team.

by Martin Fowler

14 Jun 2010

Read more…

bliki

agile agile adoption team environment collaboration

Thrown Estimate

If you're using XP style planning, you need to get rapid consensus estimates from developers. Throwing the estimates lets you quickly tell when developers have same similar views on an estimate (so you can note it and move on) or if there is disagreement (when you need to talk about the UserStory in more detail.

by Martin Fowler

22 Jun 2004

Read more…

bliki

project planning collaboration estimation


All tags

API design · agile · agile adoption · analysis patterns · application architecture · application integration · bad things · board games · build scripting · certification · collaboration · computer history · conference panels · conferences · continuous delivery · covid-19 · data analytics · database · design · dictionary · distributed computing magazine · diversions · diversity · documentation · domain driven design · domain specific language · domestic · encapsulation · enterprise architecture · estimation · event architectures · evolutionary design · experience reports · expositional architectures · extreme programming · front-end · gadgets · ieeeSoftware · infodecks · internet culture · interviews · language feature · language workbench · lean · legacy rehab · legal · metrics · microservices · mobile · noSQL · object collaboration design · parser generators · photography · podcast · popular · presentation technique · privacy · process theory · productivity · programming platforms · programming style · project planning · recruiting · refactoring · refactoring boundary · requirements analysis · ruby · security · talk videos · team environment · team organization · technical debt · technical leadership · test categories · testing · thoughtworks · tools · travel · uml · version control · web development · web services · website · writing

2022 · 2021 · 2020 · 2019 · 2018 · 2017 · 2016 · 2015 · 2014 · 2013 · 2012 · 2011 · 2010 · 2009 · 2008 · 2007 · 2006 · 2005 · 2004 · 2003 · 2002 · 2001 · 2000 · 1999 · 1998 · 1997 · 1996

All Content