There are important factors to consider before you even begin your first attack. Planning out and discussing the resources, requirements, and budget with the client is key to a successful engagement. You need to consider who will provide the resources, like the hardware and software, since each of these costs money. Establish the budget from the beginning and assign a value to every part of the test, including the cost of your time.