Riguor and ethics in software engineering

>> Friday, October 1, 2010

My formal training is in engineering and I am still a member of the provincial engineer's order or corporation. As such, it is my duty to practice my trade in a professional and ethical manner. My first obligation is to take into account the public interest, my second obligation is to cater to the security of people working on projects for which I have a responsibility. Finally, I must put the interests of my clients before my own or those of my employer. Furthermore, I must apply sound engineering principles in all my professional activities and must refuse to do (or approve) things that I know are wrong or contrary to generally recognized rules even if my customer or employer asks me to. Although I am legally bound by these principles, my personal conviction is that this is the way things should be handled by people practising and profession be it engineering, medicine, accounting or IT.

Now, my domain of work is software design and construction and I work mostly with IT professionals. What is often a surprise to me is how often these principles are not observed and not even promoted. Many professional are quite willing to design and build flawed systems just because their client (or boss) asked them to do things in such a way. As IT specialists and experts, it is our duty to do things according to sound engineering principles and the onus is on us to devise solutions that meet the business requirements of our customers while still respecting good practices.

Obviously, what must be done and how it should be done is subject to interpretation and different people can have different viewpoints on this. Some could argue that if you are not using a formal methodology such as RUP you are not applying sound engineering principles. I cannot agree with such a position. Methodologies are known to get replaced every 4 or 5 years by some new fad. What is considered to be the proper approach today may very well be considered nonsense tomorrow and that is OK. It is called evolution and creativity. Applying good and consistent practices in a given project is important and required but we do not always need to follow a very strict and formal methodology. Other things such as basic principles behind entity relationship modelling are much less subject to schools of thought or fads. To me, accepting to design and build a solution that does not follow ER modelling principles is just wrong and IT professionals should put their foot down and refuse to go along when colleagues or clients insist on modelling things in a funky way. It does not serve the interests of the client and can lead to real problems down the road that can cause financial if not physical damage to individuals and organizations.

Sometimes you just have to protect customers against themselves. Physicians, accountants and engineers are generally very sensitive to, and familiar with such situations. Unfortunately, many IT professionals do not seem to realize the importance of such issues.

So long,

Laurent

0 commentaires:

Post a Comment

  © Blogger template Webnolia by Ourblogtemplates.com 2009

Back to TOP