Categories
Uncategorized

How to make work atmosphere friendlier?

There is no right answer to that question. However, the Fora Soft team is willing to share our knowledge with you. The knowledge that we have been nurturing for several years.

We also provide some COVID-era solutions, so make sure to check them out, too!

Make communication between employees less formal

When there are no barriers that formal communication brings, it’s easier for your team members to share things about their problems and say their opinion on things during Scrum meetings.

We tend to demolish those barriers with the help of monthly office parties with a ton of pizza involved. Formality becomes a difficult concept to maintain when you are sitting at the same table consuming that saucy pizza 🙂

Как сделать так, чтобы в коллективе было комфортно работать, image #1
Doesn’t look too formal, does it? 🙂

Fun fact: it’s easier for people to start a dialog after they’ve established a visual contact, hence our choice of food. To get a bite of that delicious thing, you just have to hold the slice near to your face. Thus, we do not only have a great time eating pizza during the working day but also improve the working atmosphere.

In COVID times, we meet in Zoom instead, but weekly, not monthly. 

Make your workspaces comfortable

Place them so that there is a distance of 1,5-2 meters between employees. That way the coworkers will find themselves within each other’s social distance. Read more about proxemics, the study of human use of space, on Wikipedia.

Comfortable distance between workstations allows employees to be open for discussion while still having enough private space around.

There is no correct way of setting devices, it all comes down to personal preferences. Your task as a manager is to give your team the furniture that they can easily adjust.

Эти довольные лица говорят сами за себя!
These happy faces speak for themselves!

In COVID times, we work remotely. Each project team meets in a video call daily to compensate for the lack of communication. Effectiveness has even improved – we now talk more.

Lower distance between the boss and the team

In some companies, the boss doesn’t get enough trust and may even be feared by employees instead of respected. To make the relationship less formal, our CEO goes around the office and greets every and each employee face-to-face.

He can do this all day

We also have an Open Door principle: if the CEO’s door is open, you can come into his office and rap with him about life ask some questions, or suggest a way to improve the processes in the company.

In COVID times, it’s Open Skype principle instead 🙂 (poor CEO)

Be clear about the company’s / project’s aims

Every member of a project team needs to know where the project or the company is going. It helps them plan their development and stay updated on perspectives.

In Fora Soft project members discuss upcoming features, their feasibility, and possible improvements together in a comfortable conference Skype room. In COVID, we do that on daily video meetings.

Тут зарождаются легенды
Legends are born here

The company’s aims for the year are announced at the New Year’s party and monthly objectives are hanging in the dining room, which is – no surprise here! – the most visited venue in our office. In COVID, the CEO shares company’s aims at Thursday’s general company video meetings on Zoom. We post recordings on Instagram – catch a moment to see 🙂 They are in Russian, but you can feel the atmosphere.

That’s all, folks! Feel free to use our methods to establish a great working relationship with your colleagues! If you have any other questions on the topic or just wishing to share your secrets, don’t hesitate to contact us via the Contact form!

Categories
Uncategorized

What iOS developer should know. The hiring process at Fora Soft

In this article, we will explain how Fora Soft hires people. What an iOS developer should know and what interview stages they complete. Besides, you will also find out about how we carry out the mentoring process and how programmers progress.

Minimal hiring requirements

A developer should know:

  • OOP. This is a programming methodology based on representing a program as a combination of objects
  • Swift, Obj-C (reading the code). Swift is a programming language developed by Apple, and they use it to write programs for all their products. Obj-C is a previous language that Apple used for the apps. Even now one still can create objects with it but people mostly use Swift. However, one needs to at least read Obj-C, as older projects are written in it, and they need support
  • iOS SDK. Knowledge of main frameworks, such as UIKit (work with graphic representation), Foundation (work with network and date), AVKit (work with media), MapKit (work with maps), CoreLocation  (work with geolocation)
  • Apple Guideline. For an app to be approved for AppStore, it has to answer Apple’s requirements. Read Apple documentation to find out more
  • AutoLayout. This is a mechanism for page-making in the app, it is responsible for placing interface elements on the screen
  • Multithreading. It’s important for an app to complete many processes simultaneously. For example, to make a request into a network and show the data loader
  • SOA (REST API, Web Socket). To work with the network, one must understand its organization
  • Git. The version control system is out there to make the project work easier and make it possible to put a group effort into it. Besides, it allows keeping several versions of the same document. It’s also possible to return to earlier versions, determine who and when made a change, etc.

