質問

I'm working on a special project where I need to create a new application with a similar but restricted functionality of an original application (basically a type of free application with limited functionality). Now, the problem comes with the maintenance of the code.

I'm using Visual Studio 2013 for the development and have Microsoft TFS as the source code repository. I do not want to duplicate my code so I thought of using the same files of the original product and introduced a MACRO to restrict the functionalities that I do not want to deliver. This way, I will be just changing some of the project files and will not be creating any duplicate copies. But the management is reluctant for any change in the original product's code even if it's just a MACRO.

So, my question is do we have any other way through which I can maintain the source code without any duplicate copies and without even changing the original product's code.

Thanks in advance.

役に立ちましたか?

解決

Someone at your company has to decide about the intended life cycle of the application:

  • will the "new application" be really a new application of its own, with its own life cycle, own maintenance, different feature development, separated bugfixing from the original one?

  • or is it only a new version of the old application, with a new feature "free restricted mode", which can be switched on and off somehow? So bugfixing, new (free) features, and other maintenance and evolvement are intended to be applied to both lines of development.

This is mainly a a management decision: the first option will double your work for maintenance, so tell management if they want that, they might be prepared they need to hire a second guy for the additional maintenance effort, or they have to drop evolvement of the old application, or they have to live with the fact that evolvement and maintenance will need twice the time than now.

The second option can avoid this, but then they have to let you add something like a feature toggle to the existing code (in the next version). Technically, this could be something like what you call a "macro", I guess (I actually don't know what that means exactly in the context of the TFS, but I think these details don't really matter).

ライセンス: CC-BY-SA帰属
所属していません softwareengineering.stackexchange
scroll top