Programming tools for users
February 6, 2011
I have heard that in the olden days, users wrote their own computer programs. Now users were probably scientists and engineers and may have been intimidated by assembly language or whatever was available, but the advantage of user written software is that one doesn’t have to explain what one needs to a second person, the programmer.
Jump forward a few decades. The meat and potatoes CRUD applications of business computing are pretty much all written what we want now are applications that explore direct physical sensors, processes useful to knowledge workers, analytical tools to explore massive data stores and probably others. Take one, knowledge worker processes. It’s hard to explain how we think…
What we need are new programming tools. One for use by non-programmers to express their requirements. That can then be manipulated by the designers to explore how best to express the requirements. That can then be enhanced by programmers to create the best implementation of that design. Tools that are useful for different practitioners at different stages of the process and that know how to hand off the nascent product to each other (in both directions, given the iterative nature of software development).
Current programming languages seem to concentrate on that last phase. That maybe fine for programmers, that’s what we like to do. But perhaps we need to step back and look at the big picture…
Notice that position of design between requirements and programming. In design we need to be able to explore several designs, not just one, and to compare how issues get resolved, or not, among the various designs. Even as requirements, designs, and iterated code evolve.