Beschreibung der Beschaffung
Allgemein:
Durch die in dieser Leistungsbeschreibung aufgezählten Leistungen sollen alle Phasen eines Anwendungsentwicklungsprojektes abgedeckt werden können. Neben der Unterstützung in der Anwendungsentwicklung in den unten benannten Technologien wird von dem Auftragnehmer die qualifizierte Unterstützung in querschnittlichen technologieunabhängigen Leistungsfeldern eines Anwendungsentwicklungsprojektes von der Initialisierung bis zur Betriebseinführung erwartet. Zur Erfüllung der Aufgabenfelder ist der Auftragnehmer in der Lage, je nach Anforderung des Einzelauftrags Personen mit dem nachfolgenden Qualifikationsprofil und Berufserfahrung zu stellen.
Projektsprache ist deutsch (Sprachniveau nach dem Europäischen Referenzrahmen mindestens gemäß Stufe C1 in Wort und Schrift).Unter "Berufserfahrung" sind durch Arbeitstätigkeit erworbene Kompetenzen, Fähigkeiten und Fertigkeiten zu verstehen. Zur Berufserfahrung zählen nicht Ausbildung, Studium, Praktika oder ähnliches.
Technologien:
Der Auftragnehmer muss die gesamte Bandbreite der unten aufgeführten Technologien und deren Nachfolgeprodukte abdecken. Angegebene Versionen von Technologien sind als Mindestanforderungen zu verstehen und beinhalten auch die jeweiligen Nachfolgeprodukte. Konkrete Bedarfe richten sich nach den anfordernden Projekten.
NET Microsoft-Technologien im Enterprise-Umfeld:
C#,Windows Presentation Foundation (WPF), Windows Forms, WinUI 3,Windows Communication Foundation (WCF) Webservices mit IIS,ASP.NET/ASP.NET Core,
ASP.NET Core Blazor,
ASP.NET Web Forms,
ASP.NET MVC/ASP.NET Core MVC,
ASP.NET Web API/ASP.NET Core Web API,
ASP.NET Security, Authentication,Universal Windows Platform (UWP),VB.NET,ADO.NET,Object-Relational-Mapping (ORM) mit Entity Framework/Entity Framework Core2
JAVA-Technologien im Enterprise-Umfeld:
Java Platform, Enterprise Edition,Quarkus,JavaServer Faces (JSF 2), PrimeFaces,PrimeNG,Java Persistence API (z.B. mit Hibernate 5),JAX-RS,WildFly,JBoss (EAP),Apache Tomcat,iText, jasper reports, APACHE POI oder APACHE Lucene,GUI-Frameworks Standard Widget Toolkit (SWT 3) oder Remote Application Platform (RAP 2)
Web (Frontend)-Entwicklungen:
Angular (ab Version 2) inkl. Angular Material,HTML 5 (Hypertext Markup Language),TypeScript, JavaScript (inkl. Frameworks),JQuery,CSS 3, Sass (Syntactically Awesome Stylesheets),Node.js
App-Entwicklung:
Entwicklung von nativen Apps für iOS Endgeräte,Entwicklung von nativben Apps für Android Endgeräte,Progressive Web Apps (Service Worker, App Manifest, etc.),Ionic Framework (ab Version 2),Apache Cordova/Ionic Capacitor
Begleitende Technologien:
Linux (SUSE, Red Hat oder andere Derivate),Entwicklungs-, Konfigurationsmanagement-, Versionsmanagement- und Testunterstützende Werkzeuge(z.B.Eclipse, Eclipse Che,Visual Studio (2019), Visual Studio Code,Azure DevOpsServer,Git,GitLab,Subversion,Maven3,JIRA,Jenkins,Nexus),Datenbanken(NoSQL;Oracle (ab 11g):PL/SQL;Microsoft SQL-Server(2012-2019):SQL für MS SQL Server,MS SQL Server Reporting Services,SSIS(MS SQL Server Integration Services),Always Encrypted(with Secure Enclaves),Row Level Security),REST Web Services,GraphQL,XML (Extensible Markup Language),Dependency Injection z.B. mit Unity Container,Model-View-ViewModel(MVVM)-Architekturmodell,Keycloak,FIDO2:WebAuthn&CTAP,Container-Technologien z.B. Kubernetes,gRPC,Windows-PowerShell,Kryptographie-Verfahren,Einbindung von Standardkomponenten z.B. MS-Office,SharePoint,MS-Exchange,Active Director.
Aufgaben:
Ein Senior-Entwickler ist ein Projektmitarbeiter, der bei Entwurf, Entwicklung, Test und Integration der Software maßgeblich und führend mitarbeitet. Er ist Experte für bestimmte Technologien in der Anwendungsentwicklung.
Zu den Aufgaben zählen:
-Aufwandschätzungen für Entwicklungsaufgaben
-Anforderungsanalyse
-Spezifikation des Anwendungssystems
-Anwendungsdesign
-Anwendungsarchitektur
-Datenbankdesign
-Datenbankprogrammierung
-Performance-Optimierung von Datenbanken
-Anwendungsentwicklung mit agilen Methoden, vorzugsweise SCRUM
-Dokumentation der Systemspezifikation und der Entwurfsentscheidungen in der Softwareentwicklungsdokumentation
-Entwurf und Implementierung in IT-Sicherheitsthemen in Anwendungssystemen
-Unterstützung beim Test (Komponenten-, Integrations- und Abnahmetests)
-Unterstützung bei der Inbetriebnahme von Anwendungen
-Unterstützung bei der Migration von Altsystemen
-Integration von Anwendungen in die Infrastruktur
-Unterstützung bei Schulungsmaßnahmen für Anwender und Betriebspersonal
-Know-how-Transfer zu Mitarbeitern des Auftraggebers
Ausbildung/Fortbildung:
Hochschulabschluss in einer IT-nahen Fachrichtung (z.B. Informatik, Wirtschaftsinformatik, Naturwissenschaften, Mathematik) oder ein anerkannter Ausbildungsberuf in den Fachbereichen Informatik und Informationstechnologie oder in der Praxis erworbene vergleichbare Kenntnisse und Fähigkeiten.
Berufserfahrung:
Die zur Dienstleistungserbringung eingesetzten Personen müssen tiefgehende, in mindestens 6-jähriger Berufserfahrung erworbene Kenntnisse in o.g. Technologien der Anwendungsentwicklung und Entwicklererfahrungen in Softwareentwicklungsprojekten besitzen.
Darüber hinaus ist folgende Erfahrung vorausgesetzt:
-bei der Softwareentwicklung - je nach Bedarf, wie im Einzelabruf festgelegt - im .NET- oder JAVA-Umfeld
-in der Anforderungsanalyse
-bei der Spezifikation des Anwendungssystems
-im Anwendungsdesign
-bei der Anwendungsarchitektur
-im Datenbankdesign
-bei der Anwendungsentwicklung mit agilen Methoden, vorzugsweise Scrum
-im Umgang mit gängigen Sourcecode-Verwaltungssystemen
-bei der Dokumentation der Systemspezifikation und der Entwurfsentscheidungen in der Softwareentwicklungsdokumentation
- in Tests (Komponenten-, Integrations- und Abnahmetests)
-bei der Inbetriebnahme von Anwendungen
-bei der Migration von Altsystemen
-bei der Integration von Anwendungen in die Infrastruktur
-im Know-how-Transfer zu Mitarbeitern des Auftraggebers