Ray Tracing with CUDA on Windows 10

I recently read and followed Peter Shirley’s Ray Tracing In One Weekend (http://in1weekend.blogspot.com/2016/01/ray-tracing-in-one-weekend.html). As I moved along with the book, the images were…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Why doing right is not enough

Do what its right is not enough. You need more failures to be on the right track.

source: unsplash.com

No one is perfect. Have you thought about someone that you know is too perfect for being a human? Do sports, have friends and good connections, have time for everyone, have good grades for schools without extra learn on their leisure, easy money, such a nice life right? But, have you think more skeptical about “everyone has weakness, and no one is perfect”?

What if in the middle of their life, plan is not going well? Things change so fast. Everything they had today could be gone tomorrow. Sadly, it happened with Nokia, one of the most respected company that being acquired by Microsoft in 2016. In the end of the speech, CEO of Nokia said “We didn’t do anything wrong, but somehow, We lost”.

You can do research and learn from their failure. But since my background is a programmer, what I can say is “Life is just like you develop a software. It is not one time deliver but continuously”. Who refuse to develop their life by learning and improvement could be fail and kicked out from the industry, even if they already felt succeed for their life right now. In the end, the one who do nothing will learn that in hard and expensive way.

In software development, things always change through time. Your requirement that made today will change tomorrow. If you can’t change it fast, you may ended up with losing business opportunities momentum. And you might be lose some revenue from it.

That’s why Agile methodology is succeed most of software projects. Being agile means deliver fast, gain feedbacks, discover failure fast, and fix it faster and deliver it again. This process called tracer bullet.

When I first learned tracer bullet is from an interview that requires me to give that and I was so confused. What I thought about it was a prototype. Later on after I read several references and books I had more clearer knowledge about the differences. And lately, I experience that practically. Tracer Bullet is not Prototype.

So what is the difference? Well, I will just tell you the definition, this could set a thread to discuss just about it.
Both: is a way to deliver what needed by target users.
Tracer Bullet: deliver faster to gain feedbacks and make it right on target. This is not-disposable work. You have to do things on its best practice for this one.
Prototype: more like proof of concept that you don’t know yet if its possible or not. This one is disposable work. You can throw things in bad way to just proof that your concept is possible.

In my experience, prototype and tracer bullet can be such great use. When you got something in your mind, try to prototype it and see if thats work or not. If its work, try it with tracer bullet way and figure out which aspect needs to improved.

This always be a problem for every development phase. Either make many feature or one with good quality. The answer is be pragmatic. In this world, there is no certainty. Only time that certain, 24-hours a day. Even you can make it slow or faster if you know how (lol). You have to know which one is the best during the time with any condition.

When you develop one feature, make sure it has good quality is great but sometimes you have to deliver it faster that makes you leave its best practice. I remember when I worked on one of the company needs more feature on their apps rather than pay attention to the quality. It was really rotting inside but beauty outside.

Every changes made could easily break any current feature. That because the quality. It was construct without best practice. But on the same time, being too perfect with the feature is not right. Being pragmatic is the answer, to know when to stop add quality to the feature and move on to the next one.

Do what its right and no improvement is “not right”. In some way, learn is more important than continuous delivery. Your solution today will be replaced by someone idea tomorrow.

Maybe you got money and pride today, and maybe it works for now, don’t felt complacent. Failure always wait. Either you take it faster and make things right or leave it as broken window on your life and pay as expensive lesson for another day.

Everything can start with small-baby-steps. Try something new. “Whoever thinks a faultless piece to see, Thinks what never was, nor is, nor ever shall be.” — Alexander Pope

One that who don’t want to learn will be too general. One that too general will be kicked out from the competition, and its natural! Today’s job will be replaced by computer in a decade later. How to overcome that is to improve yourself everyday.

Develop yourself and don’t afraid of failures. Experience is your greatest teacher. Learn from it. Do it anyway, either it will fail or success. Do it with tracer bullet and prototype way. You will know when to use one and how to improvise for each case.

Don’t sacrifice your quality for quantity. It always good to have enough quality rather than many feature but rotten inside. Don’t put too much effort to add more quality, know when to stop and move to the next one.

Add a comment

Related posts:

FSTVLST di Proudphere Salatiga

Saya diajak teman yang die-hard untuk menonton tiap gigs FSTVLST, Anton namanya. Dia datang dari Solo — kota ia menimba ilmu. Mampir ke rumah untuk menjemput saya. Malam minggu itu, saya laptopan di…

7 Change Management Exercises to Minimize Resistance

It is human nature to resist change. However, to keep up with a constantly evolving marketplace, organizations must be adaptable and growth-oriented. To quell the resistance that inevitably…

Just like bees

Never thought that I would be Stumped by pollen so tiny I’m in conundrum Enjoying the scent of daffodils Even if the other self knew Soon it will be wilted But just like bees… Maybe I am…