The best way to do it is using Swiss Manager. Swiss perfect has a bug in which after it reaches a certain number of participants, it just fails on certain aspects.
I think Swiss Manager is not that user-friendly, but I was able to learn it by myself though. There you can even create a local rating exclusively for your own company. Swiss Manager takes care of that -- it counts how much ratings a player has earned/lost after the tournament.
Now if you are not that tech savvy you can do it manually. If it is just 30 or less participants it's pretty handy. Just make an initial list (the strongest player as the #1 seed).
Pairings for the first round goes like this and you have the option to reverse colors. Say there are just 8 participants (for simplicity purposes). The first half of the list, which are players #1 to #4 will play against #5 to #8 respectively:
Round 1:
1 vs 5
6 vs 2
3 vs 7
8 vs 4
Notice the alternating pattern in which #1 is white, #2 is black and #3 is white.
In the next round, probably the top 4 players won and the others lost. top seed and 2nd seed will face in the later part so You will just do the pattern again, this time among those on the same point groups: #1-#4 all have one point and hence will play each other while #5-#8 will also do the same.
Round 2 pairings looks like this and again, the ones on the upper part vs the lower parts ON THE SAME POINT GROUP. Hence #1 & #2 vs #3 & #4
and #5 & #6 vs #7 & #8:
Round 2:
4 vs 1
2 vs 3
5 vs 8
7 vs 6
Just note about the colors. As much as possible, players should change colors after every round. But there are exceptions in which some players can go two rounds with the same color BUT HE/SHE CANNOT GO FOR THREE ROUNDS WITH THE SAME COLOR.
Another thing to mention is sometimes, you need to pair a player to another player which is not of his point group simply because there are no other player whom he can play in the same group. Example is when one match ended in a draw in the first round. So these two players with half points might play against 1-pointers or even 0-pointers in the 2nd round. Just depends on the scenario of availability of players.
Basically that's what the pairing program's algorithm does. On the later rounds you can continue the pattern on which players on the same point group play each other as long as they haven't played each other.
By the way, two types of tournament styles are:
- Round Robin (Sub types of this type is double and triple round robins, etc)
- Swiss (could be 5 rounds, 6 rounds, 7 or 9, etc. Simply depending on the tournament size. You can calculate it in the form of 2x in which x is the number of rounds needed to produce. 2x should be equal or greater than the number of participants.
Say there are 100 participants, in order for 2x to be greater or equal to 100, x must be 7. So 7 rounds could do it.
But then again, the tournament manager has the right to increase the number of rounds. It will be stated in the so called "Ground Rules" or "Mechanics of the Tournament".
It is really pretty easy. For not so serious tournaments this should work, but for serious ones, Tie-breaks, on the later rounds, will also add complexities as to who should play who in the next rounds.
P.S.: Sorry this is just a quick reflection in my past experience. I know my answer is not well organized/formatted.