Entwicklung einer unterstützenden Suchfunktion für den ... · • Context and Dependency...

28
Entwicklung einer unterstützenden Suchfunktion für den ConSol*-Profil-Generator 1

Transcript of Entwicklung einer unterstützenden Suchfunktion für den ... · • Context and Dependency...

Entwicklung einer unterstützenden Suchfunktion für den ConSol*-Profil-Generator

1

2

• Vorstellung • Analyse

• Entwurf

• Implementierung

• Test

• Fazit

Agenda

3

Ausbildungsbetrieb

Implementierung Analyse Entwurf Vorstellung Test Fazit

Analyse

4

Implementierung Analyse Entwurf Vorstellung Test Fazit

6

Projekte

Kenntnisse

Implementierung Analyse Entwurf Vorstellung Test Fazit

8

Projektbegründung

• Aktuell existiert keine Suchfunktion

• Das Finden geeigneter Mitarbeiter ist schwer

• Der Auswahlprozess wird manuell durchgeführt • Der Suchprozess erfordert eine gute Intuition bzw.

Vorkenntnis

Implementierung Analyse Entwurf Vorstellung Test Fazit

9

Entwicklung einer Suchfunktion:

• Unterstützung der Vertriebsabteilung

• Rationalisierung des Auswahlprozesses für ausgeschriebene Projekte

• Finden sachkundiger Kollegen (intern)

Projektziel

Implementierung Analyse Entwurf Vorstellung Test Fazit

10

Entwicklungsprozess

4.10 5.10 6.10 7.10 10.10 11.10 12.10 13.10 14.10

Sprint 1

Planung

Realisierung

Teilabnahme

Sprint 2

Realisierung

Kontrolle

Dokumentation

Teilabnahme

Scrum-Sprints

Implementierung Analyse Entwurf Vorstellung Test Fazit

11

Projektkosten

Posten Kosten Arbeitszeit Entwickler 394,10 € (70 h)

Arbeitszeit Vertriebsmitarbeiter 180,00 € (6 h)

Gemeinkosten 700,00 €

Gesamtkosten 1274,10 €

Implementierung Analyse Entwurf Vorstellung Test Fazit

12

Armotisationsdauer

0

200

400

600

800

1000

1200

1400

1600

1 2 3 4 5 6

Woche

Projektkosten in €

kummulierte Ersparnis in €

Implementierung Analyse Entwurf Vorstellung Test Fazit

13

Soll-Konzept

• Profilen

• Kenntnisse

• Branchen & Werkzeugen

Durchsuchbarkeit von:

Projekte

Kenntnisse

Entwurf

14

Implementierung Analyse Entwurf Vorstellung Test Fazit

15

Risiken & Möglichkeiten

• Korrelationen von Fähigkeiten

• Lineare Regression

• Freitextfelder im Projektdatensatz

• Fähigkeiten aus festem Wertebereich • Abbildung von Werkzeugen auf

Fähigkeiten

0

1

2

3

4

0 1 2 3 4Ja

va

Spring

Linear (Regressionsgerade)

Implementierung Analyse Entwurf Vorstellung Test Fazit

16

Datenmodell

• Überführung des JSON-Modells in ein relationales Datenmodell

• Beschränkung auf relevante Felder

• Neue Datenstruktur für lineare Regressionsanalyse

Implementierung Analyse Entwurf Vorstellung Test Fazit

17

Geschäftslogik

• API-Controller bereits vorhanden im Profil-Generator

• Zwei neue Spring-Beans (DAO, Controller)

• Schwache Kopplung, starke Kohäsion

• Tägliches Transformieren des JSON-Modells in relationales Modell

Implementierung Analyse Entwurf Vorstellung Test Fazit

18

Scoringalgorithmus

• Eine Suche ist mittels Abfrage über das neue Datenbankschema einfach

• Standard: Suche über diskrete Menge an Kenntnissen

• Optional: Einbeziehung der Projekterfahrung

Implementierung Analyse Entwurf Vorstellung Test Fazit

19

Scoringalgorithmus

Profil Fähigkeiten: Java: 4 Spring: 3 JPA: 1 JMS: 4

Suche nach Java (Berechnung für Fähigkeiten)

100 * 4 = 400

Implementierung Analyse Entwurf Vorstellung Test Fazit

20

Scoringalgorithmus

Profil Projekt X Dauer: 0,5 a

Werkzeuge: - Spring

Fähigkeiten: Java: 4 Spring: 3 JPA: 1 JMS: 4

Suche nach Java (Berechnung mit Werkzeugen aus Projekt X)

f(Java, Spring) := -0.61 + 3 * 0.94 = 2,247

Werte der Regressionsanalyse

Geradengleichung: y = mx + n

Implementierung Analyse Entwurf Vorstellung Test Fazit

21

Scoringalgorithmus

Profil Projekt X Dauer: 0,5 a

Werkzeuge: - Spring

Fähigkeiten: Java: 4 Spring: 3 JPA: 1 JMS: 4

Suche nach Java (Berechnung mit Werkzeugen aus Projekt X)

f(Java, Spring) := -0.61 + 3 * 0.94 = 2,247

400 + f(Java, Spring) * (182,5 / 365) = 401,123

Werte der Regressionsanalyse

Implementierung Analyse Entwurf Vorstellung Test Fazit

22

Scoringalgorithmus

Profil Projekt X Dauer: 0,5 a

Werkzeuge: - Spring

Projekt Y Dauer: 1,5 a

Werkzeuge: - JPA - JMS

Fähigkeiten: Java: 4 Spring: 3 JPA: 1 JMS: 4

Suche nach Java:

401,123 + f(Java, JPA) * 1,5 + f(Java, JMS) * 1,5 = 401,123 + 0,435 + 3,822 = 405,38

Implementierung Analyse Entwurf Vorstellung Test Fazit

23

Scoringalgorithmus

• x: gesuchte Fähigkeit • xb: Bewertung der Fähigkeit im Profil des Mitarbeiters • y: dem Werkzeug zugeordnete Fähigkeit • f(x, y): Regressionswert von x auf y, wenn Korrelationskoeffizient >= 0.85, sonst 0 • b(p): Branchenscoring • i: Index der Projekte im Profil • j: Index der Werkzeuge im Projekt

Implementierung

24

Implementierung Analyse Entwurf Vorstellung Test Fazit

25

Realisierung

• Datenbank-Setup mittels MySQL-Workbench • Datenbankzugriff mittels Spring-DAO-Bean (JDBC-Template) • Spring-Controller-Bean • Context and Dependency Injection (CDI) • Spring Annotationen • Frontend mittels Backbone.js

Test

26

Implementierung Analyse Entwurf Vorstellung Test Fazit

27

Test-Kontext

• JUnit als Testframework • Spring Boot bietet eine in-memory H2-Datenbank an • Phantom.js als Test-Client für Integrationstests • Direkter Zugriff auf Datenbank um DAO-Funktionalität zu testen

Fazit

28

Implementierung Analyse Entwurf Vorstellung Test Fazit

29

Fazit

• Erfüllung des Soll-Konzepts: Relevante Felder und Fähigkeiten eines Profils sind durchsuchbar

• Zeitliche und inhaltliche Planung wurden eingehalten • Der Scoring-Algorithmus liefert wertvolle Ergebnisse

Ausblick: • Der Algorithmus kann ggf. nach Nutzerfeedback verfeinert werden

• Überführung in den produktiven Betrieb

Vielen Dank für Ihre Aufmerksamkeit

30