I started to be a movie fan after getting married to a film editor, so occasionally I’ll share some thoughts about movies on this blog.
Last Sunday we finally watched Black Swan after months of delay. This award-winning film is a psychological thriller, a very good one. But more than that, it also reminded me a few things related to my career that I have come to learn in the past four years at Microsoft.
So here starts my blabbering.
SPOILER ALERT: Please stop reading if you’d rather enjoy the movie first.
Photo from Wikipedia
Nina Sayers is a ballet dancer, and hell, she is a perfectionist. Her technique is great and she is the most dedicated dancer in the company. Being perfect was her biggest obsession. It subconsciously drives her efforts in adapting to her new role, even though the efforts are to make Nina forget about her perfectionism. “Perfect – It was perfect” are indeed her very last words.
We engineers all know that such word does not exist in software development; with time and resources constraints, it’s just impossible. What possible is the passion that keeps our product being improved day by day. Like Nina, we practice. Her steps are our lines of code.
I think passion for quality is ultimately the passion for one’s career.
I remember hearing that engineering is all about trade-offs. Often we need to choose a solution among several, and each one has its positives and negatives. For example, we might choose an implementation that gives us code clarity and maintainability over one with a slightly better performance. Feature prioritization is also some kind of a trade-off that involves the end users factor.
In Black Swan, Nina is at risk losing her Swan Queen position if she cannot portrait both an innocent, fragile White Swan and an evil, sensual Black Swan on stage. Leading an ascetic life, she fits the first role very well. But her dancing is too controlled to illustrate the mischievous Black Swan. So she starts losing herself by experiencing a different life-style. Her struggle is so great that it almost throws her into a state of hallucination and madness. And I can see that her struggle comes not only from her passion but also from her decisive act to trade-off, especially when facing her own mother.
She deserves the standing ovation her audience gives her in the final scene.
According to Wikipedia, a doppelgänger is a tangible double of a living person that typically represents evil. Being too absorbed in her attempt to dance the Black Swan, Nina gradually becomes evil herself. In a well-depicted scene, the mind-losing young girl transmogrifies into a real Black Swan.
It’s not that dramatic in engineering (no one is evil here :-)), but we also need to play double role all the time. I think trying to work in other disciplines is a very good thing to do because it broadens your skills and understanding. An SDE should be used to using the product over and over again, filing bugs, doing exploratory testing, etc. Furthermore, it is his or her responsibility to test the changes at least for all the basic cases before checking in. The more defects he or she finds out before the changes get to the hands of the QA team the better. It saves time and it lets the QA really focus on more complicated scenarios.
On the other hand, I’ve seen SDETs writing tools and unit test framework, debugging code, filing bugs with suggested fixes, etc. and of course such things help the Dev team tremendously.
I believe most if not all the things I share here is common sense in software development. Hope you enjoy this excellent movie, and if you have other interesting ideas (don’t have to be technical), please do share them too.
Till next time!