Monday, May 12, 2014

Become a Developer - Getting Started

Software Engineer and Developer consistently rank as a couple of the best jobs you can have. Software offers a good combination of mental challenge, limited physical demands, good flexibility, and good pay.

And it's one of the simplest, easiest things to get into.

Note, I'm not saying that it's easy to be awesome as a developer.  It takes time, study, and dedication. But of all fields, it has one of the the lowest barriers to entry of any field, in great part due to the generosity of the community, the desire of that community to share and spread knowledge, and their by-nature ability to use their talents to democratize and disseminate this information.

A couple nights ago a friend from outside the field was talking to me about possibly changing careers, and I told him that I would share with him some insight into how I would advise any adult to start if they showed any interest in the subject matter today.  Note, with kids, I might start a little differently (Legos, Arduinos, and Scratch, oh my!).

I'm amazed at the free resources out there, so I'd start with them.  This is in no way an endorsement of any of things I've mentioned here.  I'm not affiliated with any of these organizations

http://www.codecademy.com/ - free resource to learn interactively what coding is like.

http://code.org/learn - Directed more at kids, but if you are completely new to the concepts, spend some time here.

http://ocw.mit.edu/index.htm is where you find MIT opencourseware.  Bazillions of classes on stuff. You could easily start at the programming stuff and go from there.

ChicagoCodeCamp is a free community conference held one Saturday in April.  Meet people, network, learn cool things.  There are lots of local user groups and so many people are available to help you out in getting started.

http://www.pluralsight.com/training - Oh, the amount of professional training and content you get here is amazing for how little you pay.  Per hour of training, it might as well be free.

With such a low barrier to entry, and given how much work there is out there of many different types, why don't more people do it?  Why is there still unmet demand in the industry?

Well, it's hard work to do well.  There are vast differences in developer skill level.  There are differences in demand for different types of skill.  Also, while I say that anyone can learn the basics, it takes an attention to detail, an ability to focus on mundane details, an ability to think procedurally and logically.

Some people find that kind of work taxing, or boring, or just plain can't do it, but I'm not so egotistical to believe that the people in the industry are the only ones that are capable of doing this kind of work.

Of course, I'd be lying if I said I wasn't trying to be part of the education of the community.  I want diversity in my community.  I want more kids getting interested in STEM.  To that end, I am a proud organizer of That Conference.  We are a community-driven, polyglot conference that is held annually at the Kalahari resort.  $399 gets you three days of sessions, networking, and good fun.  Come out and join us.  Tickets go on sale 5/15/14!

Monday, May 5, 2014

Upgrade to the Walking Desk

So I have been using the walking desk for a few hours every few days.  I noticed that one big issue was that I was looking down at the monitor, even with the riser on the walking treadmill desk.  That was definitely a strain on my neck.  But any higher, and I wouldn't be able to type.

Solution? I need a monitor in front of me.  One I can look at without looking down.  As a touch typist, this isn't a big deal, and would be really handy.

How do you do that, though?  A laptop monitor is connected to the laptop.  Aha, I thought, I'll hang a TV from the ceiling!

So I picked up a new TV for the loft (the current one was a bit too small for the space), and appropriated that 32" set as a new monitor.  Then I picked up a ceiling mount for the TV on Amazon and put it up.

I also moved the treadmill to a different corner of the basement.  Here it is in all its glory:

The invisible man walks again!
My full setup for when I'm working.  Chat window on the left laptop, and active windows on the Yoga and the TV.  Coffee or water on the ledge to the right, remote on the ledge to the left.
Set productivity to 9999!
It works remarkably well.  Time to get back on it!

Sunday, May 4, 2014

Working from Home, Two Months In

Ok, before this milestone slips away from me, I've got to write up my findings.  Because that's what I do.

Granted, this blog has posts about everything from travel to technology, from Team Foundation Server to personal enrichment, from corporate motivation to Chicago traffic.

One overarching theme I'd like to think is interwoven through all these posts is the importance of being happy and productive in your life.  Living for the things that you value, and making the most of your time and passion.

I've long theorized about what working from home would be like.  I've talked to dozens of people about it, hosted a Codemash Open Spaces session about it, watched endless presentations on the topic, and read books on the topic.  From the Why Work Sucks and How to Fix It, to the Four-Hour Work Week, to The Year Without Pants, to Remote, I've read a lot on the topic.

I thought enough about it to at least want to give it a shot.

