Wprowadzenie do GIT – Piotr Szpetkowski

Ta prezentacja jest częścią cotygodniowych tech talków w Sunscrapers. Prezentacja stanowi ogólny przegląd GITa i jego podstawowych funkcjonalności. Jeżeli chcesz zacząć pracować z tym systemem kontroli wersji, obejrzyj nasz filmik!

Czy prezentacja była dla was przydatna? Dajcie znać!

Dlaczego programowanie w parach jest przydatne?

Niektórzy programiści uważają programowanie w parach (po ang. pair programming), za jedną z najbardziej pomocnych rzeczy w ich pracy. Inni z kolei nie do końca rozumieją ten koncept – uważają go za trudny w realizacji i niezbyt racjonalny. W Sunscrapers uważamy, że programowanie w parach może naprawdę czynić cuda! Jeżeli zastanawiasz się jakie są jego zalety, przeczytaj listę stworzoną na podstawie naszych doświadczeń.

Inny punkt widzenia

Czy kiedykolwiek zaciąłeś/aś się na szczególnie trudnej części twojego kodu, z którą nie była w stanie poradzić sobie nawet twoja gumowa kaczka? Cóż, programowanie w parach daje ci możliwość spojrzenia na twój problem z innej perspektywy. Towarzyszący ci developer może wpaść na rozwiązanie szybciej niż ty, dzięki czemu nie musisz tracić czasu na bezowocne rozmyślania. Co więcej, programowanie z kimś innym pomaga zwiększyć produktywność i angażuje cię do bardziej kreatywnej pracy.

Głupie błędy

Małe błędy w kodzie są czymś zupełnie naturalnym, ale potrafią bardzo zirytować i pochłonąć twój cenny czas. Czasami jedna niewielka pomyłka jest trudna do wykrycia, zwłaszcza jeżeli musisz przejrzeć całą swoją pracę samodzielnie. Współuczestnik w programowaniu może być tutaj wybawieniem, gdyż zauważa błędy w kodzie w momencie w którym powstają. To prawdziwe koło ratunkowe oszczędzające nie tylko cenny czas, ale też twoje oczy! 🙂

Szybsze uczenie się

Każdy kto wprowadzał nowy język programowania lub nowych członków zespołu do projektu, wie doskonale jakie to bywa trudne i czasochłonne. Programowanie w parach po raz kolejny przychodzi z pomocą! Pozwala na szybsze uczenie się nieznanych zagadnień, a wdrażanie nowych funkcjonalności przebiega sprawniej. Również szkolenie kolegów i koleżanek z pracy jest o wiele łatwiejsze – szybciej się wdrażają, pracując z bardziej doświadczonymi programistami.

Zabójca “syndromu oszusta”

Wspominaliśmy jak radzić sobie z niską samooceną w jednym z naszych poprzednich postów dotyczącym syndromu oszusta: 5 Ways to Fight the Impostor Syndrome. Programowanie w parach jest jedną z metod polecanych przy walce z impostor syndrome. Dzięki wspólnej pracy z drugim developerem popełniasz mniej błędów, co skutkuje lepszej jakości kodem. Czasami twój/twoja partner/ka może być twoim nauczycielem, innym razem to ty możesz pochwalić się swoją wiedzą. Najważniejsze jest jednak to, że czujesz się lepiej, swobodniej i bardziej kompetentnie jako programista/programistka.

Umiejętności miękkie

W Sunscrapers wierzymy, że umiejętności miękkie są bardzo ważne w pracy każdego developera. Radzenie sobie z presją czasu czy docieranie się z nowym klientem może sprawiać trudności. Możesz być najbardziej utalentowaną osobą na świecie, ale ciężko będzie ci pracować, jeżeli nie potrafisz radzić sobie z ludźmi i problematycznymi sytuacjami. Tu z odsieczą znowu nadchodzi programowanie w parach! Wspólna praca z drugą osobą może być świetną okazją do nauczenia się dobrych praktyk komunikowania się z innymi. Pozwala zdobyć umiejętności interpersonalne, dzięki czemu jesteś bardziej pozytywny/a i elastyczny/a. I… stajesz się lepszą wersją siebie!
Organizujemy programowanie w parach najczęściej jak tylko możemy. To proste – szykujemy sobie wygodne miejsce w biurze i działamy. Jesteśmy świadomi, że koncept programowania w parach nie jest dla wszystkich. Nie ma nic złego, jeżeli nie do końca to czujesz. Pamiętaj tylko, aby robić regularny code review ze swoim zespołem 😉

