I have been having a discussion with a colleague about the best way to organize a (C#)project after he reorganized a project I had been working on from something that looked like this:To something that looks like this:I tend to sway towards having a few big projects as opposed to many smaller projects, but I am open to new ideas and I would love for some input on this. Does anyone have experience with either of these approaches either really working out, or completely falling apart a few years down the line? 
Project Organization
c#;.net;organization
A benefit of having many smaller, cohesive projects is reuse. If you have a project B that needs project A for 5% of the things, perhaps that 5% of things should be split out into its own project C which B should depend on instead, if it is really an independent feature or logical grouping of code. Part of the interface segregation principal is that a class should not be forced to rely on an interface for methods it does not care about, i.e. interfaces should be small and cohesive. You can think of this project refactoring as an extension of that.On the other hand, being practical trumps good design and project organization. If you dont think that splitting up your projects to allow easier refactoring or reuse by other projects in the future will be beneficial (ex. you dont expect your project to get reused), then time (i.e. money) shouldnt be spend doing that refactoring if it is non-trivial.