Converting to Azure

As an experiment, I’m seeing about converting all of my old sites over to Azure hosting. Most get very low traffic because they appear abandoned, which is fine for my purposes. The head scratcher for me is hosting my MySQL databases. I’ll need to figure out how I’m going to do that before I will know what devices to spin up.

I’ll keep you posted.

What makes a good developer?

I found this article during my morning reading:

View story at Medium.com

I skimmed it so I can’t argue too much either way but it is a real question to consider…  What does it take?  If you don’t need passion or talent, what do you have?

I understand that having passion and talent makes a difference but is it truly required?  It used to be the only people that pursued a career in software development were the maniacal fringe.  I suppose I count in that group because of the depths of my experience and passion for solving problems with software but…  I don’t have a BS in CS.  My undergrad degree is in Anthropology.  Go figure.  I do have a “related field” in CS and I have been writing code for a while name.

Computer Science isn’t Application Development. 

Do competent motorcycle riders need to understand how combustion chamber vortices impacts burn rate?  Do car drives need to understand the physics of an ABS system to successfully actuate a brake pedal?  Do users of LED lights need to understand superconductors or flip a switch?  So why should a web UI/UX developer need to know the gory details of how processor manages it’s internal command queue?  They don’t.  So why do we make a CS degree a requirement to join the ranks of “professional” developers?

Now take that idea one step farther…  Why do we require passion and talent when in some situations all we really need is a cog in the machine?

Personally, I think passion and talent are key but…  Like I said, I started back when only maniacs practices this dark art.

Maybe it is time to bring it all into the light.

Having a population that is able to write code should be a democratizing of technology.  Everyone should understand the basics of it, if only to bring software development into the light.  Maybe if people understood how much time and effort it takes to create quality applications they would…

  1. be more willing to pay for quality app.
  2. stop expecting instant solutions to complex problems.
  3. not fear the darkness that is software development and computers in general.

From a general education perspective, just knowing how to logically solve problems is a skill everyone should have.  How can you reach any middle to long term goal without the ability to deconstruct the larger goal and do step-wise activities to reach your goal.

Maybe this is all a bridge too far.  As I was trying to wrap up this post, I started looking for a cover pic and settled on “The Beib.”  But… doesn’t the existence of such people actually reinforce the notion that passion and talent isn’t truly required.  There are many factors that create success in a given vocation.  Sometimes, talent isn’t required.  Sometimes, passion isn’t required.  Sometimes, a passing knowledge is more than enough in any given field.

Frustration (aka Hostony Sucks)

Frustration: That moment when you realize your web host is run by a bunch of idiots.

I had been using Hostony for the bulk of my web presences and hosting client pre-release sites for well over 15 years.  In that time there have been a few bumps but they always got it worked out.

When my annual renewal came up,  I re-upped as usual.  Of course, it reminded me that I have between 4 and 6 websites that have been basically abandoned. Not ideal, but whatever.  Maybe it was time that I went back and cleaned out a few things.

I tried to log into my root site and got nothing.  It wouldn’t load. Hmm… I submitted a helpdesk ticket and got no response.  I waited a week, then used the chat service to contact tech support.  The tech told me my entire account had been deleted.  He would try to restore it and get back to me.  Another week passed.  I finally got focused enough on this problem to realize I hadn’t had a working web site in at least 2 weeks.   So I contacted the billing department to complain.  I finally get a response.  They told me all of my data was gone.  And there were no backups.

So… I’m a little pissed. They took my money, deleted my account and screwed up the backups so I can’t get it back.  Nice.  Quality.

In short, Hostony sucks. They are incompetent. Their customer support is non-existent and their technical skills aren’t any better.

Now I need to find a new host and see if I dig up old copies of my sites. In the meantime, I’ve still got this one which is hosted on Azure.

Language defines perception

I was reading an article last week.  Something in the MIT Technology Review…  Toolkits for the Mind.  This article reminded me of my  interest in the mappings between language and perception.

I fix things.  That’s what I seem to do.  People bring me problems and  I find solutions.  Sometimes, it’s not what others might have planned, but that’s what I do.   But I do it all in code.  As part of this, I have to acknowledge that all of my solutions are bounded by the languages I use to code those solutions.

