o que é preciso para desenvolver um software