Den richtigen Software-Ingenieur zu finden, ist immer eine schwierige Aufgabe, ob freiberuflich oder fest angestellt, aber es kann weniger schwierig sein, wenn Sie genau wissen, wonach Sie suchen. Wenn Sie wissen, welche Fragen Sie stellen müssen, wird es nicht viel Arbeit machen.
Im Allgemeinen ist die Softwareentwicklung ein technisches Gebiet, daher müssen Sie technische Fragen für das Gespräch vorbereiten, die Ihnen helfen, die Fähigkeiten eines Entwicklers zu beurteilen. Sie müssen auch Fragen zur Persönlichkeit und zur Ethik vorbereiten, um sicherzustellen, dass Sie die beste Person für Ihr Projekt einstellen.
Vorbereitung auf das Vorstellungsgespräch
Wie bei jedem Vorstellungsgespräch ist die Vorbereitung von entscheidender Bedeutung, d. h. Sie müssen im Voraus wissen, was Sie fragen sollten. Obwohl die Fragen von der Art Ihres Softwareprojekts abhängen, sind hier einige allgemeine Schritte zur Vorbereitung aufgeführt:
- Verstehen Sie Ihre Projektspezifikationen
Sie suchen einen Entwickler, der Ihre Bedürfnisse versteht, und das kann er nur, wenn Sie die Projektspezifikation richtig kommunizieren. Der beste Weg, ein Projekt zu verstehen, ist, die Dokumentation zu lesen und zu prüfen.
- Ihr Budget kennen
Jeder Software-Ingenieur hat seinen eigenen Tarif. Die Preise hängen von der Technologie, den Jahren der Erfahrung, dem Standort und der Komplexität des Projekts ab.
- Verständnis für Ihren Begriff
Wenn Sie Ihr Zeitlimit kennen, kann der Softwareentwickler Ihnen auch eine Gesamtschätzung auf der Grundlage der Anforderungen Ihres Projekts geben. Manche Software-Ingenieure können auch unter Druck nicht gut arbeiten. Wenn Sie also Ihr Zeitlimit kennen, können Sie den richtigen Entwickler einstellen.
- Interviewfragen vorbereiten
Bereiten Sie Fragen vor, die sowohl die technischen als auch die ethischen Fähigkeiten des Entwicklers testen. Sie können einen erfahrenen Entwickler bitten, Ihnen bei technischen Fragen zu helfen, wenn Sie nicht über ausreichende Kenntnisse verfügen.
Bei der Einstellung eines Softwareentwicklers gibt es drei Phasen:
Phase I: Enthält grundlegende Fragen zu ihrer bisherigen Arbeit und ihren Projekten
Phase II: Technisches Interview, um die technischen Fähigkeiten des Entwicklers zu testen.
Phase III: Der letzte Teil des Gesprächs und die Phase, in der der Entwickler Fragen stellen und Unklarheiten ausräumen kann.

