May 25

Jasmine, Automated Testing, Usability Testing

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.

 

May 20

Employing AngularJS

As part of our web system refresh (or rather restructure, or in blunter terms, fix up some things now to reduce the pain in the long run), we are employing AngularJS to do a lot of the front end coding for us.

We knew we had an issue on the front end code that manages editor boxes, forms, the menu system, and pretty much everything visible that isn’t static text. What we had was working fine for the time being, but was not going to scale up in to a larger application with potentially hundreds of forms. We needed to simplify so that both new programmers can ramp up quicker and long term maintenance is reduced.

After considering and prototyping a few frameworks we took a punt on AngularJS. So far so good. This Javascript framework has been proven over a period of time and has a community behind it. Two very important factors when integrating anything open source – a world in which there are countless numbers of failed projects, ideas that seemed good at the time, or just plain badly written software. Only a fool would pick an off the shelf open source package without dissecting it and really understanding what is going on, who is supporting it, and how reliable and secure the code base is.

Our code complexity has been reduced, which means faster and easier programming as we add more in to our system. We are also adding new things to AngularJS and feeding them back to the community that has given us so much!

 

May 11

Game Changers

For some silly reason I keep coming across the term Game Changer - in trade magazines, in the news and other media. I have even been guilty of using the term myself – back when I wrote What’s your BHAG? Game Changer must be one of the most popular business phrases of the year and will no doubt end up on Buzzword Bingo if usage continues.

Now it is time to lay the term to rest, at least in the public space. You can thank Domino’s Pizza Australia for that. Their idea of a game changer was nothing more than catch up to what others in the pizza industry have been doing for years. A trust broken with their fans who were expecting something more, given the hype that the Domino’s PR department was spinning out.

But internally? For sure, use the term! The fact is for pretty much every business you need to keep changing your game to succeed in the long term. Stick by your vision and execute it. Reinvent your product, or your business, to meet the changing demands of your customers. That’s why we are sticking with our BHAG and creating a better future for Univex and our customers with new systems. This isn’t about sticking new features in to a stable product (although we are doing that all the time), but rather inventing new ways of managing and operating one’s business.

And if you are at a business that isn’t changing their game? Particularly in software development, electronics, or general IT? Why not make contact with us and let’s see if we can help you!

May 04

An Update On Our Web System

Yes it is still happening! Our online system is coming together despite scheduling setbacks in the last year. We are making a number of technical changes ‘under the hood’ to improve development speed, maintenance, and overall performance.

The initial release will be a management system for our digital signage product. This will replace the current digital signage manager, make it much easier for people to use and look much prettier on screen.

Following signage we are likely release a simple retail and booking management system for service operators such as spas, salons, and therapists. This will integrate in to the main Univex Business backoffice application for those who need it, and for others, it will be an inexpensive investment in business management software.

Over time the web program will expand to include new e-marketing tools, reporting/metrics/analysis, Business Intelligence, and much more. This is by no means a dumping of our existing Windows system – that will continue to be maintained and improved for years to come. The web software will complement that suite of desktop software and provide a more accessible experience at a lower cost.

 

It is a lot of work but also very exciting. If you want to be a part of this wave of software development, and think you have what it takes to make a difference, why not get in contact with us and apply for a job? We don’t always advertise on job boards but are always on the lookout for talented programmers and related development and support roles.

Apr 27

Bulk Customer Statement Emailing – Part 2

A few months back we added Bulk Customer Statement Emailing to our system. It’s a fantastic feature, giving us and our customers the ability to shoot out statements via email without having to either email them one by one, or print them out and stuff envelopes.

As soon as we released that system we found one little flaw. We didn’t do enough to help deal with slow paying debtors. You know the ones – they get a statement, sit on it for a while, then when you remind them for payment they start querying transaction-by-transaction what it was for.

Clearly we need to re-read Outfoxing the Small Business Owner and find other tricks they pull to avoid paying their bills!

No worries though. We now can attach all open invoices to statements and email the whole lot out in one hit. If you are dealing with a particularly bad debtor and need to send them reminders, you can send a one-off statement with all invoices attached. No extra work involved: just open the customer, preview the statement, and click the email button. You can send the email out immediately, or you can launch it in Outlook, Thunderbird or your preferred email client to edit before sending.

So if you are looking for software that works for you, as opposed to you working for the software, give us a call or drop us an email and we’ll see if we can help make your business run more efficiently, with less time effort to get the results you desire.

Apr 20

It’s OK To Be Small

In the book Rework by the guys over at 37signals, they make a point about it being ok to remain a small organisation. They suggest you should impress customers and associates with your product, and not your headcount, revenue, or company structure.

These days the barriers to starting a business (at least in Australia, New Zealand, USA, and many other countries) are relatively small. You can be very profitable with very few staff. You can sell internationally with ease, especially with software products, but also with many other products and services. We know it to be true because that’s what Univex does day in day out.

So for those job seekers out there, particularly students approaching graduation and looking for their first professional job, try to keep an open mind. Between those large consumer product companies, and large consulting companies/banks/etc that come on campus to recruit you, there are thousands of smaller businesses supporting them. You might not have heard of them yet but rest assured they are there, and they are fantastic places to work at.

You can actually be somebody at a small business, make a real difference, and if you have the ambition you can very quickly manage a product or part of the business. If you are in your 20s the chances are you are at a time in your life when you have least responsibility and maximum energy. So take the risk, start a small business, or join an existing one. If you fail (and I assure you at some point you will fail at something), you can decide whether the safety of a large company is more for you, or whether you have the resilience to get back up and try something different.

Apr 13

More Web And E-Commerce Integration

We have started to roll out more web and e-commerce facilities this April. In particular we are dealing with a mixed retail/wholesale business that sells food in bulk. Product parameters such as expiry dates, pallet configurations, minimum order quantities, and offline processing all come in to play. Products are searched and selected online, effectively mimicking an order sheet, and the transaction is sent down to staff to complete it.

Although the system is very similar to our retail e-commerce system, the needs are slightly different for wholesaling. Access to pricing would be only available to registered and approved businesses, whereas in retail anyone can browse and purchase. Also there is no online payment processing required, but purchase order numbers are and invoices are charged through an account.

And of course everything is fully integrated and data flies around in real time. Add a product to your database in the back office and it will immediately appear on the POS, and online, without any extra effort. As our infamous saying goes, Why Mind Your Own Business when you can have Univex do it for you!

Apr 08

Programming For Exceptions

Possibly the wisest piece of programming advice I ever received was to program for exceptions. Any random guy with one eye and one finger can hack out a program, but our job as a software professional is to handle exceptions, and I don’t mean the try..finally kind. Rather, program for unusual events. This separates ordinary software from what we generally know as user friendly software.

When you study programming in TAFE or University you are taught to solve the problem. Most will also teach you to put in some basic data validation, such as making sure required fields are not blank. But real exception handling is more than that. You need to think of all the crazy things an end user (or the operating system, or the hardware) might throw at you and make a conscious decision on what to do.

What if a price list file arrives and is empty? or in the wrong format? or two columns have the same name? or number formats aren’t what you expect? is the file complete? how do you know?

 

An example we came across recently was in the Softmaker Office suite of products. Univex software will export reports to Microsoft Excel, Open Office, and Softmaker Office (amongst other text and HTML based formats). With Softmaker, if the data format for a negative currency value is not in the $-x.xx format, it will not interpret the data when you look at the file later on. The odd thing is that the software allows such a value to write out ok.

This is a great example of not handling exceptions. The programmers never contemplated that the software might be used in a location that has a different format for negative currencies. The default in MS Windows (at least here in Australia) is -$x.xx. Try putting that through Softmaker and the value is not saved out. No errors, just an invalid field value written out to disk.

So in turn, we handle the exception in our software. We make sure that whenever writing out a negative value to a Softmaker file we meet the requirements. We also tested Excel and Open Office to double check they still export ok!

 

If you are looking for more tips on crafting software that is easier to program, easier to test, easier to maintain, and is half-decent to boot, I recommend the book The Pragmatic Programmer. You don’t have to agree with everything the authors suggest, but you have at least got to respect their position for trying to help programmers become better professionals, much like other engineering fields.

Mar 26

If You Don’t Ask, You Don’t Get

I was inspired by a recently posted YouTube video in which a young man bravely asks his idol, Billy Joel, if he could play for him:

How often do you ask questions?

If you have people reporting do you, are they quick to ask questions? or do they hesitate?

Do you ask customers for feedback? Ask suppliers for help when you need it?

It can be tough for rookies, newly employed, and needing to know so much about their new workplace and job. They sometimes hold back for fear of being annoying, or worse, think that they are asking a silly question. One of the things I do here as a manager at Univex is encourage question asking, especially during One on Ones.

One on Ones are those regular (usually weekly) meetings that a recruit has with his or her boss. Just the two of you, at a set time, where you can cover whatever is on your mind. You might know these meetings by some other name such as ‘weekly status report’, or ‘employee update’. If you have no idea what I am referring to the chances are you have never had one. That’s a shame. You probably also have a manager who thinks they don’t have time to talk to you and develop you.

Just 30 minutes each week is all it takes and a truckload of questions, issues, status updates, stories, coaching, training, delegation, and other core management activities can be achieved. This is in addition to any of the incidental interaction that happens during the week.

If you aren’t asking, you probably aren’t getting. Why not start asking a question today?

 

And if you are looking for a better place to work, one where you are genuinely valued and encouraged to grow your career, why not join our team? We are always on the lookout for new hires. You can check this page out to see what it is like to work at Univex Software.

Mar 22

Relationships Matter

This week I was emailed by my undergraduate University to fill out a survey – as happens quite frequently for past students, even years after graduation. Part of this survey asked graduates to submit once piece of advice for students currently studying and about to enter the workforce. This question comes up reasonably frequently, and what do I recommend?

Build Relationships!

By that I mean keeping in touch with classmates, industry, and anyone else from any background who won’t mind keeping in touch with you. Make sure you ask for their personal email address, and grab phone numbers if possible. University email addresses will soon expire after you leave, not everyone will jump on to Linked In, and not everyone will want to connect to you on Facebook (nor will you want to share your life with them!).

Get in touch with industry: companies visit Universities regularly for presentations, seminars, and job fairs. You are probably applying for jobs with various companies and can keep in touch with the people you apply to. There are hundreds of industry and local government events held every week that you can attend, for free. Events are listed on their web sites. Put out your hand, introduce yourself, and make a new contact. Ask if you can keep in touch with them, and follow up.

Every three or four months drop them an email or give them a call. It helps if you create a recurring task, calendar event, or ‘todo’ in whatever software you prefer (Outlook, Google Calendar, Remember The Milk, etc). Sure you will get a bunch of people who ignore you, and you can drop them. Just keep building up contacts from all industries and all organisations, whether or not you think you will ever work with them professionally. You just never know when they might come to you asking for advice, or for a referral, or god forbid, to buy your product.

I keep in contact with past employees, even some job seekers that didn’t start with us for whatever reason. I just never know when they might need a job, or I might want to hire somebody like them.

This week I had a former employee refer a friend to me that is interested in what we do. Also a person I met at a conference in 2011 dropped me an email (which we do every few months) to check on how I was going and how the ideas from the conference were being implemented. Kind of a ‘support buddy’.

I wish I could say that I was smart enough to think of all of this myself, but sadly no. I owe a lot to the Manager Tools team for this podcast on building your network. Possibly the cheapest and most important career advice you will ever receive. Listening to dozens of other podcasts, reading business books (both the good and the bad), not to mention magazines and academic journals, they all come to the same conclusion: technical smarts will only get you so far, and then the relationships you have nurtured over time will be required to help you reach your goals.

 

And here’s the kicker: I’m not a natural people person. I’m a ‘High C’ in the DISC model. This is hard work for people like me – and I’m sure a lot of other people with a computing and programming background will relate. It takes effort and a bit of courage to introduce yourself to strangers, let alone keep in touch. I could quite easily fall back to my natural tendencies and bury my head in technical work. That might work, for a while, until I need some help from somebody. I don’t believe I can sustain 40+ years of working life in a solo, technical arena. Unless you are a certified genius, you might struggle too as well.

 

What are you waiting for? Start building a list of everyone you know (or want to know) and get in contact with them!

 

Older posts «