Understanding and analyzing project requirements and translating it into specifications and programming deliverables Working closely with analysts, designers and clients to enhance existing applications as well as build new applications. Testing and debugging the product in controlled, real situations Maintaining the systems and updating as per requirements