Question: I have a question regarding generalization. I know when it is needed to be done, but is it worth having an extra class for 1 field?

e.g.:

`StatisticsCustomer` has fields: `Customer customer` and `int projectCount`
`StatisticsCountry` has fields: `Country country` and `int projectCount`

What is best in this situation? Creating an extra class just for projectCount or keeping it twice in the two classes?

Answer: 
In our line of work we tend to look for technical reasons, but in my opinion the primary reason isn't technical. If you look at [GitHub Help](https://help.github.com/) or other GitHub tutorials, forking a repo is one of the major steps for how you "do" GitHub. 

When people are learning and evaluating GitHub, just about every tutorial out there is going to tell them to fork a repo as part of that learning process. Since the primary purpose of GitHub is to contribute, a lot of people working through the standard tutorials don't realize if you just want a read-only clone you don't have to do a fork first.
One possible reason: they have running code that depends on those projects and their build process involves pulling the dependencies from github. Having the fork protects them against breaking changes. For projects that don't tag versions, this is the easiest way to achieve that.