Software developers create computer programs by imagining, designing, and building them. Some create new mobile or desktop programs, while others create core operating systems. In any case, software engineers analyze user needs, create programs, evaluate new software, and enhance it.