Programming by doing