Many people working on add feature/improvement on legacy code. Not many people working on designing from scratch and write code for brand new system. I was wondering how can we get the opportunity of the second one.
I have a great mentor (and my hero) Chris Gillum. He is the author of the Durable Functions. I can’t explain the detail, however, He had a lot of opportunities to design from zero and build very important systems from scratch. I asked him about it and I’ve got great answer from him. I’d like to share the secret with you.
He shared with me about the mental model of the strategy. We need two buckets for getting the opportunities.
If you want to get assigned an innovative project, you need to get reputation from business management. “Hey, he is very good at ***”. For getting the reputation, You need three elements.
You need to get things done with speed. However, the most important thing of getting the speed is, not the “Gaining your coding speed.” Priority comes fast. You need to focus on a few very important things that cause impact, then make effort to remove not so important things. That is not easy task especially, a guy of ADHD like me, however, make effort to reduce the task, make it simple, build less and generate more impact is desirable. Think very careful what you should/should not do. If you wonder which one to pick. Pick the most important one. What he said remind me this book.
Set the due date. As a developer, we don’t have much due date. However, if you set the due date by your self, It helps focus to get things done, and also, it helps prioritize things. If you have just one day, you will focus on very important things only.
Design first. He observed a lot of great developers, a great developer is not jump into code quickly. But they spent time on designing. I heard from him about this one, I look back and see how great developers is working. Yes. They start with design document (not very big) or design memo. These habit eventually save your bunch of times if not, you will switch forward/back between spec/design/code a lot.
I didn’t ask about quality that match. I’ll ask him next time and update this blog.
If you done a great job, in a lot of cases, people don’t know what you are doing. So that you need a visibility. If you’ve done something good, share it, demo it, let people easy to use it. Look back your colleagues. How many people do you know what they do recently?
He didn’t use this word, however, I classify like it. The reputation is comes first however, Creation comes second.
If you have an opportunity of Hackathon, join it. You have a chance to create something new prototype. If it is useful, you might have a chance for making it production.
If you find a problem to solve, build a prototype. It might be success or failure, however, share it with people. You might have an opportunity of getting it to production.
I learned a lot of things today with his One on One. I heard a lot of insightful tips that is based on his success. I wrote this blog for not to forget the tips. I want to be like him who can invent a new service that is used by a lot of people in the world. I focus on getting a good reputation as a programmer in my lovely workplace. It might take time, however, it is also fun to challenge and grow as a programmer. Especially, I’m spent time to build less and get impact more.