I know a handful of programming languages.  I started with GW Basic at about 8 or 9 in my parents basement.  I picked up Pascal, C, C++ in college.  In my first real job after graduating college I learned Perl.  I lived and breathed the LAMP stack for years.  Then new SQL variants.  A few scraps of VB.  Somehow, I ended up using C# and XAML for 90% of what I code today.

So how do I break out of those boundaries?

In the last year, I’ve been trying to reframe my programming.  I want to leverage the larger concepts of the art of solving problems with code.  The effort is more than Computer Science.  It includes Philosophy, Linguistics,  Neurobiology, and Cognitive Science.  I’m trying to rewire my brain along the way by forcing myself to think outside of my comfort zone.  AOP is a part of that effort.  We’ll see how all of this turns out in the next year.

We hire the best…

You might be noticing a theme…

https://blog.codinghorror.com/we-hire-the-best-just-like-everyone-else/

This is a huge issue for me.  We have wasted so much time on bad hires when it comes to our contingent workers.  Having learned from experience, we no longer bring someone in if anyone on the interview team has any bad vibe about the individual.  Apathy is a no vote as well.  Everyone has to agree the person is additive or we don’t bring them in.  It is better to be understaffed, know our limitations, and keep the code clean than to bring in someone that will only make things worse.

PS: I just finished another phone screen.  I voted him down in under 10 minutes.  After he couldn’t answer the second technical question, I didn’t see any point in continuing.  We did continue, but it only took another 5 minutes for everyone else on the team to agree.  Thanks but no thanks.

 

No Bozos

http://www.forbes.com/sites/ericjackson/2012/01/31/why-every-company-needs-a-no-bozo-policy/

One of the few areas where I agree with Jobs.  The bozos need to go.  From my experience, these people tend to be project managers, business analysts, and super-users.  In other words, people who think they know how to do my job, but really don’t have a clue who to write software in an enterprise environment.  I don’t know how many times I have heard “Ya know…  I used to code too.”  Queue the eye roll.  “Really, if you were any good at it you’d still be doing it which is why you’re not programming any longer.  Right?”  I am PC enough to not say that out loud (yet), but I have started heckling the people that use that line on me in more subtle ways.   “Ya know…  That headshot makes you look like a salesman.  Exactly what are you trying to sell?”

Something else I read recently in a Neal Stevenson book, Reamde:

A’s hire A’s.  B’s hire C’s

Which kind of explains why we have such a hard time finding the right contractors.  I wants As.  I don’t want people to stroke my ego.  I want people that can write kick-ass code while conforming just enough to allow their code to be supported in the long-term.

It’s even better when they can teach me something.

I’m allowed to dream.  Right?

Changing Roles

I’ve been working on a series of POC projects that all went live with little time to pay off the technical debts incurred when converting a demo app to a production app.  The time is finally come to start paying off the debts.  This week, I’ve been refactoring an app to be DI.  Last month, I had to rewrite an app basically from scratch.

QualityWe have 4 projects in flight as of this morning.  I think it is 2 web apps, a WPF dashboard, and a VSTO add-in for Excel.  We released another VSTO add-in a few weeks ago.  So I think we are sitting at 4 apps.  It might be five, if something spun up while I wasn’t looking.  I am now managing code quality for all of the developers.  With the expansion of our team to 11 + 1/2, my time has gone from 80% research, 10% support, and 10% teaching to something more like 50% code reviews/teaching, 20% support, 30% research thru refactoring.  <ugh/>

The single most important topic is supportability.  If you are writing code that doesn’t conform the general shape and style of our other pre-existing apps, I will make you redo it.  The problem is where extra person has to (re)learn an app every time we get a support call.  I’m trying to reduce friction so that we can get into the code, have a good idea or what’s what without spending days trying to understand the app, then make our fix and get out.  To that end, I can’t let anyone slide on code quality.  I have to be a dictator about it.  “You will do it my way…”  I hate managing people like this, but it has to be done.  The alternative is very unpleasant.

Keep in mind, we have something like 17 apps already in production.  Some of that code is crap.  But…  There are a lot of good ideas in there too.  My role is now to keep all of that previously acquired knowledge in my brain and pull it out to the betterment of the team.  I do this during design meetings (a pre-coding code review), during the weekly team technical meeting, and during code reviews.   Doing code reviews was not exactly what I signed up for but I’m the one who cares the most of the 3 Blues.

<shrug />

Hopefully, I’ll hit a good groove and find the time to write more about what I have learned in the last couple months.

Enjoy!