Social Communication Disorder

by October 8, 2019 09:30 PM

The Long and Short of it

I was diagnosed with SCD October 2nd, 2019.

This post isn't any kind of plea. I'm not looking for any kind of special treatment going forward or even forgiveness for my past behavior (though I probably do owe an apology or two). My hope is that it serves as a convenient place to point people in the future. It would also be nice if someone else new to SCD stumbles across this and it makes them feel better knowing they're not alone.

What is Social Communication Disorder?

It's also sometimes referred to as Social (Pragmatic) Communication Disorder and Pragmatic language impairment. It's coded as DSM-5 315.39 (F80.89).

You can find different explanations all over, but I like the way it's stated in its Wikipedia entry (at least at the time of this writing):

Individuals with social communication disorder have particular trouble understanding the meaning of what others are saying, and they are challenged in using language appropriately to get their needs met and interact with others.

Interacting with others is indeed a challenge. My daughters frequently remind me that I have trouble peopling. While many share this challenge for various reasons, I am apparently physically wired for it... SCD is a neurodevelopmental disorder (my brain wired itself a little off kilter very early in life).

Why was I tested?

Six months prior to the diagnosis (April), I saw a therapist for the purpose of a kind of checkup. I wanted to ensure I was doing a decent job raising my younger daughter (the older having already grown and moved out). Just asking friends and family wouldn't have been enough (or trusted - bias!), I wanted a professional's opinion. Toward the end of the very first session, the therapist asked me if I had Asperger's Syndrome.

Asperger's Syndrome? I said I assume not since I have never heard of it. She thought it a strong possibility so sent me home with a link to an online test: Aspie-Quiz. That test showed what she called "interesting results", but nothing ultimately came of it. Our time together was rather short - she assured me she thought I was doing great by my daughter and didn't know how else she could help. With Asperger's and Autism not being her thing, all she could do was wish me luck and shuffle me along.

After noodling this new idea for a while, I took a more extensive online test: The Ritvo Autism Asperger Diagnostic Scale-Revised (RAADS-R). That link is specifically to my test result. It shows scores well above the thresholds for being suspected as having ASD. Well that was it for me, now I had to know.

Where was I tested?

At first I couldn't find anyone local who could do adult ASD evaluations. As luck would have it, a friend at my daughter's karate dojo works in the field and knew someone who might be able to help. She pointed me to The Center for Professional Psychology down in Fort Smith. I hadn't even considered broadening my search there. Dr. Jackson is the psychologist there who helped me and I couldn't be more pleased. She is extremely easy to talk with and really seemed to understand not only me, but everything to do with Autism and Asperger's. I truly felt I was in good hands.

The evaluation happened over three visits. First was a one hour screening that allowed her to hear my story and determine whether or not Asperger's/Autism was even a possibility. I liked the idea that she wasn't going to waste either of our time if it wasn't. The second visit was the full 4 hour evaluation (IQ test and 4 different psych tests). The final visit was three weeks later when I got the results.

The evaluation showed that I am not neurotypical, but also that I do not exhibit severe enough symptoms to support a diagnosis of Autism.

Back when Asperger's was still a diagnosis, I would have landed there, but now Asperger's has been split such that the patient is either severe enough to just be called autistic, or the patient is diagnosed with the less severe condition of Social Communication Disorder.

TMI - more detail from the psychological evaluation

Here are a few notes pulled from the clinical summary.

This condition involves poor social skills, including problems initiating and maintaining relationships appropriate to his achieved chronological age. It also includes difficulty understanding the perspective of others.

All of these issues have led and will likely continue to lead to functional impairment in his primary relationships. Social Communication Disorder is a developmental disorder that affects the patient on a chronic and lifelong basis...

He processes life from an almost exclusively logical framework and struggles with perspective taking of others who tend to be more emotionally driven.

Finally, personality testing and interview information identified an overall level of low emotionality with no clinical emotional symptoms. Thus, he has a higher threshold for experiencing emotion than most others and a general tendency towards anhedonia or a lack of enjoyment in activities as others might enjoy. While this limits discomfort, it can also limit positive emotional expression and it may routinely be misunderstood by others.

 All of these issues have led and will likely continue to lead to functional impairment in communication in maintaining interpersonal relationships.

This was pulled from the section detailing specific test results (MMPI-II-RF in this case).

He tends to have less positive experiences than is typical as well as tends to be pessimistic, self-critical, and prone to guilt. Moreover, regarding interpersonal functioning, his response profile indicates that he is likely to avoid social situations, be introverted, have difficulty forming close relationships, and be emotionally restricted. He is likely to be uncomfortable and socially inhibited.

Where do I go from here?

That's a great question.

On one hand, I have survived this long. There's a reasonable expectation that I'll plod along just fine the rest of the way too even if I change nothing.

However, Dr. Jackson did leave me with some great recommendations. Things like continued therapy (including a reference), supplements, volunteering, and something called adult based pragmatic speech therapy. I like the idea of all of these. They might make for some great adventures and stories too.

I think I'll sit on it for a minute. Spontaneous is not generally a word used to describe my actions. I'll keep you posted.

Tags: ,

Do You Use All Of Your Unlimited Vacation?

by May 6, 2018 07:00 AM

Unlimited vacation is a bad idea

I used to love the idea, but after having it a few years, I've changed my mind. Even though I had unlimited vacation, I don't think I took nearly enough time off.

Not taking enough time off is what inspired the title of this post. Of course you can't take "All" of something that is unlimited. Yet, I would frequently feel short changed on vacation. I don't think it was anything intentional on my employer's part and I don't think it was entirely my fault. I lay the majority of the blame on the notion itself.

Why didn't I take more time off?

Asking for time off is still awkward. It feels like I'm putting everyone else out because someone will have to take over my duties while I'm away. Even if there are very few duties, there is still the fact that the output expected from me will have to be delayed. Maybe that's fine. But there's that part of me that is sure that even though everyone is saying and acting like it's fine, there's a little disappointment or even frustration below the surface.

And then there's the fact that in reality "unlimited" does have a limit. It's not like your employer would let you take the entire summer off every year or just take week after week indefinitely. At some point, they will decide your salary could be better spent elsewhere unless you start taking less time off. I don't like that the limit is unspecified, yet we all know it's there. Even worse is that the limit is subjective and will fluctuate depending on the manager and employee.

I never hit that limit. I have a feeling I never even got close to the limit, much less being asked to take less time off. Yet, I was never asked to take more time off either.

What I really meant

Unlimited admin time and sick days more accurately describes what I actually desired when I used to talk about unlimited vacation.

I like the thought that I can run errands as needed without having to cram them into lunch or keep detailed track of vacation hours every time I step out. I also like the freedom to skip out a little early from time to time, especially on Fridays. I do understand that even these freedoms could be abused and tolerance will still be subjective. But if the environment is open about expectations and the use of this kind of "admin" time, then everyone will be doing it and I wouldn't ever feel like I'm taking advantage. That and running errands or leaving early a couple days a week will rarely impact feature delivery.

Even though I rarely need sick days, I also like the thought that they aren't tallied in any way. When you're sick, just take the time off without consideration of any kind of yearly quota. If you're the type who frequently fakes being sick, I feel like everyone can usually tell and we're back to the subjective tolerance of your current boss. If you're truly sick though, even if you're the type who is sick a lot, then it's not like you're out enjoying your time off. No need to add to you misery by knowing that you're eating away your precious vacation time.

A better way

A friend told me the vacation policy of the Netherlands - government mandated minimum of 6 weeks per year. The interesting part is that if for any reason the employee cannot take all 6 weeks, the employer must pay the employee an equivalent amount in the form of a year-end bonus. This sounds very cool and really close to what I would consider ideal.

In my ideal world, vacation would be a range where the bottom number is a forced minimum and the top number is strongly encouraged.

Perhaps we could marry this ideal world with Netherlands' approach. Anything below the top number would be paid out. But again, the bottom number would be forced.

Now obviously I'm missing a lot of scenarios that would need to be considered. My first thought would be small businesses. Secondly, who is forcing the minimum? The government? Or would it just be the policy of forward thinking companies. Maybe it would be the thing all the cool companies start doing - just like unlimited vacation is the cool thing now.

I don't know the perfect solution. All I know is that unlimited vacation hasn't worked out so well for me.

Tags:

Minimal List Debut

by December 31, 2012 04:52 AM

Over the holidays I created and published a new web application - Minimal List (http://www.mnmllist.com). From the application's about page:

Minimal List was created to solve a need my daughter and I had - a simple way to have our weekly grocery list online.

You can read the rest of the about page for more detail, but that pretty much sums it up. This post was indeed meant to introduce the app, but more than that, I wanted to talk about the geekier details of the project :).

