In: Computer Science
A software development company has been experiencing significant issues regarding the maintenance of some of its existing systems. You are a senior Software Engineer responsible for the evolution of a new software product. You have to decide how your Software Engineers will be split between the development team and the maintenance team of the new product. Discuss and compare which factors would influence whether there should be separate teams for development and maintenance, one team covering both activities, or a small overlap between the teams.
please help me for this and please do more information
Software Engineers will be split between development team and maintenance team:
· If separate maintenance and development team is there, then one team will be well versed in the development and they know how to test and debug it. The other team will do activities such as deployment of the project, configuration, backup etc.
· Different versions of the same product may be available in the market. The maintenance team has to support all the versions of the product. If the project is huge, even maintenance team also can be split in to different teams, based on the versions that are convenient to them.
· Some cases development of product will be done by the outside (external) people and later projects will be handed over to the in-house team, who will do maintenance.
· More skilled and experienced team will do the development, instead of wasting time in training people in that organization to develop the software. In the later stage only knowledge transfer is requires for this.
· Things will run smoothly, if development team stops there work for any reason, it will not affect the work of the maintenance team.
· As there is no sharing of resources, predictable capacity and minimum disturbance to develop projects.
If one team is covering both development and maintanance or an overlapping of team :
· When transferring a developed project by a development team to maintenance team , there can be loss of information. If the one team is doing both the process it can be avoided.
· Proper training should be given by the maintenance team, then only they can work with it. So the development team should be capable of training the maintanance team . so mutual team work happens.
· Maintenance team members will also be of software engineers. But many of them prefer to go for development process rather than maintenance. Development of software is a team work of professionals who are of the same level. Whereas while doing maintenance they need to interact with users of different categories.
· A good developer of a software can do maintenance of the software also the best. Since they developed the project, they know the pros and cons of each line of code and when updation is needed in maintenance , that can do it easily.
· The team is doing multiple job, so the customer or the use need to interact with one team only. It will be user friendly. Awareness, clarity and distribution are the main factors of the established work.