Individuals within the Application Development role work closely with clients, business analysts and team members to understand the business requirements that drive the analysis and design of quality technical solutions. These solutions must be aligned with business and IT strategies and are in compliance with the organization's architectural standards. Application Developers are involved in the full systems life cycle and therefore are responsible for designing, coding, testing, implementing and supporting application software that is delivered on time and within budget. Responsibilities beyond development of software may include participation in component and data architecture design, technology planning, product evaluation, advanced testing processes and buy vs. build recommendations. Individuals also provide input to project plans related to the application development initiative.
Application Developers have a strong knowledge of programming languages used by the organization. They have experience in systems design and have a solid understanding of development, database development, testing, and integration methodologies. Knowledge of current and emerging IT products, services and processes is required.
Individuals must be able to adjust to constant business change. Common types of changes include introduction of new organizations through mergers and acquisitions, evolving goals and strategies and emerging technologies. These changes require integration of solutions that can impact the overall system development activity. Application Developers also provide client support, consultation and subject matter expertise for system development, maintenance and support. This associate will work on complex, major or highly visible tasks and projects as a project team member, sometimes as a project lead. They will also work on projects that may span a broad range of applications and support multiple applications. Will have expertise in multiple technical environments and possesses business knowledge that spans one or more business areas.
* May participate in project planning processes.
* May identify project tasks and assists with project timeline estimations.
* May participate in the design and development of the database(s) associated with one or more applications.
* May identify technical requirements.
* May create technical design specifications and assists in sizing technical requirements.
* Assists and reviews technical design specifications developed by junior levels.
* Codes applications or enterprisewide software systems using a disciplined development process.
* Integrates solutions with other applications and platforms outside the framework.
* Develops, executes, and documents unit test plans.
* Supports and/or executes testing efforts across the life cycle.
* Adheres to standards and procedures.
* Reviews modules for quality assurance.
* Checks for compliance with all standards, policies and procedures.
* May assist in defining development guidelines and standards.
* May participate in code reviews for quality assurance.
* May lead the deployment of new modules, upgrades and fixes to the production environment.
* Makes modules production-ready by moving them to libraries, completing forms, following procedures, completing version control documents, etc.
* Accountable for creating release notes, deployment plans, etc
* Participates in creating branching and merging strategies and executes those strategies.
* May present changes to CAB.
* Validates deployment.
* Provides ongoing maintenance of applications.
* May assist in production support.
* May troubleshoot existing information systems to identify errors or deficiencies and develops solutions
* Evaluates existing applications and platform and provides recommendations for improving application performance by conducting gap analysis, identifying feasible alternative solutions, and assisting in the scope of modifications.
* Participates on teams that outline the process and scope out the improvements that can be realized through the application solution.
* May perform automated/load tests and address any issues.
* Documents functions and changes to new or modified modules, test activities/results and other areas such as error handling and backup/recovery procedures.
* Assists in the development of user guides and training documentation for systems.
* Evaluates new application packages and tools and performs research on best practices.
* Provides recommendations for the solutions.
* May prepare and present formal training to IT staff, as needed.
* Provides technical leadership, coaching and mentoring to team members.
* Provides technical guidance or system process expertise.
* Develops reports and presentations for senior management, as needed.
Bachelor's degree in Programming/Systems or Computer Science or other related field. Or equivalent work experience. Typically have 5-10 years of application programming and analysis experience. Has a broad level of understanding surrounding information systems and application architecture standards. Demonstrated ability to analyze and interpret complex problems or processes that span multiple business areas, identify and understand requirements, and develop alternate solutions. Experience designing, developing and testing applications using proven or emerging technologies in a variety of technologies and environments.
* Advanced programming skills in several programming languages
* Advanced understanding of relational database design and theory
* Ability to translate complicated business requirements into multiple solution options and explain the pros/cons of various approaches
* Advanced knowledge of Object-Orient Design Patterns and use cases for applying them