Basically, there's two different, and related issues with the companions.
One is related to the small number of companions, the small party size and the current lack of any respec ability or multiclassing. This really limits flexibility. For example, if you do not play as a fighter (or maybe a ranger) you will pretty much have to bring Lae'zel along, whether you like her as a player, and regardless of whether your character would realistically be willing to travel with her. This is particularly acute because three of the five companions are basically evil, and the other two are not exactly good. And Larian (arguably wisely) decided to not gamify approval with gifts, meaning it's genuinely hard to keep the evil characters happy if you make good decisions. This should be solved eventually to some degree - though hopefully we will ultimately get more than 8 NPCs.
The second is related to the writing of the characters. I don't agree that they "need to be nicer." However, the companions are weird, particularly if you (as most people do) play a custom character rather than an origin. The companions are extremely overwritten in terms of their backstory - not only as companions, but as potential origin stories for the PC. I always look to Dragon Age:: Origins as an example that got things right here, insofar as you actually play your prologue, giving you a backstory, but giving you some agency within that backstory. But in general, there's just...too much...in the background of most of the characters for level 1 adventurers. Occasional banter while adventuring and boning aside, they also don't interact with one another very much. Often there's literally nothing to say to certain companions until you advance their personal quest. This is a problem, because it make the companions not feel like people, but like questlines/stories awkwardly ported into the game.
I also feel like while the backstories are incredibly fleshed out, the actual characters motivations are relatively opaque. Part of this is the weird decision on the part of Larian to make every companion a mystery box - which doesn't open for every companion in every runthrough. Some level of this is fine, but it also means unless you pay close attention to what a character approves and disapproves of, you don't really understand their worldview.
Finally, although the origins are quite...involved...they are also random - at least so far. You can generally go one of two ways with companion backstories. One is to have companions who are relatively shallow - like say in the BG series. Another example is characters who have a deep backstory which is tied into the main plot. Planescape: Torment is a good example here. If you have a deep backstory but it seems to be sort of random within the setting, you end up with...well...Fenris from Dragon Age 2, a character who just seems ported from a different game.