By April 27, 2016 Development, Website

Morten Primdahl, CTO and Co-Founder at Zendesk

lessons learned morten primdahl zendesk

1. Scaling your tech is a challenge. Just do it.

We went from a scrappy start-up of 3 guys with everything in their heads to a big organization that can take on scalability, operations, databases and product development. If you really get passionate about business in your life, that’s where you need to go.

When you grow from a couple of dozen guys in 2009 to the size we have today, the company changes a lot all the time, and you need to adapt to that. The challenges are both technical and organizational. Scaling your business means growing fast and hiring engineers. And that’s a big global challenge. To put it that way: It’s just hard.

2. Follow your passion

Do what you like. Do what you’re passionate about. Don’t do whatever anyone else thinks. Figure out how to be yourself, and beat your own path. It’s going to be all right.

3. Face time is essential for remote teams

We use a lot of travelling to bring people together because face-to-face time is really valuable. Even though we have Skype and Google Hangouts and Flowdock, we try to bring people together a few time a year. When you join the company, you spend two weeks in San Francisco and meet the team, and get to understand the experience.

Read our interview with Morten.

Sunil Sadasivan, CTO at Buffer

sunil sadasivan, cto at buffer

4. Roles are more important than job titles

In an unnatural hierarchy my role is considered to be the CTO. But in a natural hierarchy, someone can take on some of the roles that I have that if they feel fulfilled in that way.

Therefore at Buffer, job titles have started to feel quite odd – since most of us take on quite a few different roles.

5. Invest in yourself

Mark Cuban says “The best investment you can make is in yourself,” and it’s compounding really.

Even though it didn’t work out with my previous startup, it was probably the best thing that I had ever done because it was an investment.

I invested that time to focus on myself.

6. 100% test coverage isn’t that important

We’re not too concerned with 100% test coverage.

It’s more about using your best judgment on what’s really critical and what will break, and then add testing to it on that way.

Read our interview with Sunil.

PJ Hagerty, Team Lead at Engine Yard

pj hagerty engineyard inteview and lessons learned

7. Challenge yourself in boot camp and free online courses

There’s a huge shift going on about technology education. Technology is moving so fast as it is, and more and more people are realizing that we need to get a grip on it.

So I’ve always been an advocate of going to do the weekend rails bridge course just to challenge yourself and see if its something you’re interested in. It’s much better than spending forty grand and finding out that you didn’t really like it.

8. Test first, release often.

One of the things that we are very espoused to is the idea of testing first. There is very little that goes into our products that go public without a high standard of testing.

I don’t think there is any way to make everything a hundred percent bug proof.

Read our interview with PJ.

Rani Angel, Head of Web development at Infragistics

rani angel infragistics lessons learned bugtrackers

9. Managing remote workers is a challenge.

The biggest challenge is definitely working on a globally dispersed team. It is a huge challenge. One of the biggest struggles is when the overlap between the times the two teams are both working is only a few hours.

The challenge is how to make sure that as a manager you are going to keep on top of everything. Plus, you want to make sure that your team is shielded from the the pain of not being in the same location.

10. Explore various industries

I would have loved to have different opportunities while I was growing up, like being able to do an internship, do some marketing, do a little bit of sales to be able to understand the areas a little better instead of having to wait so long.

Having experience at a younger age would have changed my perspective a lot more and would have made me more comfortable as I moved into the workforce.

Read our interview with Rani.

Thomas Schranz, CEO at Blossom

thomas schranz blossom lessons learned

11. Learn how to code no matter how old you are.

I thought: “Yeah, I can’t program, and learning to program is really complicated.” I already knew back then that there are children being younger than me but already started with programming, and I thought: “Yeah, I’m already late.” And then, just by accident, I learnt it.

I would recommend to anyone, literally anyone, in any age group to at least just start programming.

12. Learn how to say “No”

Sometimes saying “no” is harder than actually doing this thing.

I think one recurring challenge is saying “no” to requirements. If it’s from a customer, if it’s from your own team, if it’s from yourself.

Saying “no” to an idea doesn’t mean that the idea has to be bad. Saying “no” is the more taxing thing. We would have to explain it to everyone involved, convince them and then basically leave the meeting with low motivation for everyone. And just building the thing, even knowing it isn’t the right thing, is the easier thing to do.

