Ethics in software development
Ethics in software might sound like a boring topic, but Robert Martin (Uncle Bob) is here to remind you that you have more power than you might imagine.
Developers have grown from being almost completely unknown to having a lot of power in our society. We receive rules and write them into machines that apply them, this is why developers have to do something about it before laws are enforced upon them. Uncle Bob proposes a way to regulate the profession by establishing what is expected from a professional software developer.
Questions & Answers
What should the programmers at VW have done about the code that detected the emission tests?
They should have quit, there are standards that shouldn’t be crossed and that is called professional ethics, that’s the cost of having a profession. They should have refused, if that comes at the expense of their jobs, so be it.
Programmers have a huge impact in society, what should we do about it?
We ought to have a profession, that is a set of standards and disciplines that a programmer must have in order to be a programmer. If we don’t do that, the government will do it for us.
What’s the goal of the Agile movement?
Try to take apart the heavy ownerist processes that got imposed upon us and replace them with more flexible processes that makes it easier for us to do our jobs and make us more responsive for customers.
You might be surprised to find that a modern car has 150,000,000 lines of code in it
How do you clean your code?
If you have a suite of test, you run it and they pass, you know you can make changes to the code because it didn’t break. You can split functions into smaller ones, change a function to another class, change variable names, and run the tests again, if they pass you can make more changes, and so on.
What’s the importance of testing?
Although testing has been resisted for taking time and because the fear of change, it allows you to develop features faster and code cleaner because it eliminates the fear factor, you know the code will work and, therefore, you can make the changes you want without the fear that the code will pass the test but will break in real life. This also implies that we need to have a discipline of testing and invest time at the beginning of development.