Even if programming is made easier, only a proportion of people would actually be interested or capable of doing this. But, there's still an advantage to collections, people in the same team or department as an end user programmer, then all in the team have much closer access to someone who understands their, and the team's tasks, requirements, and projects. This closes the gap between those producing software systems, and those who require the software. This also makes it easier to iterate through solutions and solve problems more quickly and collaboratively.
Software tools to improve and combine UML and other modeling, spreadsheet, Web 2 / Semantic Web, and software solutions are required to allow this kind of end user participatory development and a sustained collaborative organization push towards achieving this. To achieve this, end users and teams need to be able to visualize their solutions both literally as diagrams, and metaphorically via problem solving collaboration. This would reflect the intentions that were expressed decades ago in the form of PC based computing and spreadsheets, but add better information and modeling organization, and collaboration capabilities.
To make the above practical, sustained research is needed in these areas. Such research would have many practical spin-offs. Professor Richard Vidgen (2009) describes research into "how technology is developed and used within organizations." So a way can be provided of applying this research and enabling more end user participation. This research is to test an approach of using digital technology, to make software and modeling development easier for computer literate end users. This would then enable them to solve problems to help their, and their teams' work to be more productive. The current problem is that the communication and translation steps required between users, and software developers, and help desk are too many, and too varied, these results in cost, uncertainty, delays, confusion, and confrontation. The solution is for software developers to develop more customisable software that can be customized by end-users.
An example of the need to apply such research is user's development of spreadsheets, this indicates user's willingness to use and develop software to meet their needs, but productivity in spreadsheet development can be poor, as they are difficult to track, and share. More advanced software tools are often not available to users, or take too long to learn. Semantic Web technologies can provide a solution to this by provision of free and customizable, shareable, and fully visualized applications for use in particular sections. Development of such applications, and their use in industry would be proof of this.
The essence of the problem is that organizations and individuals have many problems resulting from the lack of facilities to allow users to program. This causes many issues, which need to be urgently tackled by organizations in the short term. This creates an ironic dilemma, that the problems caused by lack of end user programming facilities cause there to be a need to tackle these problems via quick fixes because they are so urgent. This makes it difficult to secure funding and time for longer term end user programming research.
As an example – many people use Excel for financial modeling, and engineering, business, and science models. As these models become large, the short term solution is to use Excel Visual Basic to aid navigation through the model. However, though this helps with the immediate problem, in the longer term it can be difficult to reuse the model, as the Excel spreadsheet creator has to go through his or her code and remember what they have done, this problem is worse if a different user is trying to reuse the spreadsheet.
A longer term solution would be to provide a visual programming environment where the structure of the code is visualized, to make it easier to track the formulae, and so navigation is a central part of the program design, this also minimizes the need for code.
The problem with this is that when organizations have urgent needs to produce models for a particular deadline, all their effort goes into this. Once a deadline is met or missed, there will be a new deadline for something else. So all the effort goes into meeting these deadlines, and there are little or no resources for providing a better solution that makes it easier in the long run to meet the deadlines.
Experience of dealing with projects that create new software systems is that they are very ambitious, but not very modular or customisable. Under management pressure for meeting of timescales, they are often released too early with insufficient consultation with users. Then software developer's time is reallocated to a help desk, in order to deal with the problems caused by the release of software too early, too unchangeable and with too little user involvement.
A solution is to produce highly customizable software, so that the software team do not have to anticipate every problem the users will want to solve. Then many users with more advanced needs and computing capabilities could customize the software for their needs.
The User Driven Programming approach advocated in this research has the advantages that it is using a modeling approach for creating modeling solutions and involves creating systems to create systems. This makes it possible to solve the problem by breaking it down into stages and allowing software developers to concentrate on the most complex software problems and domain experts to be able to concentrate on their domain problem. The standardisation possible in this approach can allow software developers to create modeling systems for generic purposes that can be customized and developed by domain experts to model their domain. This methodology can be facilitated by: –
* Modeling Tools – Building an end-user interface and extending the translation abilities of UML (Unified Modeling Language) and / or other modeling tools (Johnson, 2004).
* Spreadsheets – Improving the structuring and collaboration capabilities of spreadsheets, and enabling customization of spreadsheets templates for particular domains and users.
* Ontology Tools – Extending the modeling abilities and equation calculations in ontology tools and providing an end-user interface.
Semantic Web / Web 2.0 – Extending the capabilities of Semantic Web and Web 2.0 style web-based development tools to allow collaborative modeling.
* These possible solutions are not mutually exclusive and their combination could be the best way of providing usable collaborative modeling tools for computer literate end-users and domain experts. The link between these alternative ways of advancing current research is translation and User Driven Modeling / Programming.
Professor Roger James (2009) University of Westminster, explores current problems and possible solutions for IT customer service. This highlights how better concentration on end-user requirements can save resources in the use of the technology.
James, J., 2009. http://www.rogerjames.net/
Johnson, P., 2004. Interactions, Collaborations and Breakdowns. In: ACM International Conference Proceeding Series; Proceedings of the 3rd annual conference on Task models and diagrams Vol 86 Prague, Czech Republic.
Vidgen, R., 2009. www.bath.ac.uk/management/faculty/richard_vidgen.html [http://www.bath.ac.uk/management/faculty/richard_vidgen.html]