App development, design, and promotion, tips, tricks and thoughts to help you make awesome apps.

Friday, March 23, 2018

I recently heard someone try and make this argument. (They were sucking up to Microsoft at the time.)

If I do web dev I have to learn at least 4 things, but for Windows, I can just learn UWP

Their thinking was that for web development they need to learn:

HTML

CSS

Javascript

Some framework (e.g. Angular)

Possibly more...

They argued that they could just learn "UWP".
But I think that means several things too:

XAML

C# (or VB, or C++)

An MVVM framework (MVVM Light, Caliburn.Micro, Prism, etc.)

The UWP app model and platform-specific APIs

possibly more...

I don't think this argument holds up.
The development of any piece of non-trivial software requires the use of multiple complementary technologies, skills, and techniques. If you ever think you can just learn one thing and then you'll be done, you're setting yourself up for disappointment and failure.

Friday, March 16, 2018

As I put my card in the ATM machine today I noticed a message on the screen that said

Receipts currently unavailable

I've seen it many times before. It means the roll of paper the receipts are printed on has run out. Not a problem, I just want cash.

After inserting my card and entering my PIN number, among the many options were two related to what I wanted:

- Cash with receipt
- Cash with no receipt

Yes, that first option makes no sense based on the message shown at the start. But wait.
I selected the second option and was then asked:

Do you want a receipt for your transaction?
- Yes
- No

I selected "No". I didn't want one and, based on what the machine had said moments ago, I knew it couldn't provide one even if I did want it.

I then selected the amount I wanted to withdraw.

All should have been good but then I was asked, again:

Do you want a receipt for your transaction?
- Yes
- No

Again I selected "No" and finally my money was dispensed.

Part of me was glad to finally get my money.
Part of me was tempted to try that again and see if what would happen if I chose some of the impossible options.
And another part of me was saddened by the process.

Here are my issues with what happened:

The software repeatedly provided options for things it had said were unavailable.

The software made the process longer and more complicated than was necessary.

Someone was paid to make this software.
Someone tested and approved this software.
Someone thinks this is a good experience to give to their customers.
Someone thinks that we should trust them with our money inside complex financial systems when they make what should be a simple piece of software unnecessarily complex.

You wouldn't build software that provided an experience like this.
Would you?