Good Practices For Software Engineering Teams
You are always tired, you live waiting for it to be Friday, you feel that your boss enslaves you, you have no opportunity to grow…. If you feel identified with any of these statements, you should really consider changing your work environment. Traditional companies with bad, strict bosses and inflexible hours are the thing of the past. The world is evolving and it is time for work to catch up with this change in modern practices.
Build Collaboration.
Your co-workers are not your friends. It is true that being friends and having a relationship outside work facilitates interaction, however, you must be aware that it is not necessary. Collaboration is based on respect and trust! You may not like a person in your team, but it is important for you to trust that person and always provide support. As team members, you share a common goal, by supporting them to achieve their objectives you are also fulfilling part of yours!
Have a Good Leader.
Don’t have a boss. Your happiness in the workspace is based 50% on the relationship you have with your manager. That is why today’s teams need a leader in order to succeed. Unlike a boss, a leader is the butler of the team. He constantly works to remove roadblocks that could distract the team. A leader can identify the low performers in the team and help them to increase their performance, so that the team as a whole can excel.
Learn to Fail.
Don’t be afraid of failing. People often see failure as a bad thing, however failure is the fastest way to learn. Every time you fail or things don’t go as expected, you must document and learn from your mistakes. Do not hide your tracks, they can serve as learning for someone else in the future, even for you. A good leader will incite you to try new things, even if that means a possibility for failure.
Don’t be a Genius.
You’re not one of a kind. Our natural instinct pushes us to wanting to be a genius and doing all by ourselves. But you must leave your ego behind and learn how to collaborate effectively. Not one of the most popular software or programs have been created by a single person. Writing successful software takes a team effort. It is important for you to be open to criticism. A popular way is by making code reviews regularly.
Get Social Skills.
Being a software engineer is not just software. The software engineer profile usually are people who like to code alone for long hours. But there is a whole other range of skills that are needed to become a successful developer than coding skills and knowing every method there is. Knowing how to effectively communicate your problems and understand what your collaborators are facing will make you improve exponentially.
Select the Best Programming Language.
Python. Just kidding, there is no such thing as the best programming language. There is, however, the best option for the current project. The selection of the programming language will depend on a number of factors such as productivity, performance, reliability, community of the language and what you already know. Together as a team you must balance the strengths and weaknesses of each programming language and select the most appropriate. Remember: don’t be afraid to try something new and fail!
Tech Knowledge of the Week: Compression
Data compression is the process of encoding and modifying data in order to reduce its size. It is normally used when talking about computers and the data they hold, but compression actually started when trying to reduce our language in order to send electrical signals over great distances. This became the foundation of what is Morse Code. This kind of code implements a variable-length code, which helps to map the letter using a variable size of signals.
Why is it important?
Today there is a plethora of information available in the internet, from photos to videos to web pages, if we weren't able to compress this data our hard drives would probably become filled within weeks and surfing in the internet would not be so seamless. With proper techniques, data compression can effectively lower a file by 50% or more, greatly reducing its overall size.