I went to sewing class with the jacket I am making Georgie. One of the things I did was make button holes. The great things about classes is learning how to make finishes tidier and more professional looking.
Two tips I learnt:
1. sew a straight lines of stitches where you are about to put the buttons hole - this is more for fabric with stretch or where you are putting the button hole perpendicular to a seam or edge and it is a bit harder to keep things straight. ( Yes I know, somewhat ironic that the one picture I took does not show a straight but a curved line of stitches but you get the idea!) I found it much easier to put the buttonhole in so will probably do this in future for all buttonholes.
2. Use a buttonhole foot - this may seem obvious if you do a lot of sewing but I never actually knew which foot is was until I did classes last year.
You can see it has 2 little grooves on the base to keep the button hole straight.
Here is one made using the button hole foot: Not perfect but once cut and a button in it will look fine.
Compared to one without a buttonhole foot:
Note, this one did not have the row of staight stitchs first so not only is it a bit wonky but the fabric has stretched differentially.
Hope this helps if you stuggle with button holes.