Read our interview with Thomas.

Leif Singer, Head of Product at iDoneThis

leif singer idonethis lessons learned

13. Follow other developer’s practices

I think the main thing there is just to use it – to practice and to get better at it, and to follow not so much the technologies but the practices that people are exploring. Staying on top of current practices at this point is really more important for us than technology.

14. Don’t be afraid to remove features of your product

We also remove features from time to time because we realize nobody uses them or not enough people use them.

Removing the technical cruft that isn’t used anymore then is a kind of an issue because it’s not really refining the product but it’s a task. And this task goes into Asana.

Read our interview with Leif.

Eric Elliott, Founder of Fight Poverty with Code

eric elliott fight poverty with code

15. Choose your programming language wisely

JavaScript has the potential to help a lot of more people, because it’s the most popular language in the world. If you write a library for JavaScript, it’s going to help a lot more people.

16. Real-time features will be a huge (and complicated) thing for developers

We’ve got a lot more real time and collaborative features. Multiple people manipulating the state of the app at the same time is enormously complex.

I worked on the Creative Cloud team at Adobe. Creative Cloud is all about collaborating with people on creative projects. I got to see firsthand how complex managing that collaboration can be and how hard it is to make a really good user workflow for interacting with other users without stepping on each other’s toes.

Read our interview with Eric.

Johannes Nagl, CTO at Swat.io

johannes nagl swat io lessons learned

17. Standardise coding styles

When migrating developers from creating short-lived marketing campaigns to long-lasting, always-on SAAS-solutions, it’s a big challenge to implement a complete new mindset regarding architecture, code and sustainability.

The agency projects where often one-man-shows, where different coding styles were applied. Standardising these styles was one of the first efforts which paid out very quickly. Using tools like vagrant or continuous integration helped to focus on the product even more.

18. Developers need to internalize testing

In web development, as it’s not really a rocket science like managing a nuclear plant, I deeply believe in testing as “yet another discipline, every developer has to know and has to integrate in his/her workflow”.

So, dedicated resources are a good way to maintain an already well-established testing environment. But it’s more important that every developer has internalized testing in his/her mindset before.

Read our interview with Johannes.

Florian Motlik, CTO at Codeship

florian motlik interview on codeship for bugtrackers

19. There’s no common understanding of the role of a CTO

The problem with the CTO role is there’s like a million books about CEOs. There’s not a lot of books about being a CTO, because it’s also so different in different companies. I’m a very external facing CTO. I don’t manage a team.

I’ve never really managed a team internally. Once we really grew, where we really needed more management, we got a VP of Engineering.

20. Infrastructure as a service will become a huge thing

The cloud is still a collection of services, and a collection of services is still something you have to manage, which I don’t like to do. What we should have is a service for that.

21. There’s a great trade off between complexity of testing and speed of testing

One of the biggest trade-offs that we see is the trade-off between the complexity of test and the speed that you want to have.

Best case, you want to test everything in every browser to make sure it work everywhere, and run the whole suite through everything. But that takes forever.

That’s a very big trade-off to do and you have to find the right balance.

Read our interview with Florian.

Christian Braun, VP of Engineering at PAYMILL

christian braun paymill interview

22. Hiring great developers is a challenge.

Of course, you have different challenges as an engineering department. One major challenge is the question of how to hire good developers, because everybody wants them. You also have a challenge that you have enough developers in order to work on a lot of product improvements.

23. Make communication plain & clear

We estimate change requests with t-shirt sizes. Then the management can get a clear overview about costs and priorities.

Read our interview with Christian.

Way more learnings

Well, besides these 23 valuable lessons, there are literally hundreds more which we’ve gathered from these outstanding interviews.

Besides the mentioned interviews, there are also way more on bugtrackers.io and I’d recommend to give them a read. We’ve gotten some great feedback on that interview series and I’m thrilled about further interview partners we keep adding to the site. Personally, I’ve gotten a huge return from these insights. And if you’ve been following bugtrackers.io, I hope you’ve also learned a lot.

So, I’m pretty curious. What’s your biggest takeaway? Let us know in the comments or on twitter.

PS: If you prefer slides, I’ve got you covered. Check out the following Slideshare presentation with some of the best lessons learned as well:

Source: UserSnap

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.