domingo, 17 de diciembre de 2017

Bugs, a fundamental part in coding a program?

Today I found an article that discussed the problems Apple has had over the past few weeks with the new updates for IOS11, High Sierra and more. I have to confess that my iPhone seems to have more errors than before. Is slower than ever and in that sense, I agree with this article that states Apple has lost the customers confidence. The problems have been noticeable since I updated to IOS11. Of course, we all know how this issues always seem to get extra attention, especially because Apple is one of the most admired and hated companies on the planet. 

Not to mention the cult its products generate on customers around the world.  However, that is not what stroked me the most about this article. The Author mentioned the following:
“ Bugs are a fundamental part in coding a program”. 
He mentioned, this statement is shocking since.
“Not even the greatest engineers are able to develop software bug free”.
Of course, nobody is perfect. And is true, the Engineers must work within systems that allow them to create defect-free software. This is no easy task. Neither in software development nor in other industries, such as manufacturing. People will make mistakes. But if those same engineers are able to identify those defects and take actions that avoid those same defects or similar ones, are repeated when developing the next program, then eventually, the software can really be Bug-free. But it is also shocking to find that even though, Software development is a very competitive industry, it is believed that Bugs are and will always be present no matter what. 
The Autor also writes the following:
“In big corporations there are exhaustive audits, tests of different kinds to detect, retain and solve errors even before the final version reaches consumers. All this effort to prevent lack of trust from the precious customers. “. 
Audits, inspections as we know, may be necessary under some conditions or situations. Of course, if we cannot get rid of bugs right away, we better have in place a detection system to avoid errors reach the customer. That´s correct. We must protect the customer. 
But living with inspections, audits, and tests all the time is not the way to manage any business. As it has been known for a while, inspections are waste. Waste that adds cost to any product or service. And in the end, affects any company from being more efficient, reach better quality and delight its customers. In the end, isn’t that what's all about?
This reminds me of Dr. Deming when he stated:
We cannot rely on mass inspection to improve Quality, though there are times where 100% inspection is necessary. As Harold S. Dodge said many years ago. You cannot inspect Quality into a product. The Quality is there or it isn't by the time its inspected.
Luckily, Scrum and Agile are built on Lean principles and eventually, I’m sure will help to create better systems and conditions for software developers to achieve the goal of a Bug-free software. 
In the end, its true, Bugs might be an essential part of Software development if these Bugs are used to analyze, improve and make better conditions under which Bugs are impossible to live. Otherwise, Bugs are just mistakes that make products more expensive and less reliable. 
Finally, this article is interesting since it points to one fact that we must remember. Engineers coding software are very smart. Especially for a company such as Google or Apple. And they still make mistakes! Please remember this the next time a mistake is detected. In the end, is all about processes and systems that fail or not, and persons willing to learn and make better processes.
Thanks for reading. Please share your thoughts and comment below.