The selection and recruitment process

It consists of

  1. A candidate sends their CV to an HR
  2.  HR looks at the CV and calls the candidate if the CV meets the requirements
  3. HR speaks about the company and answers questions. Then an interview happens, where HR tests the candidate’s professional qualifications. The questions are related to the specific position.
  4. If the candidate answers the questions successfully, he is invited to join the next stage – a technical interview with an HR and team lead. The lead does the talking here. He asks not only about the job itself, but about the IT world as well. It’s important to know how well-rounded the candidate is. The HR then conducts an office tour
  5. We invite almost all candidates who passed Step 4 to complete a test assignment within a week
  6. The candidate sends the assignment, which the team lead reviews and sends feedback to the HR. Here the decision whether we invite the candidate to the final interview arises
  7. The CEO attends the final interview. The candidate receives some specific assignment, for example, developing a video call system. The candidate has to explain how they’d like to proceed with the task
  8. We send an offer

When I find an employee who turns out to be wrong for the job, I feel it is my fault because I made the decision to hire him.

Akio Morita, Sony founder

As you can see, Fora Soft takes the hiring process very seriously. Let’s take a look at the statistics that the HR department has provided.

JavaScript statistics (relevant for 1,5 months):

  1. 500 candidates
  2. 20% pass the phone interview – 100 people
  3. 40% pass the face-to-face interview – 40 people
  4. 30% complete the test assignment and the technical interview with the team lead – 12 people
  5. 90% pass the final interview with the CEO – 10 people

iOS:

  1. 50 candidates
  2. 50% complete the phone interview – 25
  3. 20% complete the test assignment and the technical interview with the team lead – 5 people 
  4. 20% complete the final interview with the CEO – 1 person

To sum it up:

We send an offer to 10 JavaScript developers out of 500, which means 2%

We send an offer to 1 iOS developers out of 50, which is again 2%.

We just showed you the numbers. Go with any output you deem fit 🙂

Mentoring process

The mentor is responsible for:

  • Code review. The new programmer creates a separate branch for it, according to Git Flow. Upon completing the task, the new programmer makes a merge request, and the mentor checks the result. The good mentor will pay attention to the logic behind completing the task, leave their feedback, and send it back for the refinement. If the mentor is satisfied with everything, the merge into the development branch happens. Thanks to this mechanism, it’s possible to see how the new programmer progresses. Over time, the number of comments goes down, and the code immediately ends up in Develop
  • Meetings about the developer’s weak and strong suits. After some time, the mentor will form a professional portrait of the new developer, based on the code, approach to tasks, and other teammates’ feedback. As soon as the portrait is ready, the mentor and the developer talk about everything. These meetings happen quite often, approximately once a month
  • Informational basis (Q&A). The new developer can always ask a mentor for help
  • Task distribution. The mentor determines what the new programmer can do now and what is too early for them. The difficulty of assignments grows as the developer grows

How constant development happens

  • Development plan. Every developer creates the plan of the aims. What is it? We take a period of time and create goals for each month. For example, read book X, learn technology Y, watch conference Z. Upon the completion of each milestone, we put a mark. That way it’s easy to see how the developer progresses
  • A gradual increase in task difficulty. The mentor gives tasks to the developer depending on their difficulty. The good mentor will never assign something the new programmer can’t complete. Over time, the difficulty grows
  • Lectures within the company. Anybody can host a lecture. Found an interesting technology? Learn it yourself and let others know!
  • Collective meeting attendances. We keep an eye on the IT world and meet-ups in other companies. We attend those events together, and then create a short review on them

Conclusion

From the statistics, one can understand that we have very high requirements for candidates, and there’s a reason.

The team guarantees the high quality of Fora Soft products. First, we make hiring decisions carefully. Second, this is a culture of constant development. We keep a close eye at new colleagues and their code, help them find themselves in the company, level up their skills.

Thanks to that, our products have such high quality.

You have to love your work. To do that well, you have to enjoy your work. We at Fora Soft are driven by that desire – do things awesomely. We realize what kind of a person is and whether we pursue the same goals during interviews. We never leave a new employee to be eaten by projects. We are always close to guide, give advice, and just look after.

With all that said, our clients are always happy, which makes us happy, too. We created a cool product and made the client happy? The end-user is also happy because of what we did? That’s the goal we pursue.