A year ago, I got my opportunity to give it a trial run: a part-time coding gig with a cool company out of California.  The interview was remote, the coding sample was remote, and the onboarding process was remote.  I spent hours working for them sitting on the couch, in the basement, or on my front porch.  I'd work in the evenings after my 9-5, or in the mornings on the weekends, or while waiting for my son during his scout meeting.

And it was fun.  I really enjoyed the focus I got from working remotely.  So when it came time to leave my previous employer, I knew that the ability to work remotely was going to be one of my base criteria for what a new job would have to look like for me to even be interested.

Note: remote work is harder to find than I thought it would be.  Of the many companies I talked to, a very small fraction of them enabled remote work.  Given the benefits that can accrue to an employer, not the least of which is more engaged and enthusiastic employees, I was shocked.  Butt-in-seats management is still firmly entrenched within organizations.

But persistence paid off.  I had time, and I spent it finding the right opportunity.  On March 3, I started at my latest gig.  My new organization has an office downtown Chicago that I've driven to a few times, but for many weeks, I've done my work from the basement of my house.

I have to admit.  It's the greatest thing ever.

Full disclosure, there's more than remote work contributing to my excitement.  I'm working for a much smaller organization.  They know exactly what we need to do, and have pretty awesome processes either in place or in flight.  On top of that, my new colleagues are all brilliant, and I can learn a lot from each of them.  And am learning a lot.  In all these regards, it's very different from where I came from.

As such, I can't necessarily attribute how awesome things are to the remote work.  So I thought I'd try to take a balanced look at my experience with being remote a couple months in:

Pros

More exercise:  Right out of the gate, there is more time available to exercise.  Between having built a treadmill desk for walking as I work and doing things with my colleagues like the squat challenge, there's more of a focus on getting moving than I had before.

More work:  Maybe I mean "more productivity" here, but I feel as if I get so much more work done. When you're not faffing about in the office getting stopped in the hall about ten different things, you can really get stuff done.  With nothing distracting you, it's amazing how in the zone you can get.

More family:  I'm putting this one in the more theoretical category, since I joined a team in full-barrel crunch mode moving toward a product launch, but I'm confident that in the weeks ahead, now that we're calming down, I'll be able to spend more time doing things like getting the kids off to school and having coffee and lunch with my wife.  I'm looking forward to that.

More freedom:  At home, you don't have the same level of scrutiny over your internets as you do at an office.  If I want to stream trance music over the speakers or listen to talk radio in the background, I can do that.  I'm not restricted to only receiving corporate mail over Outlook, and don't have to worry that all of a sudden GitHub.com or Knockoutjs.com will suddenly be blocked by the Corporate Nanny-Wall (both of which have happened to me).

More flexibility and fewer clothes: The school also called me to come pick up my daughter, who had strep.  I went over to get her and was back coding in about 10 minutes.  And she was upstairs resting while I was there. That is some flexibility right there.  That was also the first time I've ever had to say, "Shoot, I need to run out. Where are my pants?"  (I often work in running shorts because I use the treadmill desk on and off.)

Smaller environmental footprint:  This doesn't appeal to everyone, but I like to try to reduce my environmental footprint. Not because I'm an environmentalist, but because I am resource-conservative at heart, in the sense that I only like to use what I need and use what I do need efficiently.  When two weeks went by without having to put gas in the car, a little part of me did a happy dance.

Email:  Working with my team, we depend on chat, and are in direct communication all day, every day. As such, the need for email is basically nil.  We use it for broader, more consistent and more persistent topics, although for real stuff, we tot it up in Google docs and throw it in the cloud.  I can't tell you how little I miss having a life run by Outlook.  I've been moving away from it mentally for a while, but to finally get away from it is so lovely.

Dress code:  My whole working life I've been biz-cazh.  High school was shirt/tie.  I always felt that I got more in the spirit of working when dressed up.  Like formality was learning.  Sure, when I was in grad school, I wore shorts and T-shirts to teach labs, but that was Tucson, and no one wears a lot of clothes there.  But I did have the aforementioned "pants" epiphany.   I often wear running shorts so I can walk while working, or even wear jammies up until lunch because they're comfy to walk in, too.  Don't judge.

Cons

Diligence:  I don't know that it's a con, really, but diligence is a key requirement of having the right personality to work remotely.  It's been written about endlessly, that there's a real need to physically separate from the rest of the home to enable you to retain focus on your work.  Also, being diligent and focusing on your work can be really exhausting.  Being extraordinarily productive from home is well more difficult than being in the office.

