Distributed Development

Sort By:

Functional at Scale

Applying functional programming principles to distributed computing projects

by Marius Eriksen | September 20, 2016

CACM This article appears in print in Communications of the ACM, Volume 59 Issue 12


The Verification of a Distributed System

A practitioner's guide to increasing confidence in system correctness

by Caitie McCaffrey | February 1, 2016

CACM This article appears in print in Communications of the ACM, Volume 59 Issue 2


Testing a Distributed System

Testing a distributed system can be trying even under the best of circumstances.

by Philip Maddox | July 1, 2015

CACM This article appears in print in Communications of the ACM, Volume 58 Issue 9


Corba: Gone but (Hopefully) Not Forgotten

There is no magic and the lessons of the past apply just as well today.

by Terry Coatta | July 14, 2008

CACM This article appears in print in Communications of the ACM, Volume 5 Issue 4


A Passage to India

Most American IT employees take a dim view of offshore outsourcing. It's considered unpatriotic and it drains valuable intellectual capital and jobs from the United States to destinations such as India or China. Online discussion forums on sites such as isyourjobgoingoffshore.com are headlined with titles such as "How will you cope?" and "Is your career in danger?" A cover story in BusinessWeek magazine a couple of years ago summed up the angst most people suffer when faced with offshoring: "Is your job next?"

by Mark Kobayashi-Hillary | February 16, 2005


Outsourcing: Devising a Game Plan

Your CIO just summoned you to duty by handing off the decision-making power about whether to outsource next years big development project to rewrite the internal billing system. That's quite a daunting task! How can you possibly begin to decide if outsourcing is the right option for your company? There are a few strategies that you can follow to help you avoid the pitfalls of outsourcing and make informed decisions. Outsourcing is not exclusively a technical issue, but it is a decision that architects or development managers are often best qualified to make because they are in the best position to know what technologies make sense to keep in-house.

by Adam Kolawa | December 6, 2004


Sink or Swim:
Know When It's Time to Bail

There are endless survival challenges for newly created businesses. The degree to which a business successfully meets these challenges depends largely on the nature of the organization and the culture that evolves within it. That's to say that while market size, technical quality, and product design are obviously crucial factors, company failures are typically rooted in some form of organizational dysfunction.

by Gordon Bell | January 29, 2004


Culture Surprises in Remote Software Development Teams

Technology has made it possible for organizations to construct teams of people who are not in the same location, adopting what one company calls "virtual collocation." Worldwide groups of software developers, financial analysts, automobile designers, consultants, pricing analysts, and researchers are examples of teams that work together from disparate locations, using a variety of collaboration technologies that allow communication across space and time.

by Judith S. Olson, Gary M. Olson | January 29, 2004


Building Collaboration into IDEs

Software development is rarely a solo coding effort. More often, it is a collaborative process, with teams of developers working together to design solutions and produce quality code. The members of these close-knit teams often look at one another's code, collectively make plans about how to proceed, and even fix each other's bugs when necessary. Teamwork does not stop there, however. An extended team may include project managers, testers, architects, designers, writers, and other specialists, as well as other programming teams.

by Li-Te Cheng, Cleidson R.B. de Souza, Susanne Hupfer, John Patterson, Steven Ross | January 29, 2004


The Sun Never Sits on Distributed Development

More and more software development is being distributed across greater and greater distances. The motives are varied, but one of the most predominant is the effort to keep costs down. As talent is where you find it, why not use it where you find it, rather than spending the money to relocate it to some ostensibly more "central" location? The increasing ubiquity of the Internet is making far-flung talent ever-more accessible.

by Ken Coar | January 29, 2004


Distributed Development:
Lessons Learned

Delivery of a technology-based project is challenging, even under well-contained, familiar circumstances. And a tight-knit team can be a major factor in success. It is no mystery, therefore, why most small, new technology teams opt to work in a garage (at times literally). Keeping the focus of everyone's energy on the development task at hand means a minimum of non-engineering overhead.

by Michael Turnlund | January 29, 2004