Resist the temptation to use third party libraries
I am especially guilty of this, and have paid dearly many times. Yet I still fall for this trap over, and over again!
I attribute this to my character - I am constantly in pursuit of simplification, which has been both a great strength and great bane.
But yesterday's talk got me thinking - so far, I have only worked on relatively small codebases that have been used in production.
Having to rewrite chunks of code in order to remove a third party library I initially used hurt, but it was bearable.
But can you imagine the consequences if you had to do this for a critical part of your application if you had 200 million monthly visits like Shopee?
Know when not to change your user behaviour
Amulya very briefly mentioned about how Shopee chose not to hard code animations between platforms because they wanted to keep a native feel.
It was only a one liner, but this really struck me.
I had the attitude that there should be no expense spared when it comes to UI and UX. I thought that to achieve the quintessential experience you would have to code fancy animations.
But this made me realise the importance of familiarity! Your users are used to their native platform's animations and components. Reinventing the wheel comes with a cost - you have to teach your users how the new wheel works!
But don't get me wrong, there are definitely scenarios where it pays to reinvent the wheel. But when the cost of educating your users exceeds the benefits of the new wheel, it is imperative that you strongly reconsider. It's also good to keep in mind that every reinvention incurs precious development time!
Know the industry's supply line
Frameworks come and go. How do you choose the right one?
You could literally google "How to choose a framework" and you will come across a myriad of factors like "popularity and community size", "technical properties and features" and "documentation".
Or you could take CS3216 and learn a better way!
Specifically, you should ask the question: How much does the creator of the framework depend on it?
Take TypeScript for example. Microsoft heavily relies on it. Do you think they will decide to drop support of it out of the blue?
There's a whole multitude of ways to do this - but I really like how Prof Ben did it - he spoke to the people inside the companies and found out what exactly were they using!
Good artists copy, great artists steal
- Steve Jobs
And then there's Prof Ben. Spy on them, legally steal their work, and then have them continue building features for you! How lucky we are to be part of his class!