When I heard Elon Musk was starting a company to connect the brain to computers, I was pretty excited. I really like computers and believe that sentient beings could eventually move from biological to non-biological entities. Our very own late biological metamorphosis would be nice way to look at it. I have had a little time to think about it, and I've realized, I have some habits when it comes to technology that might not play out well if the technology was ME.
1. I tend to take my devices apart just to see the insides.
I can just imagine getting home with my new robot self, and immediately I start taking things apart just to see how I work. Equally disturbing would be changing the Operating System, although...if I'm the Operating System and I change me, am I still myself? Then...being the guy who wants to see what will crash my system might also be something that should discourage me from eagerly anticipating the whole Neuralink thing.
Automated Acceptance Tests
Automated Responsive Design Tests
Automated UI Tests
Automated API Tests
Automated Integration Tests
Automated Unit Tests
Is it just me, or are there a lot more types of automated tests these days? It seems like a lot, and while automated unit, integration, and API testing scream value, anything that uses a browser to test an application is destined to have a certain reputation for being brittle and flakey. With that in mind, I'm a little surprised to learn this week of yet another kind of automated tests. Automated Responsive Design testing, makes a lot of sense to me. There are a handful of screen sizes out there and checking the layout of your app across the entire set of screens is difficult enough much less when you're checking two or three desktop sizes, a couple tablet sizes, and then the phones? It's a bit much.
While I am still skeptical of how many companies will adopt responsive design test automation, I am spending time learning the Galen Framework. It's Selenium WebDriver based, so I know something of where it's coming from. I find the lack of writing code a little difficult to get used to. I like writing code, but the Galen Framework makes responsive tests pretty simple and easy to read.
A couple tips though: px ranges must read lowest to highest ex: 30 to 40px
and if you're on a company PC with tight security, phantomjsdriver will help you get up and running tests quickly. If the tests prove useful, then you can pester security for some workarounds.
I taught myself to create software. I did it in a near vacuum of technical voices except only that of a mentor who was quite busy with his own work. As a result, the earliest software I wrote for my employer is very "connected". Each piece depends very much on the previous pieces. Sometimes, you could jump ahead of a flow, but most of the time, if the user doesn't follow a specific set of steps, things could start to bump into each other in unexpected ways. The last time I made any significant changes to the code was in November of 2012. Four and a half years may not seem that long ago, but it really feels like it was a lifetime.
I was once told by a more experienced programmer to be mindful of writing clean, understandable code. "Write code as if it will be maintained by an impatient axe murderer who knows where you live." The visions induced by that sentence were beyond humorous, yet I now find myself coming back to this old code years later to make changes. At my current level of experience, I have a great deal of difficulty reading the code I wrote. I want to think that I was better than this, but I'm not. I certainly would never have allowed myself to write so much dependent code. There are better ways to accomplish the things I rigged up. If only I had half the experience I have now back then. So much was done just to accomplish working software, but the cost now is pain.
One particularly terrible example of how bad I have it now is that at the time, I did not give meaningful names to the controls in my application. So, now I have to know what button3 is, and why textBox12 can't be overwritten. I have to know that listBox1 is a list of customers, and listBox2 is a list of items. I have to know that label45 is the warning that pops up when you click on radioBtn7 without clearing textBox6. It's just pain. And now I'll never forget to make meaningful names a very high priority.
Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer’s view in any way.