Quantcast
Channel: Programming Practices
Browsing latest articles
Browse All 10 View Live

A View of Development Roles

Specialization in teams allows team members to do what they are good at and what they like to do. There are at least three types of specialization in software development teams: functional...

View Article



Iteration Pipelining

Iterative and incremental development (IID) is the established practice for dividing software projects in time. IID is often interpreted to mean a succession of complete development cycles, meaning...

View Article

Code Stewardship

The benefits of collective code ownership are well-known. Everyone in the team needs to be able to contribute to every part of the code base. But collective code ownership has an Achilles heel. The...

View Article

Task Dependencies in Plans

The GANTT chart, as embodied in Microsoft Project, has become the de facto method of representing software development plans in many organizations. This is unfortunate. For, the precise temporal...

View Article

Some Consequences of Pull

There's been a lot of interest recently in the application of lean principles to software development. See for example the 2003 book Lean Software Development: An Agile Toolkit for Software Development...

View Article


Monads through Pictures

Here is an excerpt from the introduction to my recent write-up on monads. Monads in functional programming provide a framework for aspect-aware computations to be composed to build higher-level...

View Article

Iterative Time-Boxing

Iterative time-boxing, or ITB for short, is the strategy of strictly time-boxing successive stages of work on a software requirement. In this note, I'll contrast ITB as a planning technique with...

View Article

The Google App Engine Data Model

Decades ago in my college database class we learned about relational databases, network databases, and hierarchical databases. Back then, relational was cool. And hierarchical was definitely passé....

View Article


Vector Clocks for Representing Temporal Relations between Distributed Events

In this blog I'll review the use of vector clocks for comparing the times of occurrence of dispersed events in a distributed system. Vector clocks are well-known in the literature, and there are plenty...

View Article


Update Succession in Replicated Key-Value Stores

In an earlier blog we looked at the use of vector clocks for keeping track of temporal relations between events in an asynchronous event system. To recap: In an asynchronous event system each event is...

View Article
Browsing latest articles
Browse All 10 View Live




Latest Images