Why nearshoring in Poland is a good choice?

Growth and development of bussineess means facing a lot of challanges. One of them is definitely deciding how much investment you can put into developing projects. Nearshoring in Poland allows to get the job done and cut the costs significantly.

When developing in-house team to certain projects is simply too expensive in current situation, the solution is easy: you find somebody to do this project for you for lower cost.

That’s why terms like outsourcing, offshoring are so popular right now. I would like to describe slightly different, efficient way: nearshoring, particularly in Poland.

What is nearshoring?

Nearshoring is derivative of offshoring as you’ve already probably guessed. It means outsourcing processess to companies in nearby countries, very often sharing a border with the target company.

When it comes to Europe, it’s safe to say that even countries that don’t share same borders can nearshore, e.g. company with headquarters in London can easily cooperate with company in Poland, even though it’s different time zone. Distances aren’t that big to become a problem – it’s just 2 hours flight.

Why nearshoring?

Nearshoring has quite similar advantages as outsourcing and offshoring:

  • Lower costs – it’s plain and simple and most important advantage. Whether we talk about production costs, research, labor and living costs, you name it.
  • Much larger talent pool – you can hire professionals that work at the same quality standards as in your country.

But there are some advantages unique only for nearshoring:

  • Same time zones (or similar as I explained before) – no more pulling an all-nighter to consult the progress with company on the different side of the globe.

    Employees will appreciate it and the risk of staff-burnout drops significantly. And you won’t have to worry about quality of code caused by bleary-eyed developer on graveyard shift.

    By eliminating time difference problem you will also gain optimum time-to-market schedules and you can focus solely on developing your product.
  • Few cultural differences – the same continental region means fewer cultural differences you will face (check the video below, perfect example of this is: how an European can know when Japanese people want to ask a question about your presentation, because they don’t rise hands. Answer? Easy, it depends on how bright their eyes are).

  • Still cost effective
  • Faster problem solving – when problem occurs partners can collaborate faster and easier to solve it. There will be no unnecessary delay caused by different time zones
  • Proximity – short distances allow to more frequent and less expensive face-to-face meetings and that will definitely boost productivity of the collaboration. It will also allow your full involvement. Here at Mood Up we are keen to send out our team members to the client’s headquarter. It’s often important to work closely together at certain stages of projects.

Why nearshoring in Poland?

Moving your IT processes to Poland is a smart move. The population of Poland is larger than Scandinavian countries combined. Every year over 40,000 Polish IT engineers gradute.

When it comes to new technologies, Polish engineers are considered one of the most competent in Europe. Thanks to European Union and Schengen area membership labor and information can be freely exchanged.

Polish culture is European and Poles have no problems in adapting to other countries mentality. They can communicate in English well.

Another important factor is that Poland is accessible from every major European city within 2 hours and prices are very competetive.

Polish economy is described as the one showing constant growth, high level of trust and low level of corruption. What can be said about this country is that it is stable both eonomically and politically.

All these factors ensures stability, flexibility and scalability which makes locating IT processes in Poland very attractive.

Conclusion

While growth of business means more and more challanges, offshoring is one way to be able to reduce costs. Nearshoring is very interesting and promising alternative. Position of Poland makes nearshoring here really beneficial for companies from all over Europe

Why client’s full involvement is a recipe for success? (Pt. I)

Great app at the end, that’s the goal. By that I mean a succesful product, something you will be proud of. Your involvement is important if you really want to do this. So let our journey begin, a quick one divided in parts.

You’ve already heard about waterfall methodologies, but Agile means athletic (Rio 2016 Olympics, yes) and we believe in it here at Mood Up Labs, that’s why we want you to be involved as much as possible. In this post I will quickly describe our aproach.

So really, why do we need your full invlovement?

this-is-how-we-do-it

This picture is the perfect example of how we work, we solve things, just give us a puzzle

Decisive argument will be that planning phase is essential, we need your involvement because we need to know what do you want us to build.

Your involovement is the key for success

You are the first user of your app, aren’t you?

As a first user, you will be able to know exactly what you want and won’t and you will be able to communicate your desires. What features will be involved? What would you like in next release?

You are in charge and the best part is: after every sprint you will get release, sometimes after the first one.

Usain Bolt get's that

Usain Bolt get’s that

Once you are first, you will be able to analyze your strategy, correct it, and be first again – said every winner in the game.

This is our approach and let me quote our Project Manger – Wojtek, he puts real essence into this in one sentence:

“Planning phase is very important: the exact scope of a project is defined, so we will know what to do and how to do it.”

I could dwell on that, and I will, what’s your’s opinion on planning or client’s involvement?

Why code review is so important?

It’s not in human nature to be able to check your own work unbiased. Editors are catching mistakes for authors and similar help is needed when it comes to authors of software – developers. That’s why code review is so important.

“If debugging is the process of removing software bugs, then programming must be the process of putting them in.” – Edsger Dijkstra (Dutch computer scientist, winner of the 1972 Turing Award)

Although purpose for code reviews varies a lot depending on environment, there are 3 main goals that every code reviews share:

  • Teaching and knowledge sharing
  • Ensuring coding standards
  • Defect-free software

Other very common goals are security, scalability, maintainability and complete unit tests.

How does it work?

“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” – Brian W. Kernighan (Canadian computer scientist, co-author of “C programming language”)

That’s why code reviews are so important.

Code review is the examination of code performed by developer (or developers) who didn’t write it in order to provide feedback. Feedback could be both negative and positive.

Reviewers are often working outside the project to maximize objectivity, but also to ensure that code written is readable and clear to everyone, not only for those deeply involved in the project. Typically reviewers are following checklists to find common mistakes and validate the code so that it can meet company’s coding standards.

Except for demos or experiments, it is crucial that code reviews take place during all stages of development. It is very important to perform such reviews even in final stages (when everyone is more focused on meeting deadlines), this is company’s and developer’s insurance for keeping company’s coding standards and can greatly reduce number of bugs. This means successful launch and less money spent on QA.

Code reviews help save your money

Finding bugs during development will be cheaper than finding them in QA, the sooner bug is found, the cheaper it is to fix it.

It is very hard for developer to find his own mistake, especially when a lot of features are added to the app (not always good a idea) but it can be detected more easily by someone else (fresh look effect). That’s why reviewers are looking for common mistakes and also focusing on finding those that are typically harder to find such as:

  • thread synchronization
  • error conditions
  • accounting for reference-counting
  • resource leaks
  • security problems

Maintainability

Software is not easy to maintain and it generates costs. It is especially true when one developer finishes the project and another one becomes responsible. It can also be difficult for a developer to know his way around the code he wrote 9 months ago.

Developing software doesn’t end simply with launching, it’s constant process so it’s best to ensure that code is clear for everyone and it can be modified when needed.

Code reviews help keeping code organized and adding adequate comments which can be priceless in the future – a person uninvolved, new to the project, will be able to read portion of code and understand it.

code-review

Learning and sharing

Every project is different and there are some unwritten rules. Tacit knowledge must be offered to people that are new arrivals to the project. It is impossible (or nearly impossible) to write this down, this kind of knowledge is usually acquired by making mistakes. Code reviews are the way of transferring knowledge between experienced developers and rookies.

Conclusion

Code review helps to launch successful product and save money. It is also great way to transfer knowledge. Senior developers can offer advice and their wisdom to juniors, and juniors help them by finding mistakes that seniors couldn’t see on their own, because they were so deep in the project. Code reviewing should be part of every stage of development.