Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Have you have any experience in which a non-IT person works with a programmer during the coding process?

It's like pair programming, but one person is a non-IT person that knows a lot about the business, maybe a process engineer with math background who knows how things are calculated and can understand non-idiomatic, procedural code.

I've found that some procedural, domain-specific languages like PL/SQL are quite understandable by non-IT engineers. These person end up being co-authors of the code and guarantee the correctness of formulas, factors etc.

I've found this kind of pair programming quite productive, this kind of engineer user feel they are also "owners" and "authors" of the code and help minimize misunderstanding in the communication process. They even help design the test cases.

Is this practice common ? Does it have a name ? Have you had similar experiences ?

share|improve this question

1 Answer

up vote 6 down vote accepted

Though you are describing this as a shared coding session (I can't call it pair programming, as only one person is "driving" - in pair programming, both parties take the keyboard and write code), I would call it gathering acceptance criteria.

That is, you are validating business rules (correct calculations and processes) with the business user (though one with a very technical role, an engineer).

In this case, it translates immediately to written code (SQL), but for many other activities is will not, though there are automated acceptance test tooling for different languages and platforms (I am specifically thinking about the gherkin language and related tooling).

This practice is not as common as it should be, but is gaining more and more followers and those who follow it (getting acceptance criteria in a form that can be executed) find it invaluable as both a tool to communicate with the business and to drive development.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.