The researchers should have some hands-on experience of all the stages of SDLC .
It is recommended for them to have regular interactions with the different teams and people involved in the SDLC such as business analyst, project manager, test manager, developers, testers etc.
I think the researchers should also practice development themselves. some researchers just get satisfied with just reading about developers' requirements. I think that's not enough in practice.
Researchers should get to know the whole development process and shouldn't only be interested in best practice examples, comparative analysis of different tools and declaring which one is the best.
Every researcher who wishes to contribute to practice through theory should be involved in development processes from the problem analysis, problem definition, first draft brainstorming sessions, design, development itself, testing, implementation etc.
But is it practical for a researcher to be involved in all phases of a real software development project? This would have to be done at least once a decade since the field changes so rapidly. Software development projects vary widely as we'll.
I agree with you Dr.Kenneth. Researchers should be a part of the software. But if you have a tool to solve an existing problem, you can apply it to solve your problem more quickly then writing code.
As you know, the software process is always longer than expected. And, the used tools are already used and proven accuracy.
As a result, what is your intention is more important, as to write a code or to solve your problem .
In porinciple all professionals should have basic programming skills, it is just a matter of literacy, but software development goes beyond programming.
Maybe you need to specify researchers on what? I don't think the rquirements are the same for social scientists than for engineering researchers, obviously. In any case, it is not so much the individual skills of the researchers that have an impact, but the full skill set and articulation of a research group. For instance, in working with medical researchers (doctors) I am sure they have learned a lot about what goes on behind the scenes in developing a tool through and for research, but the key has been to keep an ongoing discussion in order to achieve participatory design of the algorithms and interfaces, without needing them to be "experts" in software development.
I will add, however, that this process is smoother and perhas more creative and productive when the medical colleagues are younger and have some interest (hobby) regarding software or even web page development. But here the value is more in the understanding of what ICT can do than a mature experience on software development itself which we actually hire a professional software engineer to do for us (even if we could do it oursevles).
All researchers who are interested in programming have an upper hand of controlling the whole processes, which cannot be obtained by using inbuilt functional tools and readymade software’s. As each and every problem in research are very specific and not general. I pen down all codes for my processes, and hence suggest first a person must have good understanding of the problem and breaking down the problem to simpler manner. Next, he must have knowledge of writing algorithms, after that it can be transformed to any language/platform u want. A good programming skill in ‘C’ can help u to adopt to any platform.
Researchers should be familiar with the concepts of application lifecycle management. Focus on the more abstract concepts, e.g., source code management as opposed to actual programming.
The researchers should have some hands-on experience of all the stages of SDLC .
It is recommended for them to have regular interactions with the different teams and people involved in the SDLC such as business analyst, project manager, test manager, developers, testers etc.
I am not a developer any more, but here is my opinion on where researcher can help to go better and faster development :)
As there are many different ways to get software development process done, it would be a research work intake to find the pattern that will fit the development needs. As an example, the “product“ software development companies require more agile and iterative approach while large corporate environments can adopt very little to agile and lean software development practices. The other research intake area would be the understanding of the right so called “best practices” helping to develop good quality code.
The “best practices” are very context driven and it makes sense within the very particular domain. We cannot have a generic way of getting things done and call it the best practices, however we need to identify what would be the best pattern within any particular domain and that would be research
Developers should be aware of the Software Engineering Institute (SEI) and the Capability Maturity Model Integratio (CMMI) software process improvement maturity levels. Also, the software engineering body of knowledge (SWEBOK) is something they should be aware of.
Researchers should know their research objective. Sometimes researchers doesn't know how technology works and what the outcome technology could provide.
I believe researchers need to involve with a Technology Specialist to work with instead to learn how technology works.