Investigating the use of Software Engineering in Computer Science Research
Quick Links
About the project
Quick Links
Computer Science and Software Engineering
Method and results of investigation
Conclusions drawn
Recomendations

Recommendations

This research concludes that Computer Science research in a university setting has multiple conflicting aims. The key conflict is between the desire to complete research fast (be it for immediate publication or a student's PhD) and the desire to extend and further mature an area of research. While one encourages a "quick and dirty" approach, the other require a significant amount of planning and engineering.

If the effort is put in to create more mature research, the total publications from that research can be increased. There is however an initial cost in programmer time, and most researchers are unable to pay the price. An over use of Software Engineering as applied in industry adds an additional (large) burden.

This paper has discussed how some, relatively fast, software engineering should take place. Of particular importance is the use of configuration management, tools like RCS can literally prevent months of lost work. Configuration management should be used not only for group projects, but for single person projects as well.

In order to assist and not detract from the research effort, the bulk of software engineering should take place after the research is over. Once a project has come to completion, be that because a student's PhD is complete, or because funding has for the moment run out, then the project should be re-engineered and stabilised enabling future researcher to build on it further.

It is in department's interests to develop and support high quality long term projects. They attract students and increase the reputation of the department and university. Not only this, but this a stable framework, future research is greatly sped up.

We have introduced the RAISER/RESET concept. The approach to research can be best supported by an in house academic software development laboratory (ASDL). This group need only have a few permanent staff. Research assistant's currently doing stabalising / development work on isolated cases could be seconded to the ASDL where proper training and emphasis on the valuable (to researchers) rather than the wasteful aspects of Software Engineering can be provided. In addition, if those staff with interest were encouraged to take an additional 6 month sabbatical in the ASDL, they would not only improve and update their programming skills, but they would gain detailed knowledge of other research conducted in the department. This allows for new synthesis. The researchers would also add their expert knowledge not only in their field, but also of the needs of their peers. This would greatly increase the effectiveness of the ASDL.

Although these recommendations will cost money in the short term, it is possible they will pay for themselves in time savings over the longer term. In addition to this, they would increase the job satisfaction of researchers, decrease the time required to obtain publishable results, allow for an increase in total departmental publication rates, provide organised skill updating for staff, produce useful products other universities may wish to adopt (increasing prestige) and finally, they would allow more higher degree by research students to complete significant research in a timely fashion.

Research and development should be distinguished.
Research requires development. Development requires research.
The two must take place in turn, in a regularly repeating cycle.
The university to be a success, requires both.