The Remote Pairing Cheat Sheet
The ongoing global COVID-19 pandemic has pushed the distributed model to the forefront, with remote work becoming the norm, even for teams that are usually co-located. This impacts everything, from an organization’s global footprint, to cultural aspects like prioritising communication, building autonomous teams, and valuing collaboration. In this article, I will focus on the best practices that we, at ThoughtWorks, have pioneered for remote pair programming.
Guidelines on JSON responses for RESTful services
Now days RESTful API is followed heavily on most of the projects. Since it doesn’t prescribe every details, many times I have seen developers start following different ways of implement for similar patterns in API, leading to inconsistent API. So during initial stage of the project it is very important to discuss and define guidelines for RESTful APIs. In this article I am focusing on JSON response guidelines..
Release based 3 branch model with trunk based development
On large teams it is very important that everyone understands and follow the same branching model/workflow. One of very popular branching workflow is [GitFlow](http://nvie.com/posts/a-successful-git-branching-model/), however with largely distributed team and novice team following GitFlow is difficult. So over a period of time I have been following simple 3 branch model for development which works fine for agile and continuous delivery software development method.
Distributed Agile - What should be the Sprint duration?
What should be the Sprint duration? this question comes up quite commonly on agile projects and opinions vary from as short as a week to as long as 6 weeks. Decision on an appropriate Sprint length depend on many factors. Few of the factors that I consider while deciding on the Sprint length are as follows, however, each factor adds different dimensions when the team is distributed across time zones.
Ownership model for distributed team
In distributed teams it is very important that each team operates in complete autonomy. And there is need for team to be independent and takes ownership. However, everyone has different views and understanding of ownership. Here is what worked for me in terms of distributed team and clear definition of ownership across teams.
Testing emails with Fake SMTP service
Testing is key activity of every software development projects. However testing certain features is not easy and need special support functions. One of such functionality is email testing. In this article I introduce few tools that I used in my projects for achieving email testing easily without any side effects.
Collaboration Techniques for Large Distributed Agile Projects
In past few years, it has become quite common for software development teams to be distributed across time-zones and comprise of multiple vendors with 50-100+ people. Post is about different things and techniques that worked for me in large distributed agile projects such as healthy product backlog with clear separation, choosing the right tool for team collaboration, effective agile practices, clear and honest communication...
Story Mapping, Visual Way of Building Product Backlog
Story mapping is an effective inception tool to create a product backlog in a visually structured way. It helps in building a shared understanding, identify gaps in the backlog, see interdependencies, perform better relative sizing. Further, it can also help in slicing and release planning activities.
How to begin with Agile and Continuous Delivery on Legacy Projects?
Post is to provide guideline on how to get started with Continuous Delivery on Legacy Projects. "Agile and Continuous Delivery works for new green field projects, but we have legacy project. We don't to where to start or we can't do agile".
Building a Two-Stack CMS for a global product catalog
We build many websites with rich content, often using popular Content Management Systems (CMS). A recent project involved a marketing website for a global manufacturer which demanded complex interactive content with high availability and traffic needs. <br/> Our response was to apply the editing-publishing separation pattern and build two distinct stacks of software for content creation and delivery. In this deck you can see an overview of this architecture and our response to the issues of integration between the stacks, providing a secure preview of the live site, and handling the evolution and scaling of the system.