1 year working at Plataformatec

One year ago I joined Plataformatec and today, I’m going to tell you some practices that I have learned while working here during all this year. I hope you’ll find something helpful to improve your team or your company.

Sustainable work hours

Some companies expect their employees to work overtime when a project gets close to the deadline and it’s not finished yet. When I came to Plataformatec, I discovered that the default here is to work in a sustainable way (40 hours/week). There have been a few exceptions, but we are not encouraged to do so, and the extra hours can be compensated as well.

Software development tools and practices

At Plataformatec we choose to start with a small set of basic tools and practices, adapting as we learn about the project and the customer.

One of the practices that I liked the most and had no previous experience with is the retrospective meetings. If you never heard about it, it’s simple! It’s a meeting that we do at the end of an iteration, reviewing everything that happened: not only the good things, but also the ones that we need to make better, so that we can plan actions to continually improve. For me, it is a very pleasant meeting because it’s an opportunity to recognize the good work someone has done or to search for a solution to a recurring problem. One interesting fact is that we also use retrospective meetings internally, for the whole company itself.

We don’t cut corners

We really care about our customer’s products and the code quality. We don’t like adding ineffective, incomprehensible or quick-and-dirty code (also known in Brazil as “gambiarra”), because we know that it may cause problems in the future.

We know that it’s not that easy to avoid bad code and beginners mistakes, but there is no definitive solution for this kind of problem. Here at Plataformatec we use two tools to achieve a greater level of code quality: our guidelines and a simple process called code review via pull request. If you’re going to adopt just one of these practices, choose Code Review.

Every single line of code matters, that’s why it’s better not to put all that responsibility on just one person’s shoulders. The code review process can help with that. When doing code reviews, everyone in the team is accountable for the code that is being shipped, not just the developer that created the pull request.

Before working here, I thought pull requests were only an open source practice, that it didn’t have place in commercial projects. It was really mind blowing to see how it works on a daily basis. We reduce errors, ask for help to an experienced programmer, learn about features of frameworks and languages, discuss algorithms… it is an awesome communication tool, and the best part is, all that communication happens in the context of the source code.

Focus

It’s simple: we do software development, we work hard to improve the way we do it and to become one of the best references on it. The whole company works as a team, and everyone shares the same goal. It means that the salespeople close the deals with terms that developers and managers can work in a healthy and challenging environment, and, most importantly, the customers know what to expect from us.

Knowledge sharing

It was a surprise to me when I came here and saw that all of my new coworkers love the programming community and that most of open source work is done during their free time. We are frequently encouraged to contribute to open source, attend to local and international events, write blog posts, present talks and discuss software development subjects on our Hacking Evening every Tuesday. Best of all, you don’t need to do it alone, there is always someone to lend you a hand. Knowing these people and working with them motivates me and help me love more what I do every day.

That’s all I had to say for now. Working at Plataformatec has taught me a lot of good lessons and I know I still have a lot of things to learn. I selected the practices that I liked the most and wanted to share.

Do you have any practice that you appreciate? Tell us about in the comments below!

  • Flavia

    Congratz! :)

    I’m about to complete 1 year at HE:labs too and I’m writing about it as well! I hope you don’t mind it because I learned basically the same as you did. :P But there’s something nice that you do and we don’t. The Pull Requests on the commercial projects. So, I’m gonna talk about that on our next retro and, hopefully, it will change! Thanks for sharing!

  • Soraia Andrade

    So cool !! Its a lot of knkowledge for just only one year worked!! Nice culture

  • Marcelo Jacobus

    Congratulations Ulisses! You are very lucky to work with the most wise rails ninjas!

    I was wondering if you guys do pair programming on daily bases, and if you do so, how that has contributed for your professional growth.

    Thank you for sharing your experience.

  • Ulisses Almeida

    Hi Marcelo, thank your for your asking. We do pair programming occasionally, mainly in tasks when a developer needs some help. But even when we do pair programming, we also open a pull request for everyone in the team to review.

    The thing I like the most in pair programming is seeing how a experienced team member works. For example, I can find some anwsers for how they approach the task and start to type the code, how they debug, what are they editor shortcuts, the bash alias, git commands and other tools they use.

    This practice is also useful for me when I have a lot of doubts in a task, with a partner at my side we can avoid misconceptions, create a better code for review and :shipit:.

    I like this way, not 100% of time, only when someone or task really need a special attention.

  • Marcelo Jacobus

    Nice. Thank you for your response!

  • Ulisses Almeida

    Of course I don’t mind, actually, I’m excited to know about the practices that you have learning working at HE:Labs. :D

    I hope when you start to use PR in your daily basis let you improve the code, knowledge share and make programming even more joyful. Please, when you start to use let us know about your experiences.

    Thanks!

  • matheusml

    Retrospective meetings are great! Here at http://www.passeidireto.com, we do it every first and third friday of the month, but we have something different that I like very much. We all choose someone that we considered to be the ‘best of the sprint’. This gives a lot of motivation for the team for the next sprint.