Balance:  This is kinda the flip side of diligence.  I'm struggling a little bit because I'm an early riser, but the business hours for my org are 9-6.  What that means practically is that I am often up early, and since I'm up early, I jump online and start working, sometimes at 7:30.  Also, while I totally believe in the need for breaks, folks all take lunches at different times, so I hear the siren song of the chat window. I find myself in the basement and working longer hours that I probably need to, and certainly longer than is sustainable, but I'm enjoying what I do.

Chat:  So the way we communicate on my team is through a chat app.  This is very nice in that it is always open and on.  Once you get the hang of it, you can see what's going on peripherally and it's not really different from overhearing chatter in the office.  But sometimes... Sometimes you look at what someone's typed in the chat window and go "huh?" because what they've chatted makes no sense.  At least out of the context of sound and expression. Another thing that can be burdensome about chat is that when there's a flurry of conversation that you don't want to be part of, you may need to turn off the notifications or sounds.

Cleaning service: One of the things I didn't realize was that my work area in the office didn't stay clean on its own.  In the office, we had a cleaning service.  If I dropped a Dorito on the floor, no worries. Gone the next day.  In a home office, if you spill your coffee, guess who's mopping that up.  I hadn't thought about that.  Not that I have a lot of coffee-soaked corn chips on the floor, but I noted the need to be a lot more careful when eating around the work space.

Miscellany

Costs:  You'd think that costs would be basically a pro.  I haven't really analyzed the data, but I think I'm net #winning for the cost side of things.  I don't pay for dry cleaning anymore.  I wear fewer outfits per day.  I'm paying less in gas.  Car insurance has dropped.  I have to pay for food, but since I generally eat up leftovers that were getting thrown away anyhow, I think I'm doing it for free most days. That said, I have to have and maintain my own office, and any associated costs.

Loneliness and isolation:
I was warned very sternly about this.  The idea of being in my basement, not interacting physically with many people, is supposed to somehow be a drag, but I find it kinda the opposite.  I mean, with the chat and video and voice calls, I interact with my team at a rapid fire pace.  The rest of the time, I sit here by the window, lost in my head and the code and the issues I'm dealing with.  For me, it's a great mix.  So far, but I hear that like traveling, it can get old.  If it does, I'll be sure to post about it when that day comes.

Shoot, those are my thoughts on remote work so far.  I'd love to hear from you, though, on what your experience has been.  Hit me up on twitter or in the comments.

Wednesday, April 30, 2014

Pain-Driven Prioritization

How do you decide what's top on the priority list?

There's lots of methods, to be fair. I've always been a big fan of looking for the items with the largest Return on Investment (ROI).  The idea with this method of prioritization is that you have a portfolio of possible projects, and you figure out how much each will cost and what dollar value you could assign to the benefits of doing the project.

In the CFA curriculum, this is all discussed in the context of investments.  You want to figure out what a project is worth, so you make a few assumptions about the benefits, tot up what you know about the costs, net them out and project them back into today's dollars.  You end up either calculating the Net Present Value, or the Internal Rate of Return on investment, sort by that, and then make the biggest one your priority (to first order).  The discussion of these concepts is bigger than this little blog, but let me simplify.

All these things come down to always doing projects first that will give you the biggest bang for your buck.

And that's all good.  Figure out which project is the best spend of today's dollar to net you solid expected returns.  Some projects fold, estimations can be off, but if you have a diverse portfolio of projects and you're honest about your costs and benefits, these techniques can really work for you in the long run.

But what if you can't do that?  Some companies can't do this.  They either lack the talent of estimation, or the future is too murky to do projections, or all projects they look at have the same return, or even the organization is such a mess that any form of planning never really happens.  What can an organization like that do?

Well, one tech department I've worked with used, in part at least, a technique I always called Pain-Driven Prioritization.  Let's take the case of a very manual development process.  If you have three things that might possibly help the process along and only finite resources, what do you do?

You figure out what hurts the most and fix that.  If you can spend a few hours automating your build process, or your deployment mechanism, or how you manage tickets, it's time that will be saved down the road. Sometimes it's not the time savings, it's the friction savings.  If you can cost your developers fewer packet drops due to context switching and keep them focused on adding the business value that matters, you come out ahead.

You may be correctly thinking, "Well, this is still nothing more than bang for your buck, right?"

