• investigating current applications
• liaising with users
• producing specifications
• costing new or modified systems
• agreeing proposals
• writing new software and operating manuals
• testing the product to ensure that it operates satisfactorily
• training users
• handling support and feedback.