Fragen für ein Gespräch mit einem Software-Ingenieur
Nachdem Sie die Kandidaten für die Softwareentwicklung in die engere Wahl gezogen haben, ist es nun an der Zeit, die relevanten Fragen für das Vorstellungsgespräch durchzugehen. Bei den Fragen auf dieser Liste handelt es sich um allgemeine Fragen zur Softwareentwicklung, nicht um sprachspezifische. Stellen Sie sicher, dass Sie nur Fragen vorbereiten, die Ihnen helfen, die richtige Person für die Stelle auf der Grundlage Ihrer Projektanforderungen zu finden.
Interviewfrage I: Erläutern Sie eines Ihrer früheren Projekte und wie Sie es erfolgreich abgeschlossen haben.
Diese Frage gibt dem Bewerber die Möglichkeit, offen über seine frühere Tätigkeit zu sprechen, ohne technische Antworten zu geben. Diese Frage dient mehreren Zwecken: Erstens können Sie feststellen, ob der Bewerber ein Teamplayer ist oder nicht. Sie hilft auch zu verstehen, wie er seine Zeit einteilt, wie er mit Projektmanagern umgeht und welche Managementfähigkeiten er hat.
Frage II: Sind Sie bei der Arbeit an einem früheren Projekt auf Hindernisse gestoßen und wie sind Sie damit umgegangen?
Mit dieser Frage lässt sich feststellen, wie der Bewerber mit Hindernissen, Verzögerungen und anderen Problemen umgeht, die während des Projekts auftreten können. Es ist üblich, dass Softwareprojekte auf die eine oder andere Weise auf Hindernisse stoßen, daher ist es wichtig, die Fähigkeit des Entwicklers zu prüfen, mit auftretenden Hindernissen umzugehen. Wenn ein Bewerber Schwierigkeiten hat, ein Hindernis in einem früheren Projekt zu identifizieren, könnte dies ein schlechtes Zeichen sein.
Frage III: Sind Sie mit dem agilen Softwareentwicklungsprozess vertraut und folgen Sie diesem Prinzip bei der Entwicklung von Anwendungen?
Heutzutage folgt die gesamte Softwareentwicklung dem agilen Prinzip. Entwickler sollten also mit diesem Verfahren vertraut sein, und es ist wichtig, im Vorstellungsgespräch zu fragen, ob sie dieses Verfahren anwenden.
Interviewfrage IV: Was halten Sie von Multithreading?
Multithreading ist ein wichtiger Bestandteil der Softwareentwicklung. Entwickler nutzen dieses Konzept, um die Leistung von Anwendungen zu verbessern, indem sie verschiedene Prozessoren für die Ausführung von Codeteilen verwenden. Multithreading verhindert auch, dass sich der Code bei der Ausführung „aufhängt“.
Frage V: Was halten Sie von Unit-Tests?
Unit-Tests werden zusammen mit der testgesteuerten Entwicklung (TDD) meist als beste Praxis für die Softwareentwicklung angesehen. Dieses Prinzip wird auch bei der Wartung von Code angewandt. Unit-Testing ist zusätzlicher Code, der verschiedene Methoden und Prozesse auf Codedefekte und logische Fehler testet, um Fehler zu eliminieren, die in die Produktion übertragen werden könnten.
Dieses Konzept sollte jedem Entwickler geläufig sein, und es ist wichtig, während des Vorstellungsgesprächs festzustellen, ob der Bewerber damit vertraut ist und bereit ist, ihm im Projekt Priorität einzuräumen.
Frage VI: Was ist MVC?
MVC ist einfach die Technik der Aufteilung von Code in eigene Slots, wobei M für Model, V für View und C für Controller steht.
Qualifikationsfrage VII: Sind Sie mit OOP-Analyse und -Design vertraut?
OOP oder objektorientierte Programmierung ist die Grundlage für fast alle wichtigen Programmiersprachen wie C++, Java, C# und VB. Daher sollte der beste Programmierer mit OOP sehr vertraut sein.
Frage VIII: Wie organisieren Sie Ihre Ressourcen und Klassenmodule?
Mit dieser Frage wird die Fähigkeit des Bewerbers geprüft, seinen Code zu organisieren. Obwohl es keine in Stein gemeißelte Regel für die Organisation von Ressourcen und Klassenmodulen gibt, ist es nützlich zu wissen, wie der Bewerber seinen Code organisiert und ob er leicht gewartet werden kann.
Interviewfrage IX: Was ist ORM?
ORM steht für Object-Relationship-Mapping und ist eine Technik, um Code so zu verwenden, dass er auf Datenbanktabellen abgebildet werden kann. Bei diesem Verfahren wird die Tabelle in eigene Klassen umgewandelt, die Entwickler für LINQ-Abfragen verwenden können. Der Kandidat sollte Kenntnisse über verschiedene ORM-Frameworks wie z.B. Hibernate nachweisen.
Frage X: Was ist Ihre Methode, um einen Fehler in Ihrer Anwendung zu identifizieren? Wie viel Zeit verbringen Sie mit der Fehlersuche?
Die erste Frage ermöglicht es Ihnen zu verstehen, wie ein Kandidat bei der Arbeit mit schwierigen Fehlern vorgeht. Jeder Entwickler hat eine andere Art, Fehler zu finden und mit ihnen umzugehen, muss aber dennoch ein Debugging-Tool verwenden.
Die zweite Frage gibt Aufschluss darüber, wie oft der Entwickler seinen Code debuggt. Wenn er viel Zeit mit dem Debuggen verbringt, wird er zusätzliche Hilfe benötigen, um den von ihm geschriebenen Code zu verfeinern.

Schlussfolgerungen
Bei einem Vorstellungsgespräch mit einem Bewerber aus dem Bereich Softwaretechnik ist es ratsam, mit allgemeinen Fragen zu beginnen, bevor Sie sich den technischen Fragen zuwenden. Wenn Sie nur begrenzte Kenntnisse in der Softwaretechnik haben, können Sie jemanden bitten, Ihnen bei den technischen Teilen des Gesprächs zu helfen, vielleicht einen erfahrenen Softwareingenieur.