Precisely.

So why does this work, and why does it feel like such a different perspective to me?  Because it allows you to interview people and say, "Okay, this process is painful.  Where does it hurt?"  I've found, that if confronted with a question about how to improve their day, the response is usually about removal of roadblocks, or getting rid of annoyances.  It's hard for me to overestimate the power of improving people's days by removing the annoyances they face.

Ask any team, "Where is your pain?"  They can tell you.  Why have they not done what it takes to be out of pain?  Because they have goals, deadlines, business requirements to implement.  And they're not automatically wrong in doing this.

You can't sharpen your saw after every stroke, but you can't let it dull for years either.  Somewhere in there is the right responsible moment to pull out the rasp.

So take an assessment with your team.  Or extend it beyond the team to the business customers you serve. Where is the pain?  Let the pain be your guide.

I guess there's another name for this type of prioritization.  It's triage, and maybe we should begin using that term more in our communities when it comes to setting priorities.

How to Know You're on the Right Track

I noticed recently that whenever I'm trying to find a solution to a problem, I feel as if I can tell I'm going in the right direction by the amount of obstacles I run into while solving.  I'm not suggesting I've found my internal compass for coming to good solutions, nor am I suggestions that my solutions are the best.  Far from it.

Whenever there's a technical issue with a problem I'm tackling, my first and only thought is, "I can't be the only one to have ever come across this problem before."  And then I ask the Google who has conquered this hill already, and it tells me that some user on StackOverflow.com happens to have done this exact thing. Hopefully.  This single guiding thought is what gets me through most days.

And sometimes, it's not so easy to find someone facing your particular issue.  I've actually met teams whose technical hubris is so great that they believe their personal genius is indicated by the fact that no one has solved their problem.  That they are a unique flower solving problems in the most awesome way.  So often, however, it's because they've gone so far off the beaten path that they can find no one else in their situation to help them.

Let me talk through a hypothetical:

I have a web site I've built.  I need to get it deployed to a place where someone can see it.  I could manually build the solution, and copy the files to a server.  That's easy.  But then I start deploying more often.  And because I want to push changes so frequently, I end up spending a larger percentage of my time deploying instead of delivering business value.

So I have a couple options.  I can either grab a COTS (Commercial, Off-The-Shelf) solution that can build and deploy my software, or I could write a batch file that does a dos xcopy and be done with it.  There's a learning curve associated with the former solution, and almost none for the latter, so I go for the xcopy script.

Now I'm a couple years down the road.  I never wanted to take on the learning curve of TFS or Team City or Octopus or any of the other build/deploy solutions there were out there.  It doesn't take long, except now I might have four environments across many different products.  What was one xcopy batch file has grown to many nicely refactored batch files, and the parameters passed in correctly build and deploy my solutions across my enterprise.

All I've done is spent the cost of learning and purchase of the COTS system over a much longer period of time.  And who knows, maybe because it does what I want and only what I want, I've done it for cheaper. And it works.  What's wrong with that?

Well, nothing really.  Except you've committed to this solution, and every time something new comes up, it's a new problem that has to be solved.  Need to deal with restarting application pools, services, change configs, it's a new problem.  You have to spend time figuring out how it works in your framework.  When anyone new joins the team, there's a non-trivial learning curve to it.

Now let's rewind time and take the other path:

Say at that critical juncture, I went with a COTS solution.  When I need to do something new, because there's a larger body of people using the same solution, the likelihood that any particular problem you face has been solved goes way up.  With communities like StackOverflow out there, it's easy to find the information you need.  Not how to cobble a solution together from duct tape and baling wire, but to leverage the tool in the ways it was intended.

So with my home-grown solution, every problem I have compounds, and it gets harder to find a solution to my singular little problem.  Every patch to my system becomes hand-crafted.  And involving anyone else to aid gets harder.  With the COTS solution, every time I need an answer, there's more likely to be someone that's already solved my problem.

This is not to argue for build/deploy systems, or make a case for buy vs. build.  This discussion is only to illustrate the point: one way of knowing you're on the right track is when answers to your questions get easier and easier, not harder and harder.  This whole concept seems to be related to the Pit of Success, or even Stacking Functions, but that's a discussion for another day.