Why Pair Programming is Good For You?

Some developers believe pair programming to be one of the most helpful things in their job. Others claim that it is rather inexplicable and unreasonable concept. We think that pair programming can do wonders! Read our list if you’re thinking why pair programming is good for you.

Different point of view

Have you ever get stuck with an exceptionally difficult parts of your code that even your rubber duck couldn’t help you with? Well, pair programming gives you the possibility to look at your problem from a different perspective. A coding partner can quickly come up with a solution, so you won’t waste your time on fruitless thinking. Not to mention, coding with someone helps to increase your productivity and engages creative approach.

Simple mistakes

Small mistakes in a code are a normal thing, but they can be so annoying and time-consuming. One little error is sometimes difficult to spot if you have to scan your whole work all by yourself. Your coding partner can be a rescue to your frustrations! A second pair of eyes notices mistakes in a code the moment they are made. It is a real lifesaver for your time, not to mention your eyes! 🙂 

Fast learning

Everyone who taught a new language or introduced new team members into a project, knows it can be difficult and time-consuming. Pair programming is a remedy – it allows you not only to teach, but also to learn fast! Onboarding new colleagues is way easier. They accommodate faster while working with more skillful developers. Also, pair programming makes implementing new features more approachable and smooth.

Impostor syndrome killer

We’ve mentioned how to fight your negative self-esteem in our previous post: 5 Ways to Fight the Impostor Syndrome. Pair programming is one of the methods that works wonders for fighting impostor syndrome. You are less likely to make mistakes, which results in a higher quality code. Sometimes your partner can be a teacher for you. Another time you can contribute with your expertise. The important part here is that you feel better, stronger and more confident as a developer.

Soft skills

We believe that soft skills are really important in a developer’s work. Coping with tough situations under the pressure of time or getting along with new clients can be difficult. You can be the most talented person in the world, sure! But work can be hard for you if you don’t know how to deal with others or react to unexpected delays. Pair programming comes to the rescue for everyone dealing with social or communicational problems. Coding with a partner can be a great opportunity to learn some techniques how to cooperate and communicate with others. It lets you acquire some interpersonal skills, making your attitude more positive and flexible. You are becoming a better teammate and a better developer!

 

At Sunscrapers we are trying to participate in pair programming as much as we can. It’s easy – we’re just grabbing a partner, preparing a nice spot somewhere in the office and letting it roll. Although we are aware that pair programming is not for everyone and it depends on personal preference. If it’s not for you – that’s cool! Just be sure that you’re doing code reviews with your team regularly 😉

Nature of Computer Program – Paweł Święcki tech talk

This presentation is a part of our weekly talks. This talk is about relation of computer program to physical world and to human mind. Are programs purely physical? Or maybe they are only in our heads?
Watch the video to find out and let us know what you think!

Slides are available here: Nature of Computer Program

Working Time: Our Simple Philosophy

Working time and productivity are widely disputed subjects. What’s more important – the amount of time spent on something or visible work results? We’ve tried to answer those questions at Sunscrapers. That’s why we’ve created a work system that functions perfectly in our company.

Semi-flexible working hours policy

Flexible working hours come with some advantages and disadvantages. We know that they increase employee’s morale and productivity, but measuring employee’s performance might be difficult. That’s why we gave our team some autonomy on their timesheets. Most of their working hours should fall in a 9AM – 5PM local time slot. Flexible working hours make our lives easier now. For example, catching up with clients from different timezones is easy as pie. We are simply choosing an hour throughout the day that suits both sides. Also, handling personal matters during the day is not an issue anymore – they are simply not included in the working time.

We strongly believe in a team spirit, but we also respect individual preferences in working hours. Some teammates are early-birds and they are working from 7-8 AM! Others prefer to start and finish their work routine later. It depends on a person, but everyone tries to find out what schedule works best for their productivity. We’ve mentioned how famous people planned their days in our previous post ‘How to Plan Your Day Like a Genius’.

Time tracking software

We use Harvest – the timer to keep track of our work in the real time. It’s a small but incredibly helpful tool, not an authoritarian breath of the supervisor. Our clients know how much time was spent on their projects, so it’s easier to keep track of all billings. For us it’s easier to manage flexible working hours and remote work. What’s also really important is that everyone can analyze their working time to improve their productivity.