When my daughter and I decided we needed (yes, needed!) this application, we knew that a mobile application was in order because one of the primary places we'd be using it is at the grocery store - to check off items as we put them in the cart of course. Well, anyone who knows me well knows I'm a web guy and tend to avoid rich clients if possible. However, I don't have anything against an application that looks like it is a native mobile app. I just prefer HTML and javascript over any of the proprietary stuff for the UI. I'm obviously building on the MS stack (ASP.NET, MVC4, C#, IIS, SQL Server), but I like the UI to be a browser (usually Firefox or my phone's browser for me personally - iPhone for the daughter).

jQuery Mobile

jQuery Mobile (JQM) was created exactly for this purpose - a native mobile feeling, but served from the web. It's also something I've wanted to play with for a while now - again, if you know me you know I'm horrible at just "playing" with things in spikes and throw away code. I like putting things in production and seeing how things go in real scenarios. So finally, a legitimate reason to play :).

I was quite pleased with the development experience using JQM. In the editor, the footprint is actually quite small. Mostly simple and regular HTML elements that are just tagged with some special JQM attributes. The existence of these attributes (after including JQM css and js of course) is what causes all the magic to happen. So once I got to know which attributes to use, things started moving along rather fast because the rest is just plain web application development like I've done for years.

However, the first real test at the grocery store wasn't all that great. My daughter went to Oregon for the holidays, so I didn't get to see what it is like on an iPhone, but the performance on my Windows Phone 7 was completely crappy. I spent a lot of time standing there waiting on screens to load as I was updating my shopping list items with either price or isle information. Completely unacceptable user experience.

Other than performance though, it worked as advertised! No bugs or issues and the grocery trip experience was exactly what I was looking for (not too surprising since I designed the app specifically for the experience I was looking for).

Next Step

The next step is obvious - improve the UX. Not sure how I'll do it yet, but there are a few paths I can take.

First, part of JQM is AJAX navigation. It intercepts local links and queries for the resource AJAX-style instead of navigating away from the current page. It then takes the response and loads it into the existing DOM all fancy like so it feels more like the native experience. This also makes the UX faster because your browser doesn't have to re-run all the javascript and whatnot that happens on a full page load. However, when you navigate to a page where you've already been, it just shows the page it already has in the DOM instead of re-requesting the URI. This sounds great, but can be challenging with data-heavy pages because the data obviously isn't going to be fresh. To get by this for now, I just turned off the AJAX functionality for most of my links and form posts. So this is something I can look into - there would obviously have to be javascript watching for those page transitions so it could dynamically update the data on the page if necessary.

Second, I could take a more SPA approach - Single Page Application. I could still use JQM for the UI and page requests and whatnot. But the main feature sections would become small SPA islands and I wouldn't do any page transitions at all within the context of that feature. This might be a good time to start playing with knockout.js or something.

And of course, I could always completely abandon JQM. I've created web apps before that were careful to be a good UX even in a phone browser, but didn't look at all like a native phone app. But where's the fun in that?!

The Code

I decided to leave the code in a public repository for all to see:

Momo

Project codename named after Momo from Avatar: The Last Airbender

You'll also notice a link to the commit that created the currently released version in the footer of every page on the site. However, when things move on and you want to see it exactly the way it was as of this post, that commit is ceef281.

That's it for now. I hope you all have had an excellent holiday season.

Tags: , , ,

Toph - Early Architecture Decisions

by November 9, 2012 06:29 AM

In Another Gig Completes, I mentioned planning to start a new project to help track consulting gigs. Here I introduce you to:

Toph

Project codename named after Toph from the Avatar: The Last Airbender

As I mentioned before, this project is meant not only to help organize my consulting gigs, but also give me a public project and codebase I can point to. I also hope to use the project as blogging fodder. Speaking of which...

Early Architecture Decisions

I've spent the vast majority of my career joining existing projects. There is always that sense of "that's not the way I would have done it". Well, I finally get to do it my way! It was tempting to go crazy with it and implement everything cool I've been reading about recently - whether needed or not, I might add. In the end I decided to go with a pragmatic approach that is much more likely to be a useful example I can point to when talking to developers as I continue consulting.

Visual Studio Projects

I'm still a fan of and will continue to advocate onion architecture (some might say Hexagonal Architecture). One difference you'll find between Toph and what I normally do though, is the lack of an Infrastructure project.

There seems to be a theme going around the blogosphere that is advocating the removal of unnecessary abstractions and part of the theme has been the combining of projects. The idea is that it is perfectly possible to create an architecturally sound solution without using Visual Studio projects to enforce it. In case you're wondering how they "enforce" it, realize that Visual Studio projects won't allow circular references between two projects - whether by directly referencing each other, or indirectly (A - B - C - A would not compile). Therefore if you have a UI and a Core project with UI referencing Core, you couldn't reference UI from Core.  Thus, this usually prevents you from directly doing UI type actions from within Core since you couldn't touch the controllers or view models.

I'm almost always a fan of pragmatic programming. As it turns out, the Infrastructure project never proved that exciting for me as a standalone project. So I just created a namespace within UI called Infrastructure and dumped everything in there. You see, everything usually consider Infrastructure is generally only used during application startup anyway as I'm building up the inversion of control container.

However, I still very much like having my Core separate. It just feels right. So, I decide three projects are all we'll need in this solution

  • Toph (I decided there was no reason to call it Toph.Core)
  • Toph.UI
  • Toph.Tests

Even if I end up adding another project in the future for scheduled tasks (to be run on some application server somewhere), leaving Infrastructure under UI should still be fine. That's because I generally just invoke endpoints in the UI from those background tasks rather than directly dealing with the domain or application's database.

UI

New projects should always be started with the latest and greatest, right? I went with ASP.NET MVC 4 of course. Specifically, I started with the Internet Application project template.

Data Access

That template starts with using a local database and using Entity Framework as its ORM of choice. As expected if you know me, I changed that use SQL Server 2012 Express and NHibernate. To do that...

  1. Delete InitializeSimpleMembershipAttribute. This is the attribute added to AccountController that ensures the database exists and is initialized. There is only one line in there that is needed: WebSecurity.InitializeDatabaseConnection.  I moved that into Application_Start
  2. Delete UsersContext. This is the EF DbContext
  3. Move UserProfile from the Models directory into the domain and kill the EF attributes
  4. Add Fluent NHibernate
  5. Do all the normal NHibernate config and mapping stuff
  6. Change your connection string
  7. Create the database with the single UserProfile table
  8. Run the application

That should do the trick.

Other notables

The only other things I added to the project were Structuremap and my personal code library RobTennyson.Common.

I also stuck with restricting domain access to a Service Layer like I usually do. One difference I thought I'd toss into the mix this time is a bit of CQS goodness (not full blown CQRS, mind you). We'll see how this turns out as the project grows.

Grabbing a copy and playing

If you're interested in playing around with this, but sure you get the code specifically from this commit: 91a19e9f8b

I'll be moving on with the project of course, but at that exact point, the project is still basically just the default template - well, juiced up a bit, but basically still has nothing to do with the real project in it yet.

Happy coding

Tags: , , , ,

October 2012 - Another Gig Completes

by October 30, 2012 07:39 AM

A couple weeks ago I wrapped up my last contract. I mentioned it in Drowning in New Technologies. Again, awesome, awesome contract – I learned a ton and got to work with some really cool people.

What’s Next

The last time I had a break between contracts I started playing with electronics (see ZigBee Garage Door Opener – yes, it's still working like a champ). I've thought about picking that adventure back up, but am hesitant because of a couple roadblocks I had started to run into before. First was cost – tinkering with electronics isn't crazy expensive or anything, but if you wanted to replace every plug in your house with a smart plug for example, it adds up quick. The true low cost solutions are really only present in bulk – massive bulk. The other road block was simply my hesitation to truly devote to something so big. You see, I tend to over-do everything I get into. If I was going to get serious about it, that meant starting a journey of mastering all aspects of electronics – everything from the basic electronics knowledge needed to get a circuit working to learning all I could about physics. Knowing how to do something doesn't cut it for me. I have to know exactly why every piece of the puzzle works. People spend years and sometimes entire careers mastering this. I'm not sure I'm excited enough to devote myself that completely to it. Maybe being a hobbyist is the key here; not working out how to profit from it.

I think I'll stick to software and stick to the aspect of it I know best - enterprise web development. For a while yet, that means continuing to consult. I still hope to create a product of my own though and consulting might be the key to that as well. You see, I've worked out a cobbled together way of managing my gigs, billable hours, invoices, and whatnot. It's a mixture of folder structure, documents, an Outlook calendar for keeping time, Excel templates for the invoices, and a lot of copying/pasting followed by printing to PDF.

I'm pretty sure there are solutions out there for this, but creating my own will do two important things for me. First it will potentially turn some profit if it turns into something others find useful as well. Second it will give me the codebase of a real world application that I can use for both pointing potential consulting clients to and as an example when trying to explain a concept to another developer. It is sometimes rough when someone wants to see some of what I've done or they want to see an example of whatever pattern I'm prattling on about, but everything I've done is internal and proprietary. I'm good at coding on the fly and coming up with sample applications, but nothing speaks truer than code running in production.

So that is my immediate plan. I've upgraded to Windows 8, Visual Studio 2012, and ReSharper 7.0. I've also purchased ASP.NET MVC 4 in Action to make sure I haven't missed anything over the last year. Once I've gone through that, I'll get started on my first product. My intention is code it publicly (GitHub of course) and blog along the way about why I've done this or that in the codebase.

That is, unless I change my mind 12 seconds after clicking publish on this post, or unless another gig comes along much sooner than I expect it to. Wouldn't be so bad if I could manage to write some code in the evenings and weekends. Stupid Warcraft! Yes, I still play - have long since given up raiding, but I do indeed have a level 90 Druid already and have a young panda monk decked out in heirloom gear anxiously awaiting my attention.

Wish me luck!

Tags: , ,