Experience with programming and software development including analysis, design, development, implementation, testing, maintenance, quality assurance, troubleshooting andor upgrading of software systems