The use of 8 as the default value for the number of segments is purely arbitrary. It is a perfectly reasonable value, but it is no better or worse than any other choice. In general, you can often achieve better results by choosing a custom value for the window size and the overlap amount. Remember that there is a trade off between the window size and the frequency resolution. The larger the window, the smaller the frequency increment, and vice versa.
nSegments = ...
winSize = signalLength/nSegments;
overlap = winSize/2;
fftSize = winSize;
for a variety of values for nSegments.