Tuesday, February 14, 2017

Yet Another Take On Software Developer Archetypes

If you search for Software Developer Archetypes you'll find a large number of perspectives on this ranging from serious and helpful to lighthearted to frankly...kinda mean. I'm going to give a lighthearted example of core Archetypes I find when dealing with software developers.

The Squirrel

These developers are happy to jump between frameworks, languages, design patterns willy nilly and will be running 1000 miles per hour toward a "Haskell event processing framework to render static HTML files" and after 3 weeks/months, suddenly pivot, turn 135 degrees, and implement the remaining 10% (which will only take a couple days) in Ruby on Rails. By the end of a project, there are so many frameworks, dead ends, and partially done solutions that no matter what the original design was...their immediate solution for all problems is to "rewrite it in...something else".

The Sloth

These are almost diametrically opposed to squirrels, they often know "one thing" (though not always), but the defining feature is that it takes 3 weeks to implement "Hello World" in a language explicitly designed to produce "Hello World" apps. You can immediately spot these folks because the "remaining estimate" tends to either stay at "two weeks" (or some other random time amount), or you have to pad their estimates by the factorial of their original one.

The One Trick Pony

These developers are a middle ground in velocity and direction change between the first two, but are characterized by always having a "go to solution". If they're a "java developer"...coding something in Groovy will "blow their mind" and they'll insist this new arcane "dynamic mumbo jumbo" is completely useless. They are often religious defenders of "their way of doing things" and often have "any thing you can do in 'A' I can do (maybe better, maybe not) in 'B'".

The Duck Billed Platapus

While interesting creatures, these developers are easily spotted when you look at their code and you spend most of the time scratching your head thinking "WTF?". They are often adept at stringing together inappropriate design patterns and tools to produce solutions that just don't make sense from any reasonable perspective. At the end of the day, their code may "work", but it is a nonsensical assortment of odd parts glued together seemingly ad-hoc.

Thursday, December 8, 2016

Five simple steps to select the ultimate software development tool

After years of keeping it a secret, I'm finally going to let folks in on how to select software development tools. The great thing about my process is it applies to programming languages, frameworks, design patterns, and many other development aspects (even 'non software development' things).

Here's the process:

  1. Does your current tool support your business goals? (things like: speed to market, cost, uptime, available programmers of the appropriate caliber)
  2. If yes, why are you reading this? you already have a tool, get to work.
  3. Can you modify your existing tool (keeping in mind the modification needs to take into account for business costs of modifying the tool) so that #1 applies?
  4. If yes, get to work modifying it.
  5. 90% of the time, I've found you don't need this step, but if you do...look for tools that more closely align with #1, try them, and go through the process again.

There you have it! Five simple steps to the ultimate software development tool.

Wednesday, November 16, 2016

News media bias and how to read through it

This morning I saw a Facebook post from a fairly liberal friend about how he watched something on Fox News and couldn't believe people thought this stuff was real. It's interesting to me, because of course it's "real", but it's only telling the parts that their audience want to hear. So to that end, I thought I'd share some tips on how to detect bias and separate "opinion" from "fact". I'm not a journalist, but this skill is very helpful in "real" life too. All people can have a variety of opinions, some deeply held, some changing all the time, but some people confuse opinion with fact and it is a major reason reason for conflict.

Opinions are judgements (hopefully) based on facts, facts are verifiable

For a little more detail, here's a pretty good assessment I won't go into detail, but a key thing to consider is "how can I disprove this?". If it is possible to disprove something, then it's probably an opinion. If two different people can observe different "facts" in the same situation, it's still an opinion. If no matter how hard you try, you can't disprove something, it's probably a fact.

So now, for my illustration of the differences (using recent events as an example). Recently, there were riots in Greece. This is verifiable from multiple sources and there are multiple pieces of photographic evidence to this. Generally, you COULD hold the opinion that all this evidence is faked by some huge conspiracy that is seeking to misinform you (and some people hold this to be true...unbelievably), but it would make your world so small because the only thing you could really trust is your own opinion based on your personal life experience and perception of the world. If you instead trust that other people can report facts to you reliably, you simply need to strip their opinions away and you can get to some kernel of "fact".

Let's look at how this has been reported in the news: Fox News has the headline "Greek police use tear gas, stun grenades to quell anti-Obama protesters in Athens". This is a really catchy and emotional statement that seems to imply Fox News has intimate knowledge of the protesters' intent. While an interesting opinion, there are many manufactured pieces of information that are presented in a manner that implies the people reporting the news are somehow omniscient and can know "why" the rioters are protesting. Nowhere does it explain how they know that communists are protesting a visit by President Obama, it's just floated as a fact (but is really an opinion). At the very end of the article, there is a quote which reads "American imperialism has not changed," Lafazanis said Tuesday. "The U.S. presidents and administrations have played — and still play — a leading part in the bailout-linked plundering of our country ... and their interventions are drowning our part of the world in blood and creating refugee waves." which seems to imply that Panagiotis Lafanzis a Populist politician in Greece is very angry with United States foreign policy. Makes sense, I respect his opinion and understand why he might feel that way.

Now, another source, CNN proclaims: Arrests in Athens as protest turns violent during Obama's visit to Greece. This seems to only state verifiable facts... President Obama is in Greece, people rioted and were arrested. Furthermore, in reading the article there are no statements that aren't attributed to a source about the rioters INTENT or theories about their THOUGHTS, simply clearly written statements about "what happened" and "who did what".

Finally, we have The Telegraph and their headline is: Greece crisis: a second day of riots in Athens (they're a few hours ahead of the US so they're reporting day 2). They have a bit of colorful opinion, because they're stating the opinion that Greece is in a crisis...not sure how they can possibly know that is or isn't true...in fact, knowing if something is a crisis or not is inherently an opinion, so I'd have to ignore that judgement. What's interesting about this (very brief) article is that we get the nugget of information that the protesters were a group of communists who had a legal permit to protest and they were attacked by a mob of counter protesters. Funny that this information is somehow lost to CNN and Fox News, but mostly just an observation on "what is important" to different news agencies.

After analysis, my opinion is that it's reasonable that pro capitalist (or plain 'ol anarchist) folks attacked a bunch of people they disagree with. It's difficult for me to understand how Fox News reached the conclusion that anyone was protesting for or against President Obama, but it's stoutly proclaimed in such a manner that an uninformed reader might believe to be a fact. Again, to read through the bias, it takes a bit of mental training to ask yourself "how do they know that?" and "can I prove or disprove it?", if the answer to those two questions is either "I don't know", or "they must have information I don't have that they didn't share", or "I don't really care, I want to believe it and it fits within my worldview so i won't challenge it", you're probably reading about folks opinions, not facts.

P.S. Japan Times has an even better article...better meaning it has more facts than any of the other three and almost zero opinion...