Sunday, July 10, 2011

One Solution vs Multiple Solutions

Is it a good idea to have one solution or multiple solutions?

"One Solution" Advantage
1. Easy to build
2. No need to switch between multiple solutions
3. No psychological barrier
4. Cool New Stuff get added to project
Exisitng Project may be web form based .New modules can be written in MVC.
Opportunity to upgrade the project to latest technology and framework.




"One Solution" Disadvantage
1. Too many people working on same solution.
This pain has been minimized by TFS branching and Merging. We can have multiple people working on branches. Application Architecture and Framework should dictate that there are boundaries and no cross over happens. Code Reviews can also help.

2. Security
Every module should has its own master page.
Entry Global routines know what is user's landing page and User authorization boundaries.
User should not be able to cross the boundaries.
More Work for QA.


3. Other group changes can jeopardize some other release.
Module should be written in a way if we need to pull it out of application and create a solution,
We should be able to achieve it with minimum pain and effort.


Conclusion:
We should follow middle path. We don't have to have one solution but at the same times we should not have too many solutions. Whenever a request comes for a new module, we should investigate that it belongs to which solution. Module should be loosely coupled to each other.












0 comments: