The official source of news and updates about Envoyce
Soul searching & good code
I wasn't an accountant and didn't really want to become one.
I'm a developer and I've been developing software for 20 years. Mostly dull and predictable code. Usually designed by someone who has little idea how people interact with applications. Most of the time I'd be brought in to fix or make code work with another system. The end game was about getting the code to work and not about pleasing the customer. As consumers of code, we have become accustomed to the way developers write code and consequently many of us have learnt how to use these applications and systems intuitively.
Well, that's just fine if you are the sort of person who knows how other systems work and can apply those same experiences to this code and hope it works as expected. However, some people can't use code that easily, it makes no sense to them and much of the time they are left in limbo where the application is expecting a key sequence that is unknown to the visitor.
So many applications are written like that. So many developers and project managers insist that 'that's the correct way to write code. Well, it isn't in my view. Good code should allow everyone to use it. Regardless of previous experience or insider tech business knowledge. You should be able to use good code without reading a manual. Good code should be fast and perform well.
Good code should step you through a process whilst allowing experienced users to take shortcuts. Good code should make sense and follow the same rules we all follow in our internet lives. Good code should ask you for only the information it needs to perform the action we expect. Good code should allow for different ways of working and not mandate a particular route to performing an action.
Why don't we see much of this good code?
The thing is we do see good code all the time, but because its good, we don't notice its good code, we just perform the action. Good code is transparent and invisible. Good code gets the task done, the way you want to do it.
One the other hand, bad code is totally visible. Bad code is when you need to perform an action but you can find a way to do it. Bad code exposes fault lines in software companies and puts pressure on support teams. Do you think bad code is supported by a good code support system? Not a bit of it. Bad code is compounded by bad support and bad customer service. Thing is, bad code may not have started as bad code. It rarely does. Bad code is applied subsequently by layers of abstraction and process that seldom have anything to do writing a great application. This typically stems from projects that are tech driven and not customer driven.
I bet you can think of a bad bit of code right now. You click a button and nothing happens. You wait. Did I click it properly? You click it again. What am I doing wrong? Something that flummoxed you cold. Then you magically get 4 replies of an error message all over the top of each other. What!! You search through menus and ponder dozens of features that you never touch hoping for a miracle of inspiration.
The internet is awash with code like that. The bad news is that bad code can live a very long. Some people have to use bad code. You should pity them.
So'what has this got to do with Envoyce? Well, I thought it could be better than that. I thought I could write a new app to help me create invoices. Creating invoices took me ages. I was using an old excel sheet to co-ordinate the invoice numbers and details. I used it for years. I even had an invoicing system on my accounts package, but you needed a degree in thermal dynamics to figure out that, so I never touched it.
I turned to the big players of invoicing software, and found although they claimed their package was easy and quick, it was neither. The app might have been fast but I wasn't, trying to figure what I needed to do to change an invoice number after a deletion. I also really didn't need 99% of the other features in the suite.
I wasn't an accountant and didn't really want to become one.
I just wanted to create invoices and track their status. How hard could it be. So, I set about to write a package to do just that. Two years later it's here and called Envoyce. I must say it's very difficult to write simple software. Almost impossible. During the testing phase I notice that people were working the software wrongly. How dare they, and moaning about it too. For a developer you can't fathom why people don't click a button marked SAVE when its totally obvious to you.
The initial release for test was bad software. There, I admit it. To fix it I watch people interact with Envoyce and noticed what they did. Asked the users questions on their expectations when clicking a button, changing a picture or updating a total.
This process has given me an insight on how unique we all are and humility and deep respect for creators of good code.
Initially my goals were:
- To make a system that was accessible like a website
- Fast like a native windows application.
- Flexible as a mobile app
- Simple as a using an old Nokia phone.
Additionally:
- I wanted visitors to use Envoyce without learning how to use it. It should be simple and intuitive enough to stumble though and generate an invoice on the first go.
- I should be responsive even when being used on a slow cell connection.
- It should follow the same set of rules that you have learned from other sites and applications.
- It should update in the background (like a webpage) and not constantly ask you to update.
- It should be secure but not intrusive secure that stops productivity and slows your workflow.
- If you delete a customer, it SHOULD ACTUALLY delete the customer in the database.
- None of that data mining working against you in the background trying to sell you stuff.
- It should be fun to use. This is actually really important. I'll say it again louder.
- IT SHOULD BE FUN TO USE, or maybe not a drag at minimum.
So, what does Envoyce give you? I've left the most important question until last. All this development, insight, rework, gnashing of teeth is for nothing if it doesn't help you, so how does it help you?
Envoyce can help people who:
- People who would rather work for profit than for their accountant.
- People who hate reading manuals.
- People that don't care about how cash flow could be optimised.
- People that want to spend the least amount of time billing for work.
- People who don't want to spend a huge sum of cash each month on software features they mostly don't use.
- People who don't want to be tied into a ridged corporate eco-system.
- People who don't want to be accountants.
- This might not be you. I get it. That's cool. I wish you well.
Everyone else, try Envoyce for your invoicing. It works great. You have nothing to lose. Welcome aboard.
Which bring us to a message from our Sponsor.