Remote work

Few people from our team are not in our office on a daily basis – they work remotely from different Polish cities. Some companies struggle with remote employees, but we are skillful in managing our remote cooperation! Not only our colleagues from Poznań, Szczecin or Kraków are “remotes” but also Warsaw based teammates from time to time. Thanks to the remote solution we can for example work from home if we have a minor flu. Our productivity is still high in such case and we’re not risking getting more ill or infecting our colleagues. While working remotely, Harvest is particularly useful for tracking working hours. Also Slack – the instant messenger, can do wonders! Real time messaging certainly bridges the distance between colleagues and clients.

 

We’re really excited to share our work routine with you. Transparency and simplicity of those guidelines makes our work easier. We manage our time in a more deliberate way, so we are simply better versions of ourselves. Tada!

 

Our work culture: weekly tech talks

image 
What are weekly tech talks?

Every Thursday at 4:30 p.m. our team gathers in a conference room to participate in a presentation prepared by one of us. The topic of the speech can concern tech (IT, project management) and soft skills (work culture, communication). The main rule is an appropriate timeline: we limit our presentations to 10 minutes and leave the remaining time for questions and discussion. Ten minutes is more than enough time to present a compelling and effective speech. Every presentation is recorded and a speaker can decide whether to publish it or not.

The power of soft skills

 

 

There are many reasons why we’ve introduced Thursday’s presentations. Tech talks are connected with different expectations, challenges and results. They support soft skills’ development – we exercise public speaking, teaching and effective communication. That’s one of the most important reasons why we’ve started a journey with presentations. We step out of our comfort zone and learn new things which is a huge value hard to gain in other conditions. Thanks to these presentations we feel comfortable at conferences and IT events (as participants – during networking, as lecturers and as organizers of PyWaw meetups and PyWaw Summit). Soft talks also improve our language skills (many presentations are in English). Even today there is not that many IT companies that appreciate soft skills, and invest in developing the soft skills and look for them in potential candidates.

Professional development

 

On the other hand, the goal of tech talks is to help us develop professionally. These presentations create a possibility to systematize our knowledge about a particular topic and introduce new points. What’s more, we stay up-to-date with the latest technology news (new libraries and technologies are a frequently chosen subject). Finally, tech talks diversify our daily work routine and learning process, additionally guaranteeing that we have time for self-development.

image

The foundations of discipline

The key to success in giving a good presentation is discipline and preparation. It is extremely important for the presenter to follow the time guideline. Preparing 10 minutes talk isn’t as simple as it seems. It requires adding or deleting slides and a few rehearsals to make sure that you fit within your time. Learning the whole presentation by heart is difficult and time consuming. Instead, the speaker should try to learn key points he wants to include and come up with clues to remind himself when to change slides. A presentation should be well-structured – time spent on each topic should be allocated in a direct proportion to its importance. The best way is to start with an introduction which = overviews the subject, then go through main points and summarize the talk with key conclusions.

A collaboration really works!

Our teammate, Paweł, volunteered to be a supervisor of the presentation routine. His role includes administration tasks (managing the calendar, collecting topics and gathering people before the presentation, setting up a video stream) and encouraging colleagues to prepare a speech about a chosen topic. Robert, on the other hand, is our ‘video guy’. He records all presentations and edits them afterwards. Finally there comes Beata. Her role is to add presentations to our blog and share them with the world through social media.

Why do we record presentations?

We pay huge attention to recording because it motivates the speaker to prepare himself well   and assures a high quality presentation. Why does it matter so much? We engage the whole team for 20-30 minutes and we don’t want to waste anybody’s time. We also become independent of somebody’s time and availability: a person interested in the subject can always watch the talk later. We have already a solid base of valuable presentations on various topics and we refresh them when we need a revision of a particular topic.

Let’s talk about effects

These talks show who we are in an authentic way – everyone can see who we are, what we do and where we work. The whole initiative is coherent with our mission statement and work culture. We share our knowledge not only with our Warsaw based team but also with our remote teammates and the broader public. Our latest idea – inviting our clients’ team to join our tech talk – has received a great feedback, which then inspired us to think about organizing a joint workshop as an evolution of this concept.

Check out 3 examples of our presentations: