Software Development

NSA Internet Technologies develops custom software for itself and for clients. The code that is developed by us is usually © NSA Internet Technologies Ltd. Unless otherwise specified. We may release the entire code or portions of the code to the public, in which case this code is released under the terms of the Gnu Public License (Version 3) which you can read here.

Development Philosophy

We feel we must take a simple approach with customers. The product has to be simple to use, and it must be reliable and consistent. We believe these things are important for any customer, for any product, anywhere, and in any field.

I believe that when you make some technology available that’s supposed to do something smart, two things can happen:

  1. If it doesn’t work, you come out an idiot, and you sacrifice your reputation. The damage is huge, and maybe irreversible.
  2. If it does work as advertised, you have something truly amazing! Because the modern software consume is used to “Microsofty” products that crash and are heavy. He half expects it with every software he starts using.

You know you’re in trouble when the first thing happens (and sometimes customers do not even recognize that they are in trouble), and this is why we must keep with simple things that work great, initially, and  not make false promises to customers, until we test the technologies very seriously and thoroughly.

Our approach to testing the new technologies, is just like with Car Safety. We must simulate all the conditions, and make sure that it works perfectly. We know that even after we will test it to the best of our abilities, we will STILL encounter problems when the product is used in the real world.

But this is exactly why we must try our best to test it as much as we can, so that when it is used in the real world, we will at least have the advantage of knowledge of the internal workings of the technology, and how it behaves in our test laboratory.

Development Methodology

We develop software using a combination of Agile Development, Test Driven Development (TDD) & our famous Common Sense™. The primary goal is to have fun, and by having fun, making code that is advanced, creative, and does a really good job. We do not believe in developing under huge pressure, although sometimes a bit of pressure does wonders to one’s creativity and motivation.

Development Tools

Our current primary management tool is Redmine, and our primary Development Environment is Eclipse which we also Mirror for the EMEA region.