Some background: I'm a diagnosed person with Asperger's syndrom (a high-function form of autism) who works at a smallish IT company (about 25 employees). My autism mainly manifests in diffulty in communications (both sends and receives) and difficulty with making and following schedules.

I have been working at this company for about 17.5 months now: 9 months on-the-job training and 8.5 months protection from firing (this period ends in november). The problem is that most of my projects so far have failed to succeed, whether they're internal products, demonstration versions or deliverable pieces. I've analysed what caused this, and in all of my projects, I've learned of the same 4 problems:

  1. a delay of up to an hour between arriving and when I first start in the morning, due to catching up on Twitter, my Stack Exchange history, my mails and any relevant IT blogs that posted overnight;
  2. General tendency to get distracted from my work when looking up how to write certain code, mainly through comments on blogposts and the SO sidebar;
  3. Being forced to rewrite parts of my code every few days because what I currently have does not work with the next part I need to write;
  4. Not properly testing all possible code paths, leading to untested code and inevitable crashes. We don't do unit testing because we don't have the time for it, and I doubt that I'll be able to persuade my company to do unit testing the proper way.

I notice the above problems in every project I do, to some extent, and can link them mostly back to my autism. I end up with code that has put way too much work into it, doesn't work properly and isn't delivered on time. I'm noticing some pretty strong signals from my boss that he is not happy with my performance (he constantly talks about "a big problem") and I'm worried that once my 9 months of protection are up, I'll be fired.

Out of my problems, part 1 and 2 often do help me in unforeseen ways, mainly because I remember what I read during these distractions rather well and can use it to support my coworkers with problems that they encounter. Part 3 is because I usually have to start from a general idea of what the application has to do, with someone else making a formal list of what is to be done while I'm starting. I also often find that what I made before is flawed in some way, and I end up working several hours to correct that, basically wasting the hours I spent on that part in the first place.

I struggled heavily with finding a job, spending almost 2 years of constantly looking for one and repeatedly getting turned down because of my Autism. When I apply to big companies (like a RealDolmen or a Cronos), they tell me that I should focus on small companies because they can be more flexible with employing me, while small companies tell me to focus on big companies because those have a more structured way of working that can support my special needs more structurally. The main reason my current company could even afford to hire me is because of multiple government subsidies from various national and regional departments.

I've done 3 internships: 1 with a national telco provider, one (paid) with the Special educational needs department of a major educational group and one with a subcompany of an international consultancy group. This is my first real job, and I'm making a mess of it. My coworkers need to spend too much time supporting me on my projects, negating the government benefits my company receives for employing me.

My current job is on loose bedding, and I'm suspecting it can no longer be salvaged. I'm concerned that, whatever my next job will be, I'll encounter these problems again. I also don't have a driver's license due to my autism (traffic is far too stressful for me, often even when I'm just on my bicycle), so I'm limited to whatever I can reach through public transport or on my bike. I already applied to most companies around, many of which don't bother responding, or already made their minds up about me once I mention my autism (which I have to, since it is relevant for how much support I need from the company and can get from the government).

i realize this starts to sound like a "I need advice post", so here's 2 questions I'm trying to solve:

  1. Is there a way to salvage my job?
  2. If I get fired and decide to continue job hunting, how can I fix those problems I mentioned above?
  3. I am also considering just staying of the job market and instead picking up writing. I already have most of the general story and world of a sci-fi book in my mind, and people have told me my writing quality is really good. Would pursuing a career as a writer be a plausible alternative to struggling on the job market?

I wanted to share a final update in case a prospective employer reads this when googling me and is put off by it.

Yes, I was right to assume I would be let go. A few days after I made this question, I got my 6 weeks notice. However, the reason that was cited was not "your performance is below an acceptable level". They said that in their eyes, I put a lot of effort into trying to making my code work, only to see it fail when I showed it to my manager.

The reason they gave was "we cannot offer you the guidance and support you need". Their company, and especially the development department, was just too small to be able to devote the resources to giving me a daily briefing. They tried to have another employee discuss my project with me on a daily basis, which worked quite well while it lasted, but in the end, it cost that other employee too much time to switch from his project to mine.

They did give me a positive reference in the end, and I used my 6 weeks notice period to work on the 4 problems stated above. they also said that a company that can give me the support they couldn't, for example a company that uses Agile programming methodology (which is based around these daily meetings), would probably be a better fit for me.

| improve this question | | | | |
  • @JoeStrazzere I'm not really part of any support groups, no. I was mainly supported in my job hunt and on my job through integration assistants and specialized providers for this kind of help. I also just remembered that a few weeks ago, I was on national television in a documentary on Autism in higher education. Is that relevant to the situation (maybe it could give me a bigger or smaller chance of work)? – Nzall Oct 17 '14 at 12:17
  • 9
    "We don't do unit testing because we don't have the time for it." - That is a guaranteed path to failure. Everything else is moot. – Wesley Long Oct 17 '14 at 16:44
  • 11
    I think you're attributing too much of this to your Asperger's. I am also a junior software developer (without Asperger's) and all this stuff affects my work as well. 1. Everyone has a version of this to start off their day. 2. Minimize all distractions whenever possible. You could set a timer to remind yourself to focus back on work every so often. 3. This sounds more like an issue about never knowing what work is upcoming and what those requirements are. But code rewrite will also always happen in some way. and 4. This sounds like a company problem, not a you problem. – Bobo Oct 17 '14 at 19:31
  • This question appears to be off-topic because it is about personal productivity. – Jim G. Oct 17 '14 at 22:45
  • I started development when I was grade 9 like 16 years ago, I am now in a real job for last 5 years as software developer, we don't do unit testing, I keep changing my code or at least feel to change it every few days, I still need to learn a lot (it's never ending cycle), I do also get distracted to SO, I am not sure what autism is really, but I think your problems are common problems developers get, maybe you need to look for a company who own there products and environment is relaxed – Mathematics Nov 11 '15 at 16:09

As mentioned in some of the comments - you should look into local support(both in a professional capacity and in a friends/family capacity). Support is important to anyone but especially, perhaps, to those who could use some outside perspective.

You are very honest and up front in your post about the challenges you are facing but I fear you may be a bit too quick to lay the issue to your autism. A lot of what you described(rewriting code, poor architecture, poor testing, broken code) are not at all something I would lay on the doorstep of a junior developer. The whole point of jr devs is that they don't know how to architect code, they make silly mistakes sometimes, they may not write the best, most robust code because they are still in the learning stage of their career. A jr dev should almost never have free reign on a project without the support of a more experienced person simply for the reasons you are running into. No one is born knowing how to architect code and plenty of people go their entire lives without being able to write 'perfect' code without the support of testing structures and strategies. What I'm saying is that while your autism may bring a bit more struggle to the table, the mess here sounds like it's largely an issue of poor management, lack of professional mentorship and minimal onboarding.

None of this is meant to say you shouldn't get issues that you find problematic under control. Getting easily distracted and having difficulty focusing is something everyone struggles with. It may be that you struggle with it a bit more than most but ultimately you should strive to find a healthy and appropriate way of managing this. The best way, for most people, is to work with a therapist in order to create healthy mechanisms for dealing with distractions. I would imagine that this may go double for someone with autism which may bring with it additional challenges. Finding professional, local support is probably the only way for you to salvage your job at this point. If you can find someone, come up with strategies and start enacting those - the change may be enough to encourage your supervisors to give you a bit more time. And if things still happen and you lose your job, then your support network should be able to help you better prep to get your next job - including better ways to interview, bring up any challenges you face and companies that might be better suited for your personality.

That sort of handles #1 and #2 but #3...

"Should I quit and become a writer?" That is a doozy of a question.

I think it's important to point out that the issues you find causing problems at your coding job won't go away just because you're not coding. In fact, in some ways, they may get worse if you don't have a strict schedule(something you should work on with a support person) or supervisors breathing down your neck about deadlines. When it's you in your home and you sit down to write and you look up a word in an online dictionary... you'll still face distractions. While software architecture is a challenging issue if you find yourself stymied by building and maintaining structures then you'll be rewriting chapter 1 as soon as you get to chapter 2 and discover that you wrote yourself in a corner. All sorts of writers do this, I'm bringing it up because you have identified these behaviors as an issue which means they will, most likely, continue to be an issue for you.

In addition, make sure that you're planning on becoming a writer because you want to be a writer and not because you are frustrated with your current situation. Some careers work as 'back up' plans. Writing isn't one of those, not really, because it takes a large amount of drive and determination to make a go of it. Don't go into writing because someone said you were clever or imaginative. Don't go into writing because you're having trouble finding a job in technology. Go into writing because you have a story to tell and you want to tell it. Go into writing because you can't imagine doing anything else. Go into writing with a plan and a good support network.

| improve this answer | | | | |
  • +1 I agree that the Asperger's may only be a tiny part of this. I have a lot of the same issues simply because I am a junior software developer. – Bobo Oct 17 '14 at 19:33

Okay, I'm going to bring up some points to help, which may be direct and may be wrong. Please believe that I'm looking to help.

First things first, your question is highly focused on Asperger's, but nothing in your post seems like anything unusual for a beginner programmer (except perhaps that you know what unit testing is). There may certainly be something about your communication and mannerisms that we don't see, but based on your question, it seems as though you might be doing yourself a disservice by claiming (and blaming) the diagnosis. Letting it define you makes it hard for others to see anything else.

Let's focus on the 4 points, since I expect that it's too late for your current job.

  1. I wouldn't worry too, too much about this. It's fairly common for most people to take some time in the morning to "get up to speed". A slightly different sleep schedule might help, having (or a different) breakfast, etc.
  2. Again, this happens. There are certain technical things you can do to limit what shows up, but programmers need to look online for solutions. And pretty much every programmer spends a good amount of time during the day browsing the web (and/or answering questions on StackExchange, obviously).
  3. This is a bigger problem. This indicates a lack of planning, though it also is often a symptom of inexperience. So some of that will get better as you work, but you also might want to try different things in how you plan to write code. Different things work for different people, so there's not a whole lot I can do to help there.
  4. "We don't do unit testing because we don't have the time for it" - you always have time for it. What, you somehow spend less time manually testing things, or dealing with bugs once they get into the hands of customers? You might be able to convince the company, and you might not be able to get away with just doing your own thing. But realize that this isn't your problem. This is your company's problem.
| improve this answer | | | | |
  • 1
    About my Asperger's: I do believe that it's affecting me. This isn't just a work-related problem. For example, back in college, I was told my language teachers would be grading my dissertation, which was meant as "they will grade based on any errors in language", but which I understood as "they will check the facts of my thesis, so I have to make it really simple so they understand it as non-techy people". This made my thesis rather simple, not representing how much work I put into it. – Nzall Oct 17 '14 at 13:40
  • About the unit testing: the problem is not as much that my functions themselves don't work properly, but rather that, for example, I load something too soon or too late in my page_load method, resulting in it being loaded when it shouldn't, or the reverse, which breaks a later part of my code. I don't think it's easy to unit test this. – Nzall Oct 17 '14 at 13:42
  • 3
    @NateKerkhofs - The example you give here is a lot more about making assumptions than it is about Aspergers. This is the meanest I'll be because you seem aware of the problem and I've been there(albeit with a different disorder) - don't make excuses, quit explaining things away. As long as you continue to say "my problem is because of ___" you will find it very hard to make the changes you need to make to be happier and healthier. Work with a support network on these things. If I were your boss and you made a mistake and said "It's because of my disorder" I would be unhappy with you as well. – Nahkki Oct 17 '14 at 13:44

Let's go through your problems:

  1. a delay of up to an hour between arriving and when I first start in the morning, due to catching up on Twitter, my Stack Exchange history, my mails and any relevant IT blogs that posted overnight;

Do you count this time as working hours? I usually arrive at 9 in the office, but if I spend time surfing until 9.30, my working day starts there. Only if something is relevant to my current tasks I count it as working.

  1. General tendency to get distracted from my work when looking up how to write certain code, mainly through comments on blogposts and the SO sidebar;

This is something you can and need to train. Find some way to remember stuff you think is interesting, email it to your private address. Just don't spend time reading it right now. Right now you are at work, when you are done with work you can read it.

  1. Being forced to rewrite parts of my code every few days because what I currently have does not work with the next part I need to write;

Rewriting code is normal and you will get better at avoiding it with more experience. Your brain just doesn't know all the shortcuts an experienced developer has learned, that takes time.

  1. Not properly testing all possible code paths, leading to untested code and inevitable crashes. We don't do unit testing because we don't have the time for it, and I doubt that I'll be able to persuade my company to do unit testing the proper way.

That is bad. If you are supposed to implement a working function doX(), then you need to test that function. That is part of implementing it! This doesn't mean you have to use large test frameworks or document your testing, just do as much as you need to be sure it is working properly.

The autistic aspect is maybe enhancing it, but everyone is dealing with those problems like distractions and needs to work on them, you maybe a little more, but it's possible.

Also, you could write yourself a userscript to disable the sidebar if it is pulling your attention too much.

| improve this answer | | | | |
  • I couldn't disagree more with #2. If something is telling me to learn about x today and I bookmark a page on x to read later, I won't be able to focus on my work until I've learned about x. And I usually find I need x today, tomorrow, or within the week anyway. – Amy Blankenship Oct 17 '14 at 23:06

I'd like to add a few points:

Being forced to rewrite parts of my code every few days because what I currently have does not work with the next part I need to write;

If you design a skeleton of your entire process and make your code OO (Object Oriented) then you will not need to rewrite your code. If you code part A which is reliable or reliant of part B withing thinking it through how they will interconnect then you're doing it completely wrong.

We don't do unit testing because we don't have the time for it, and I doubt that I'll be able to persuade my company to do unit testing the proper way.

You're already facing a problem of spending too much time rewriting code that was not tested enough, how is that not a good reason enough to write unit tests?

