Participatory programming and the scope of mutual responsibility: balancing scientific, design and software commitment