Category Archives: RedZebra Software

Planning ahead with BugTracker.NET

Planned Dates Screenshot
Planned Dates columns highlighted

When I joined RedZebra, we were good at supporting customers because there were few requests and few problems. We’ve grown a lot and managing support requests is not easy when there are all the different configurations etc.

I introduced BugTracker.NET several months ago and got buy-in from the rest of the team to use this tool to log and record everything that comes through from support. We also use it to plan support if we’re waiting on someone. Ideally we’d integrate this with Outlook Calendars and resource scheduling so we can plan ahead, but this hits the budget for now.

I wanted a way to add a date to the items, and then be able to see when they’re planned in for, and if something is due for today. We already use BugTracker.NET’s categories, organisation, statuses and priorities, this just helps us organise that little bit better since we don’t have any time to go in and customise it ourselves.

I added a custom field called Planned Date and then modified our Queries (bug lists) to show the planned date, and another column indicating if the job is today. I’d previously joined the two together but mixing datetime and varchar sort wouldn’t be easy in this. I’m sure we could write a custom sort, or just modify the codebehind to do this, but I wanted to try and stay within the confines of the editors if I could.

Adding a Custom Field

  • In BugTracker.NET, navigate to Admin > Custom Fields
  • Click Add New Custom Field
  • Planned Date was the name of the field, and I chose datetime as the type. This hint lets BugTracker.NET display the right component. There’s a few different options here worth exploring, but for now just choose datetime so we get a calendar control.
  • Save

Now when you return to the Add or Edit Bug screens, you’ll be presented with the field.

Adding fields in here actually modifies the bugs table definition in the database (by adding and removing columns), so use with caution.

Selecting dates

When you’ve added your Custom Field, it’s right there when you edit an item.

Custom SQL for Queries

You won’t be able to see Planned Date or Today columns unless you add them to your Queries.

In BugTracker.NET navigate to Queries > Add New Query

Enter “planned” as the Description and copy the code below into the SQL box. Hit Create to add the Query and then navigate to Items > Query dropdown list > planned to see your new list. You can organise by Today or Planned as expected. It should look like the screenshot above.

I used an inline SELECT CASE which is similar to a switch or inline if for dates.


select DISTINCT
isnull(pr_background_color,'#ffffff'),
bg_id [id],
isnull(bu_flag,0) [$FLAG],
CASE WHEN CONVERT(DATETIME, bugs.[Planned Date]) >=
(SELECT DATEADD(dd, DATEDIFF(dd,0,GETDATE()), 0))
AND CONVERT(DATETIME, bugs.[Planned Date]) <
(SELECT DATEADD(dd, DATEDIFF(dd,0,GETDATE()), 1))
THEN 'Today!'
ELSE '' END [Today],
bugs.[Planned Date],
bg_short_desc [desc],
isnull(st_name,'') [status],
isnull(asg.us_username,'') [assigned to],
isnull(ct_name,'') [category],
isnull(pj_name,'') [project],
isnull(og_name,'') [organization],
isnull(pr_name,'') [priority],
rpt.us_username [reported by],
bg_reported_date [reported on],
isnull(lu.us_username,'') [last updated by],
bg_last_updated_date [last updated on]
from bugs
left outer join bug_user on bu_bug = bg_id and bu_user = $ME
left outer join users rpt on rpt.us_id = bg_reported_user
left outer join users lu on lu.us_id = bg_last_updated_user
left outer join users asg on asg.us_id = bg_assigned_to_user
left outer join projects on pj_id = bg_project
left outer join orgs on og_id = bg_org
left outer join categories on ct_id = bg_category
left outer join priorities on pr_id = bg_priority
left outer join statuses on st_id = bg_status
where bg_status not in (5,6)
order by bg_id desc

Apprentice Tests

We’re looking for apprentice developers to join us at RedZebra Software.

There are a few tests we want you to take before coming for interview. The answers are pretty basic, don’t require heaps of maths or complex array pushing and popping and are based on MSTests. Download the sample Solution below and code the tests to pass. You’ll need a version of Microsoft Visual Studio which has tests built in – the Express Editions before 2010 don’t have tests built into them. If you haven’t got a Visual Studio edition with testing support, I’d recommend having a play with Visual Studio 2012 Release Candidate for Web¬†however you may need to ensure you import the right dependencies to get that going. If you can, download the full edition of Microsoft Visual Studio and you’ll be able to code fully until your trial period runs out.

Download the sample Visual Studio Solution (.sln) file here:

When you’ve finished, drop me an email to [cryptex]alex (at) redzebrasoftware.com[/cryptex] and we’ll talk about the next steps.

Apprentice Developer Position

I’ve been working for RedZebra for about a year now, and it’s been going well. We’ve refactored a lot of code, fixed a massive amount of bugs and introduced features which blow our competitors out of the water. We’re a small software house and at the moment there’s only three of us; myself, my boss Richard and Darryl, the apprentice we took on earlier this year.

We’re trying to grow and so after working out the figures decided that we are large and stable enough to add an additional developer to our team.

The word “apprentice” means different things to different people, so I am being careful when I’m throwing the word around. Graduate Apprentices have finished university in the last couple of months and are going to start a two or three year placement scheme with a company that will train them and give them a job for about 5 years after that. A step below that is the general apprentice who has just left college or is starting a new career along a new path.

We’re looking for someone in the hybrid of both, someone who can absorb what I’m going to throw at them whilst not being a skip-the-hard-work Graduate. The government apprentice scheme we’re recruiting under has its benefits and it’s drawbacks; the scheme is really useful for us because its backed and part-funded by the government, but also difficult because the scheme has a number of prerequisites including that the apprentice must take a college course (the apprenticeship itself must be from a college), so they’re away at college at least one day a week. The other problem is that we need someone who is a fantastic coder, and loves code itself. These kind of people are hard to find, and are often of the Graduate Apprentice level. They’re aiming for a much higher salary and career, and honestly, at the moment, we simply cannot afford that kind of person. We can’t offer a massive salary but I know what I’m going to teach them will hurtle them forward in their career by about 3 years. I’m going to throw them in at the deep end and they’re going to love it. There are very few opportunities like this at this level.

There are plenty of brilliant coders out there waiting to be discovered, and I know that we’ll find someone that is desperate for a job and good enough to come and work for us. We certainly don’t want to take advantage of anyone, and we’re offering a serious career with us while we grow RedZebra over the years to come.

If you think you or a friend would be interested, drop me an email or IM.