Also, I want to point out that these arguments all go out the window if you're intentionally trying to innovate. For lots of solutions, including build/deploy, that's probably not you.  If you're writing a bunch of custom devops tools to work around your solutions, for instance, that can be a smell that you're not going in the right direction.  If you are a small company who wants to build the best new build/deploy system out there, however, then being off the beaten path may be a sign that you're going in the right direction.

I've often heard it said, "buy commodity, build competitive advantage."  This advice is intertwined, I think. If you're working on commodity problems, pick up commodity solutions so the answers are out there.  Save your energy to innovate on the tough problems your business faces. They truly need you, and they trust you to make these decisions.

Travel Notes - Haikus Through Colorado

Why the heck did I do it?  Why the heck do I do anything?  Because it's fun.  All my trip notes were posted on FB in haiku form.  I decided to collect them here for convenience.

I am going to 
Make all my Denver trip notes
Vacation haiku.

Airport people rude. 
TSA? A-OK day. 
Very early flight.

Today's flight theme should be:
Middle aged women go pee.
They all brush past me.

Stewardess must rest
The flight is not very full
N keeps magazines

So many plane snacks!
We're on the way to Denver
Do not have munchies

Marijuana ha.
If I had it could I say
Vituperously?

Prep for baggage claim
I have to remember this:
To stay baggage calm

Plane is on descent
Can't describe how excited
Let the fun begin!

Happy Birthday N
Hope you have a great weekend
Rocky Mountain "Huh"?

We have just landed
No head shop in the airport?
Denver, WTF?

The crisp mountain air.
At the passenger pickup
Is so refreshing!

Say hello to the
Devil horse with orange eyes.
Bids farewell to you.

Denver Biscuit Co
Biscuit Cinnamon Roll yum
Denver is awesome

Only 10 a.m.
Two sandwiches already.
Delicious Denver.

Haha too much food.
I will need to run it off.
Time for food coma?

Amphitheatre:
Red Rocks. Am I out of shape?
Or just short of breath?

Photo: Uh oh where's Nicole.  I need to get a picture.  Oh shit - a selfie!
Uh oh where's Nicole. 
I need to get a picture. 
Oh shit - a selfie!

Girl walking up the
Red Rocks trail barefoot. "Good for
You, little hippie."

Thirsty Lion closed.
They open next Tuesday ... But...
Today lunch is free...

Photo: From the thirsty lion, 16th St Market - training day. We sure lucked out.
From the thirsty lion, 
16th St Market - training 
Day. We sure lucked out.

Got back in the car. 
Time on car is 4:20.
Ironic, ain't it?

Just chill and get Thai.
After long, wonderful day.
Now is time for sleep.

If you do not know,
And an argument will blow,
Google that shit, yo.

Nikki is sleeping
But I am not tired enough.
She is so adorbs.

Oh how I love a
Raucous round of Cards Against
Humanity. Good times.

Just so you all know.
Nicole's birthday tomorrow.
In case she forgets.

BeauJo's Pizza place
Has pizza with Mountain crust.
Dip that in honey.

Photo: This is mountain crust.  Chicken cordon bleu pizza. First bite amazing!
This is mountain crust. 
Chicken cordon bleu pizza. 
First bite amazing!

A beautiful day
In a tiny mountain town.
With beautiful girls.

Seem to be fighting
Constant battery issues.
Jeez. Seriously.

Photo: Kourtnie likes pictures.
So we took us a selfie.
While we were waiting.
Kourtnie likes pictures.
So we took us a selfie.
While we were waiting.

Off to see Boulder.
"A bunch of dirty hippies."
I can't wait to see.

Looking forward to
Seeing Odd 13 Brewing 
Out in Lafayette.

I got my first whiff
Of earthy B.O. just now
In downtown Boulder.

Pearl St. In Boulder.
Far more girls wearing bras than
I had expected.

50/50 is
Male to female ratio.
Odds good but goods odd.

Black IPA yum
At Odd 13 Brewing Co.
In Lafayette yeah.

Photo: Yep, that's filet mignon.  With bleu cheese on crostini.  Fucking amazeballs.
Yep, that's filet mignon. 
With bleu cheese on crostini. 
Fucking amazeballs.

Ok, so anyone
Want to buy our roomy house?
Moving to Denver....

Okay I get it.
Howl at the Moon not for dudes 
Just the drunk bridesmaids.


Oh dear God I'm old.
Those are not dresses ladies.
They're hotdog casings!

Oh the things you see
Muffin tops on strapless dress.
Oh no! Can't unsee!

