This article will be an overview, without special details of software development. My goal is to acquaint the reader with the experience that I gained while participating in the internship as a mentor. I do not name the company in which I work and do not name the project in which I participated as it contradicts the rules of the resource.
In Tomsk, it is difficult to find developers, even among a seemingly popular stack like php + mysql. Actually, the idea of ​​participation arose because of problems with lack of personnel, and we (the company) decided to go on an experiment and try to find employees among people with little experience. Once in the kitchen, the question was raised about who knows what about projects for interns and newcomers. There were those who have already participated, shared, discussed. I reported that I was ready to participate. I wanted to get:
The project in which we participated gives interns the opportunity, within 2 months, working at least 20 hours a week, to create software under the guidance of a mentor for the purpose of further employment. Interns get experience, get acquainted with the development process. For the company it is beneficial because the interns do not come zero, but, so to say, "warmed up" with minimal knowledge. Following the results there is a choice from the already prepared guys.
The project for the internship was chosen "online consultant". You all saw them on the sites, I will not elaborate on this. Widget in the corner, click on the icon, the chat window opens, chatting with the operator / bot. There are thousands of them, but I will emphasize that the point is not to create something new, but to prepare the interns for real work.
In order to attract people for internship, I prepared and made a presentation at three major universities in Tomsk. You would know how hard it is to speak in front of an audience. This is about the same as meeting people, only a few dozen people at once. Nothing but smiles that presentation and performance do not cause me. Now I would change something.
After the speech began to receive applications for participation. Of the approximately 150-180 people who attended my presentation, six participants applied for participation in the project. Of these, we chose five. The guys had a different level of training. One specialized in frontend and wanted to develop in this direction. The second had experience developing in PHP + MySQL. The rest of the guys came almost zero, not counting the laboratory work at the university.
Before we started the project, I and the guys were waiting for 2 weekends with 8 hours of intensive: acquaintance, lectures, practice on the version control system, analytics, testing, etc.
Also in the requirements was the provision of daily reports on the work performed. Participation of the whole team in Friday's meetings, where the other participants spoke about the progress and discussed each other’s projects.
The project gave the right to expel participants from the project. And we also had to make a presentation on the demo-day. This is a public event where interns demonstrate the results of their work.
By the beginning of the project, we had already deployed the infrastructure: gitlab, redmine, got mail, accounts, etc. Except for some technical issues, everything was fine. We met internally on Wednesdays and, a week after the start, we came to the conclusion that we need daily online meetings. They came to the fact that it will be 21:30. We discussed the successes and problems of the day. Also, a manager was appointed for a week, who sent reports and spoke on Fridays with a report to the other participants.
The first two weeks we were swinging and I explained how the task management system works, how to write reports, how to take a task, hand over a task, how to work with git, what I expect and want to see in the report on the completed task, etc. In general, purely organization.
Yes, by the way, we had TZ. On the basis of it, we sketched out the components of the system, discussed the architecture and technology.
This is one of the first variants of the component scheme.
Created tasks in redmine by component name. These were major tasks. Say "Widget", "Operator application", "Messaging server", etc. Then they created subtasks, smaller ones, say “Widget prototype”, “Widget layout”, “nodejs installation”, “messaging algorithm”, etc. Then more minor ones, like "Layout layout for admin panel", "Layout filter for dialogue history", etc. The result was about 60 tasks (by the end of the project, their number had increased to 94 due to minor problems in correcting the shortcomings).
Three weeks later, we had progress on all modules except the messaging server. I will not dwell on this, as this will lead my narration aside, but I will say that I have excluded one of the participants from the project.
About a week and a half before the end, we had a raw prototype. Curve layout, bugs, unrealized functions. These week and a half we finished the project.
In the video, Dima is one of the project participants. By clicking on the links you can see what we have. Site , Admin , Operator
Requisites: admin / admin, operator1 / operator, owner1 / owner.
Source: https://habr.com/ru/post/346248/
All Articles