One of the big misconceptions is that unions are just for workers. In my experience unions benefit the employers just as much as the workers by providing a formal process for raising and resolving grievances. This helps corporations by keeping things smooth and puts a check on low level management that benefits the organization over all.
Unions also bring a lot of BS. They are another hierarchy with their own bosses, and rules, etc. But you will not find any more generous group of people then in a union. When there is a collection for someone who has a sick kid or some other tragic life event the amount of money that gets collected in a single meeting is surprising. I have never seen that kind of generosity in any professional setting.
I have also seen unions vote repeatedly to take cuts in their own pay to help out their fellow members on the pension issue, even knowing that those people f--ked themselves up with their own stupid decisions, but the point of a union is that you take care of your own, and members are willing to take a very real and significant personal hit to do that.
One of the best things about unions is fixed contracts and pay scales. Haggling over money used to be considered disgraceful and beneath the dignity of respectable people. Unions are old school so they still stick to that code and younger people would do well to learn from them on that.
I don't really think that software engineers could benefit much from unionization. Seizing the means of production doesn't have much meaning when you are the means of production. People who already have all the power don't need a union. But understanding how unions work and the benefits that they provide for organizing labor, corporations, and society is definitely a good thing.