We describe a practical algorithm for computing representatives of the conjugacy classes of maximal subgroups in a finite group, together with details of its implementation for permutation groups in the MAGMA system. We also describe methods for computing complements of normal subgroups and minimal supplements of normal soluble subgroups of finite groups.