Photo: Somehow I managed... To be part of someone's night... Farewell, Felicia?
Somehow I managed
To be part of someone's night.
Farewell, Felicia?

Apparently I won't
"Live dat shit down" says Nicole.
Goddamn weirdo, yeah.

Oh it's my liver 
Had enough? It says to me.
Fucking pansy-ass.

Mmm, smell that bacon.
Kevin Anderson cooking.
Om nom nom nom nom.

Hey Nicole Davis!
Just got one thing to ask you.
Did you sleep alright?

Tommyknockers pub.
Tundrabeary summer ale.
Simply refreshing.

Photo: Notice something odd? Weird place for power outlet.  It's GFCI...
Notice something odd? 
Weird place for power outlet. 
It's GFCI...

Some fine Grecian food.
Final dinner of the trip.
Yummy baklava.

Two minutes twenty
Seconds is too long for a
Wall sit. My poor thighs!


This somehow, somehow,
Reminds me of our weekend.
Too much food and drink?

Haiku, like Twitter,
Creates beauty solely from 
Brute force brevity.

Is not here this morning. Please
Leave a message. Beeeeeeep!

Relaxing morning.
Some internets and email.
Back to reality...

Photo: Tattered Cover Books - A reminder of how I ... Don't read anymore.
Tattered Cover Books - 
A reminder of how I 
Don't read anymore.

Photo: I found a book that ... I might like, but I do not ... Feel that suburban.
I found a book that 
I might like, but I do not 
Feel that suburban.

Horrible person:
Cards Against Humanity...
This shit writes itself...

Unisex bathrooms.
What an awesome idea
For single seaters.

What's pane Bianco?
Really? For shame on Udi's!
We call it white bread.

Last Comic Standing 
Winner Josh Blue also ate
Lunch here at Udi's.

Our flight is delayed.
Probably the Midwest storms.
Don't wait up for us.

Alley sale behind
Says they sell "Furn tools" there. Might 
As well say "Turn fools."

At Denver Airport
Chilling with my lovely wife.
Ahhhh, what a great trip.

Dyson Airblade fine
But XLerator is
Better at drying.

In Denver Airport
You can now come in for a
Bikini waxing.

Wheels down Chicago.
Roughest descent in ever.
Hooray almost home!

Finally at home.
The haiku has to end now.
Bet you are relieved...

Tuesday, April 29, 2014

All of It - It's All Been About Communication

Last night, my son was struggling with his homework.  He was really upset about it.  He kept lamenting, begging me to answer, "Why, why do I have to do this over and over again?"

What he was working on was a punctuation worksheet.  I think he was putting semicolons with conjunctive adverbs (e.g. however, therefore) and commas with coordinate conjunctions (e.g., and, but) and working to avoid the dreaded run-on sentences and comma splices.  He said they'd been working on them for weeks, and that he got them, but was sick of typing or rewriting the sentences because they're boring and repetitive.

He was lamenting rhetorically, of course, but an answer came to me so clearly that it shames me that it never dawned on me before.

The point of grammar...

The point of punctuation...

The point of handwriting and typing...

The point of spelling...

The point of literature and reading and interpretation...

It's all about communication.  That's all it is.  Boiled down to its basic, it's all about communication.  And you will, of course, look and me and say, "Well, duh, Batman... Of course, it's about communication."

But I never made the connection.

See, everything I learned about clearly communicating in my life came from self-help books.  "Getting to Yes", "How to Win Friends and Influence People", "Crucial Conversations", and "Year to Success" are a handful that come to mind.

None of them had anything to do with spelling and grammar.  None of them had anything to do with interpreting the works of Shakespeare.  None of them had anything to do with comma splices and conjunctive adverbs or future perfect tense.  Not one word was offered on how spelling well helps you communicate in the business world.

Yet that's what we teach.  Why?  All these rote rules and reading of "classic" literature all point me in the direction of one thing: we teach that way because it's easy. Now don't get your underpants in a twisty bunch.  I'm not bagging on teachers.  Well, not all of them.

They teach a discipline.  They teach what they're taught to teach.  They teach what they see.  They're not teaching the why.  Teachers may eventually (maybe) get around to teaching Critical Thinking.  For me, that class wasn't available until college.  But in my university, critical thinking was a separate course.  For Honors Students.  As if that's not the most basic course everyone should take before all others.

Why didn't we see that before?  How could this simple truth be so opaque to me?

Because so many teachers can't communicate.