Ryan O'Neill LLP - software developers

Mostly about tech, working for myself and my thoughts.

What do developers spend all that time on?

For those of you who don't know what a developer spends all their time on, this might provide some insights. I created this log to show where the time goes as even I would look at what I'd done and feel as if I was being lazy. On looking at it again, it all makes sense now.

As a teaser, here is the bug I was tracking down in the before stage, (pretend / virtual points) if you can see the error. It's not so difficult when someone points at 10 lines of javascript and says where is the error in that. Finding those 10 lines and proving it's where the bug is, that's the difficult bit.

Javascript code with a weird error in IE7

This is a quiet day. There are normally 3 other people injecting interruptions in to my workflow and by 11:30am I will usually have spoken to all of them and messaged several times. Typing this up as I went along actually helped my work flow, I stayed at the keyboard and remained focussed instead of drifting off to other tasks.

  • 09:50 Email from team member about some dodgy code, read, put in folder as cannot deal with it now.
  • 10:10 IE7 VM download resumed (4gb) from previous day.
  • 10:15 Sign up to TestingBot as IE7 download taking too long.
  • 10:20 Skype chat with another developer about some functionality they are adding.
  • 10:21 Way too many error emails caused by designer not putting images in to site properly. I spent two days getting the designer on to source control and having specific content folders automatically published to bypass issues with the designer not having Visual Studio. Did I mention I get a copy of every error on test, staging and live? They all need looking at.
  • 10:22 Another developer wants to Skype voice call which means I'll have to pause the IE7 download due to bandwidth.
  • 10:45 Finish with Skype voice call.
  • 10:50 250 error emails later have been unable to work due to the constant inbound errors. Start IE7 download again. Give up on deleting error emails and manually connect to Azure to refresh all of the images that designer had not put in.
  • 10:55 Back to IE7 browser test via web service again Looking up IE7 errors in logs to see where they come from.
  • 11:00 Additional errors coming in from test site, checked that they are from another developer and moved on assuming he is handling them. Realise that the reason the errors are coming in for missing images is that the designer still has not included them in source. Will have to raise this with him as still too many errors coming in. Checked for images on work in progress server (designer playground) and they are not there either. Retrieved list of image errors on site to get a list of the missing images for designer. Extract errors, put in to Excel, extract just the image reports. Create support ticket, email designer.
  • 11:11 Get back on to IE7 errors, trying to find where they are coming from by looking at the logs.
  • 11:16 Found the logs for IE7 errors, now downloading them which is taking a while due to their size.
  • 11:21 Sample 50 IE7 javascript errors retrieved from log. Now to reduce them to the error I am tracking in Excel.
  • 11:23 Realise that the errors are from the start of the log, not the most recent. Have to get more errors in reverse date order.
  • 11:26 Give up on Excel for new error list, just check in Notepad for now.
  • 11:30 First error is that Google analytics cannot load. Oh, it's that bloody Baidu search spider again.
  • 11:31 Next error has been fixed in development.
  • 11:32 The next error is from a Mac with FireFox, will create a ticket for this as I think Macs need a whole separate test plan.
  • 11:35 The rest of the 50 errors I downloaded are all for the same Mac issue, I'll have to get some more errors from an earlier point in time.
  • 11:37 Used an OR instead of an AND in the error query, trying to cancel query, not responding.
  • 11:42 Emailed designer, font missing from test site too. Another error email alerted me.
  • 11:43 Query cancelled, start again.
  • 11:45 Designer emailed me back, file is missing on purpose. Well that's allright then.
  • 11:46 While waiting for the next batch of errors, as if by magic, one of the IE7 errors comes in again from live. I'll log this error along with the ticket in the support system. If only I had time to do that originally (5 minutes) then I would not have had to chase other error details.
  • 11:50 Finally using testingbot.com to see the IE7 error and now I remember why IE7 needs to die. No dev tools available to get any more information other than a vague line number and character position plus 'Expected identifier, string or number' which I already had in the log.
  • 11:52 Resort to 'View source' in the IE7 test browser and using notepad, count the number of lines to the error. And I've lost count. Start again. Turns out, I was right, I didn't lose count, IE7 is reporting a line with no javascript on it, it must be screwing with the line numbers and whitespace.
  • 11:57 I do notice a bit of javascript just plonked down halfway through the page, by the designer again. It handles mobile views by the look of it. I'll try this on the test server via direct editing to see if I can comment out the error.
  • 12:04 Can’t do that, the test server has a password on it to prevent indexing by web bots and this means the test browser service won't access it.
  • 12:06 Oooh! I've managed to get in and the error is still there. Oh, the test server IE7 has crashed now.
  • 12:08 Restart test IE7 and try again. No javascript error logged.
  • 12:09 Uncommented the suspicious code and the error is logged. Let's narrow it down.
  • 12:10 Test server has become unresponsive again, can't refresh the page. Start another server. Logon issues again. Still got an error, let's comment some more code out. Error still there, down to the last 10 lines. Just to confirm, comment them out, works again. Let’s narrow it down some more by putting alerts in. IE7 has just died again.
  • 12:26 After many attempts and restarting the IE7 test server, I've found it, IE7 balked at a bit of script that I would have thought would have killed the other browsers too.. Not terrible code and I don't blame the designer (much) but it should not have run on any browser or indeed made its way in to the live environment. It was embedded halfway through the page. This is a problem with javascript, designers use it to do hacky stuff like hide menus in mobile devices and then hide the js half way down a page. They don't have the developer tools or discipline to put tests in place and no one has the time at a fast moving start-up. But it has costs, as is obvious.
  • 12:30 I'll have to fix this bug in source now, type it up and then move on to the OTHER IE7 bugs. There are more...
  • 12:34 Realised I'll have to bring this up with the dev team because they all could write code like this that works everywhere else but IE7 and that still makes up a fair few users of this site.
  • 12:45 Finished one bug.

And here is the bug, a trailing comma on the list initialisers.

The javascript code with the IE7 bug highlighted

Thanks to copy and paste coding, this was also used elsewhere which I found out a day later.

comments powered by Disqus