I’d say the most important aspect of sending money to Africa would be to have someone one trusts on the receiving end.
That aside, for small amounts my experience is that the cheapest and fastest way is to:
1) Open a bank account in a niche bank that have no fees for international ATM withdrawals. The currency spread can’t be avoided but there are banks where the spread is low and they are transparent about it. The bank I use have a currency spread of 1.65%.
2) Create a separate account with a Visa debit card linked to it. Preferably with no available credit.
3) Give the Visa card and the pin code to the receiver.
4) To send money, just transfer over funds to the account linked to the card and tell the receiver the amount that can be withdrawn.
One slight worry with this method is that it might raise some sort of flags with the bank, especially if the other account is used for withdrawals back in Europe at the same time. However, I have been using this method for over 7 years now and it has been working fine.
To buy a house or so, the above method involves too much cash handling on the receiving end, making it impractical and possibly dangerous. For larger amounts traditional bank transfers seems to be the best option. As discussed in a previous post, my bank in Europe told me it is possible to send money to the Ivory Coast in person, but not through online banking.