Typically, software developers will do the following: analyze user requirements before designing and developing software to meet those requirements; recommend software upgrades for existing customers’ programs and systems; create each component of an application or system and plan how they will interact.