Carolina Bigonha is one of the most focused and clear-minded people I know. She was a year ahead of me at the university, and a source of inspiration. I had the opportunity to talk more to her in a conference where she was presenting her research on social networks. She is an engineer who loves her work and also has a passion for business development; it was a great privilege to talk to her about coding.
WLAD: Tell us about your career history. What have you worked on and how did you achieve your technical experience?
CAROL: I started in university: I got my bachelor’s and master’s degrees in Computer Science (CS). In my earliest years in the university, I teamed with eight other partners to form a startup called Zahpee at that time – now it's called Hekima. My professional life is basically build upon what I learned at Hekima and during my studies and research in university.
Both these paths were hard in their different ways. In the university we racked our brains with tons of academic work and lots of coding. I learned to code in the university. At Hekima I learned to deal with the business world. I had the opportunity to work with nearly every kind of software development. I’ve dealt with infrastructure, user interface, algorithm development. Many boring and bureaucratic things, but also a lot of cool stuff.
Now, it has been about a year that I’m a bit distant from coding. I have assumed a product management role. It's still technical, but my focus relies on making sure we build a product that is actually used/wanted by the market. Most of the time, I work directly with the development, business and sales teams, assuring we're developing the right product. And a product whose cost estimate is compatible with the company’s budget.
WLAD: How can these new skills help in coding? Do you think that it’s important that programmers also learn about product design?
CAROL: Definitely. I realized, deep down, that programming is all about having means for achieving a goal. This goal has a complete influence on how you are going to do things. For instance, the work behind a project aimed at the thousand of users, such as a mobile app, is radically different from the work to develop a solution to be used by ten big companies. So if you don’t understand the product's purpose and its goals, you’ll end up doing work that is much more mechanical than intellectual, just replicating stuff. It’s very important to think beyond the code.
Coding in Business vs. Coding in College
WLAD: Do you think there is an intersection between the university and startup development? What skills from the university benefit the startup, and which skills from the startup benefit the university?
CAROL: There is an intersection and it’s precisely the research activity. In the environment I work in, of constant innovation, if we don’t cultivate the habit of research, we’ll end up falling behind. That is a lot of what I learned in both my Bachelor and master’s studies. Of course, what you learn in classes on theory and how to think and reason is extremely important when you're running a business. On the other hand, entrepreneurship teach us to be resilient and persistent. This is definitely something you take not only to the university but to your life.
Unfortunately, in Brazil, there is a big gap between the business world and the academia. Overcoming this gap would benefit both sides enormously.
WLAD: For aspiring programmers, what's the importance of doing a bachelor’s? Is it worth the effort, or maybe a technical course would be better? What about a master’s — do you think it was positive?
CAROL: The added value from university studies, both bachelor’s and master’s, is beyond programming and code. It’s in the deeper understanding of the theory and the reasoning of CS. That makes a huge difference in the workplace.
WLAD: What does someone wanting to be an exceptional programmer needs to learn that isn't taught in university?
CAROL: The curiosity to always try new languages, techniques and tools. The university is about the fundamentals. Also, I find it important to always look beyond the code and theory into what products could be built or what problems could be solved by everything we learned.
WLAD: When you are hiring, considering this culture of looking deeper and thinking more on the product, do you take into consideration abilities beyond technical skills?
CAROL: Of course. The technical evaluation is essential, but we're always looking for more. We want to work with people that love what they do. She or he must have a high level of excitement, autonomy and responsibility. We need people that take the initiative to do more than just sit and program their assignments. The person must question things and know how to work as a team.
There are several subjective aspects that reveal a bit the person’s profile. So we ask what they do during their free time, if they wish to live abroad, what are their plans for the future, so we have a general idea of who the person is.
WLAD: Maybe people are often unsure how to answer. When prompted whether they want to live abroad, they must probably wonder what would be the correct answer, what kind of people you're looking for.
CAROL: There is no correct answer. We are just trying to understand who the person is and if she would fit in. That's our main concern.
WLAD: What are the most important elements in Zahpee’s culture?
CAROL: We really value teamwork, so the deliverables we do are authored by everyone, and everyone is accountable. We strive to innovate while being laid back. We work hard, but at the same time having a lot of fun. We value people, and we treat everyone with respect. People can be titled developer, salesperson, but in the end everyone is human. So we put people’s needs in first place. These are the strongest aspects.
WLAD: When you are searching for technologies to be implemented in the company, how does that process work? Do you evaluate, test it before? How is it done?
We insert many activities in your routine to assure people will have time to research and to try new things. Each developer has a certain number of work hours for doing his or her sprint tasks, but there is a portion of time that is reserved for working with new things. These new things are presented to the rest of the team in the end of each cycle.
Moreover, about once per month, we have a hack day: we split the company in groups, or pairs, and we implement something new.
WLAD: Awesome. I want in on your team’s hack day!
CAROL: Cool, we are thinking about doing a “hack week” in the end of the year, and we are considering inviting people from outside the company.
We also do the “Zahpee Jam.” The whole company is split in mixed groups of designers, developers, and analysts, and each group make a product jam. Each team must write a business plan together with the product’s prototype. It’s a two-day event. The event ends with groups pitching their product ideas for the whole company. Afterwards, there is always a happy hour. It's always really fun.
This way, we manage to break the routine and insert these small spaces dedicated to pure innovation. It’s a necessity. If we don’t have a set time to do it, we end up never doing it.
WLAD: I find it interesting that you use Scrum. Which Scrum aspects have you already implemented? Did you implement pair programming, stand-up meetings, code review? Which things do you do, and what is their impact? What do you think are the coolest and most important?
CAROL: We use a lot of aspects of Scrum and Agile, but many things were also adapted. To list a few things, we use the Kanbam boards for validation, we do the stand-up meetings, planning, review, retrospective.. We just implemented code review. We also have a feature validation process, which works well for us. A developer codes the feature and implements unit tests, then another developer – who was not involved in the task – tests it. Next thing is a validation with the PO (project’s owner), which is me. Then it goes back to the developer’s integration test, and finally to the end user.
Scrum and Agile basically help us to plan ahead and implement just enough. We need the flexibility to improve the product interactively.
The Golden Advice for Entrepreneurs
WLAD: Do you have any recommendations to give for those programmers who are thinking of doing a startup, or a programmer who wishes to start his or her own business?
CAROL: Looking back at our history, one of the main pieces of advice that would have made the difference and changed our history is to never take your eyes off of the market, or off of your customer. As a programmer you want to improve things, make it more efficient, make it perfect. But sometimes, you are doing this to product X, but the market wants product Y.
You must understand what is it that the user really wants. Then (after figuring that out) you may work on that brilliant algorithm that will actually improve your customer experience. Not the other way around.
WLAD: Indeed, if I had that advice when I did my first business, it would have made a radical difference.
CAROL: It’s a part of the programmer’s persona, to want to do things in a perfect way, to produce excellent engineering. But sometimes, people want much less than that.
WLAD: Yes, that’s true. Following this line of thought, what kind of advice would you give to the programmer that wants to achieve mastery in his job?
CAROL: I think, practice a lot. You have to try different things. The best programmers I know are hyperactive people; they are always trying a new way, experimenting with new algorithms, with new programming languages, if this new technology works and fits them better, or if it doesn’t. Because only by doing this, you win both practice and agility in coding and knowledge to choose properly.
A person that knows only two languages, two ways to tackle a problem, will have worse decisions than a person who is always testing a bunch of methods. And I think it’s really hard to do this, because everything changes very fast. For you to follow, it’s required to dedicate a phenomenal amount of time. But I think that’s the way to go.
Music and Code
WLAD: Do you listen to music while coding? If so, which type? And what is the effect?
CAROL: I listen to music 100 percent of the time I am coding. We work very close to each other; everyone in the same room. And since we do a lot of pair programming, people are always chatting coding ideas, and the room stays noisy. So if I don’t plug in my headphones, I can’t do it. I use headphones whenever I can during my work. I listen to all kinds of music, from classical to rock to bossa nova. It depends on how noisy the environment around me is and what I must accomplish at the time.
WLAD: Do you think different tasks require different music?
CAROL: Absolutely! I can’t write Portuguese listening to music in Portuguese, for instance. But for coding, I like almost everything. I love music.
WLAD: Thanks a lot for sharing all this information with our readers. Do you have any other final considerations?
CAROL: We often come out of the university as great makers, but we are not used to look at the world seeking for opportunities. There's plenty to tackle and we do not give that much thought on what real problems we would be able to solve using our coding skills.
How to change the world we live in using technology?
I wish we were all introduced to the world of entrepreneurship earlier in our lives, so we could find out about what we really love, and dive in!