After last week’s Employing AngularJS post I forgot to detail out how we are testing all of this rewritten Javascript!
We already had automated systems that used Selenium and PHPUnit to test our source code. Each time we check in code the testing system fires up, grabs the source, runs a set of tests, and reports to us the results on a dashboard-like web page. All automated of course, as is the agile way.
Now we have added Jasmine to the mix. Jasmine is a neat little Javascript testing system that is easy to set up and integrate in to a testing batch process. And like all automated testing processes: whatever time you spend in the short term writing and verifying test cases pays off 10-, 100-, 1000-fold in the long run.
…but automation isn’t everything…
As good as test automation is you can’t really go past some basic usability testing. For usability testing we start by playing with the software, try different things out, try to break things, and most importantly, observe others using our software.
We have a long and successful history of introducing our programmers to non-technical users and working with them to build the software they need. Often our staff head out of the office to demonstrate the software to customers (or potential customers). It is amazing how much feedback you can receive by just watching somebody use your software. Even just getting a workmate to have a quick look over your work is valuable and it happens all the time here at Univex.
Until you see a customer look a little confused, or perhaps crack a smile, you won’t know for sure whether all that hard work in coding up a program is actually meeting the goal: to delight them.
So if you are a rookie programmer, still in school or recently graduated, be sure to get out there and see what is happening in ‘the real world’. Developing software professionally is unlike University where you program, submit, and get a score out of 10. Programming as a career tends to be a highly iterative process, often very interactive.If you have traditionally programmed in isolation, or not used to programming with others, I encourage you to take a chance of being shot down in flames. Get somebody else to look at your work. You will become a more effective developer, and at a much faster rate than your peers.