Unit tests are not suppose to be written afterwards, you write them before you write the actual code and it takes minutes, minutes that will safe your company hours of debugging and re-writing code. Do TDD and try to make your employer see why.

a delay of up to an hour between arriving and when I first start in the morning, due to catching up on Twitter, my Stack Exchange history, my mails and any relevant IT blogs that posted overnight;

It's positive that you're at least admitting that you have a problem here. Not checking up those things when you get into the office in the first place will make it easier to avoid further browsing. Make it a habit to not browse those things, even if IT related, unless you're out of tasks and waiting for further assignments.

I think that the rest of the answer cower more or less my other opinions of your question.

| improve this answer | | | | |
  • 3
    OO code is always perfect and never needs to be rewritten, except in the real world. – Amy Blankenship Oct 17 '14 at 23:08
  • @AmyBlankenship I never said that it never has to be rewritten but when the re-writing is done then it's much easier than a tightly coupled spaghetti. – Jonast92 Oct 20 '14 at 22:05
  • @Jonast92 Just because code is OO (or the developer thinks it's OO) doesn't mean that it's not tightly coupled. Many people believe that Singleton is an acceptable OO pattern for example. – Amy Blankenship Oct 21 '14 at 4:08
  • I do not agree that testing takes minutes. Yea, in ideal cases they take minutes, but it happends that they take hours after hours. For example when you need to prepare data for codeception testing, or mock lot of things. – Will_create_nick_later Jan 4 '17 at 18:56

Take out "autism" and what's left in your narrative is your singularly undisciplined approach to software development as well as your disorganized approach to managing your software development projects.

Your writing is good - clear, lucid and coherent - and your writing clearly points to a mind that does clear, lucid and coherent thinking. In this case, your mind. HOWEVER, none of that clarity, lucidity and coherence seems to have carried over into your software development work.

If autism were impeding your software development work, then it should also impede the quality of your writing. That's not the case. What I am thinking is more benign: you were assigned these software development projects, with the expectation that you would know how to manage the work on your own. What I am thinking is that you don't know how to manage these software projects on your own because you never learned how to do it and because no one taught you how to do it. The corrective action: you'd better learn, and fast.

I suggest that you talk to your coworkers and observe them at work and imitate how they manage their work. When asking for advice and especially advice from your boss, limit yourself to specific questions with actionable answers or your professional credibility will be shot through like a sieve.

TDD is a nice buzzword but it can't make up for an undisciplined approach to software development. In fact, TDD REQUIRES a disciplined approach to software development. You are looking for a silver bullet, except that you have no gun to put that silver bullet in and shoot with.

| improve this answer | | | | |
  • @JoeStrazzere Good writing, including so-called creative writing, requires clear thinking and a disciplined approach. 1. There are plenty of people who don't have autism and who make a hash of their coding because of their undisciplined approach and their disorganized thinking; 2. The elements that make someone a great writer are the same elements that make someone a good software engineer; 3. Let's see what the OP has to say. – Vietnhi Phuvan Oct 17 '14 at 16:12
  • @JoeStrazzere I am a halfway decent writer and a halfway decent software engineer. I am not revising my answer on your say-so. It should be clear from my post that I don't see that the OP's autism and the OP's approach to software development as necessarily related issues, and that he should give himself a fighting chance by reforming his approach to software development. If he is tracing the problem to his autism and the actual cause is his approach to software development, then he is doing himself no favor and we are doing him no favor by not pointing it out to him as a possible culprit. – Vietnhi Phuvan Oct 17 '14 at 17:41
  • @JoeStrazzere Regardless of whether the OP's unstructured/undisciplined approach to software development is linked to his autism, we can probably agree that if he doesn't change it, his job - which he is asking for advice on how to save it - and most likely, his career in software development, are doomed. It is imperative that he change it and that he be successful in making the necessary changes. I am no expert on autism and I am pretty sure the experts will tell you that what they don't know is probably more than what they know. – Vietnhi Phuvan Oct 17 '14 at 18:07
  • @JoeStrazzere If you wrongly ascribe a problem to a cause that you can't do anything about - on this case, autism - you may have boxed yourself into a corner and put yourself into an unresolvable situation because you talked yourself into it. Being disorganized/undisciplined is fixable. Being autistic is not readily fixable. What gives me reason for optimism is the quality of the OP's writing. Note that the only conclusion I reached in my answer is that the OP's approach to his SD work needs structure and discipline. Regardless of the cause. Because he has to change it. Or he is done. – Vietnhi Phuvan Oct 17 '14 at 18:14
  • @JoeStrazzere Every one of the answers on this thread points to some aspect of the lack of discipline on the OP's part in managing his software development work. It looks like you are at the wrong end of a consensus. – Vietnhi Phuvan Oct 17 '14 at 19:52

Not the answer you're looking for? Browse other questions tagged .