Jane Dallaway

Jane Dallaway

Jane Dallaway  //  Service Delivery manager, photographer, dog owner, gardener, reader, learner, software developer and occasional snowboarder

This blog contains all sorts of bits and bobs, from development related stuff, through process and productivity stuff, to photography stuff, and general inspiration things. It's a bit all over the place with no real theme, but then so am I

Email: jane @ dallaway.com
Also at:    

Response to "Where the tech ladies at?"

I was reading the article Where the tech ladies at? the other day and jotted down some notes that I thought I'd share.

As a female developer, and now development manager, I've often thought about the lack of females in our field. After 15 years in the software business I've seen the ratio change at different companies (6 so far). I was, probably, hired for my first job as a result of a bit of positive discrimination at a large company that felt the best way to get it's ratio up was to hire female Comp Sci graduates - out of 6 hired, 5 of us were female.  I have also been the only female in a small company, and am often one of a handful.  This is par for the course, and something I'm quite used to.

Recently I've been reviewing CVs for a couple of positions (we're hiring for 2 support developers and a Tester if you're interested) and when I stopped and thought about it, as a result of reading that article, I honestly can't say how many of the CVs were for females. It wasn't something I was screening for - I was looking for skills, and potential, not sex, race of any other discriminating factor.

At dConstruct last week I was surprised by the ratio of males to females - most noticeably demonstrated by the queue for the Gents toilets, and no queue for the Ladies.  Where were the females there? It was a design conference, surely design is more female friendly than development ones (I have been to many dev days where you can count the female attendance on the fingers of one hand).  It is a good, non threatening, conference, held in a good, friendly and safe venue.  It had 2 female speakers (out of 9 in total).  The reason this surprises me, is that at every company I've worked at with a design team, it has been pretty equal in ratio.

As a female, when I'm going alone to an event, here are the things which will make me more comfortable (note: some of these might just be peculiar to me, I haven't done any studies or anything, and some of these I haven't done with events I've organised in the past, but will make more of an effort with in the future) :

  • hold it somewhere light and airy - a cafe, an office, not a pub (at least initially - I'm less inclined to show up to a pub on my own)
  • make your group look obvious - with most Brighton Bloggers meet-ups I turn up with a couple of cards with the logo on them which can be put on the table.  This takes away the embarrassment factor of stumbling around the venue asking random tables of people if they're the group you're trying to locate
  • make the leader obvious - if I'm turning up alone then I'd like to be able to identify at least one person (this is something that I know I need to do better for Brighton Bloggers meet ups), this could be as simple as wearing a badge, or putting your photo somewhere obvious online for people to identify you by
  • introduce me to people - I've often heard guys say that they don't speak to lone ladies at conferences because they're worried that they'll be seen as trying it on with her, so if you're the group leader, then take the time to introduce newbies to a couple of people to break the ice
  • use lanyards not stickers/badges - the most obvious place to put a badge involves guys having to peer at your chest - not a great start
For me, it all comes down to equality of opportunity - are both sexes given the same opportunities to learn and find out where their passions lie? Are they all equally welcomed to events, to conferences etc.  Does everyone get the same out of the networking opportunities?  As long as the answer here is yes, then we're ok.

The bottom line, is that I wholeheartedly agree with the sentence in the original article of
I want talented people, passionate about what they are doing to work and interact with – regardless of gender.
but I do want to also feel safe enough to attend events, conferences etc and to work in an industry which enables females to pursue their passion without risk to their safety, credibility or self esteem.

Filed under  //  Development   article   women  

Comments (0)

Interviews: Questions

Following on from my Interviews: Technical Tests post of the other day, I thought I'd write a post about interviewing in general. I've been involved with the interview process on numerous occasions, at a couple of different companies over the past 5 years. In the last couple of years I have been involved with interviewing on my own, or being the driving force of the interview, and I've learnt a lot from the experience.

When preparing for my first interviews alone, I read relevant sections of a couple of books. The first was one of the articles in Joel Spolsky's The Best Software Writing I. The second was a book I've made a lot of reference to over the past couple of years, The Instant Manager: Tools and Ideas for Practical Problem Solving. From these I gained some interesting pointers, and drafted my initial set of questions. These have obviously changed according to the job being offered, but in general they are questions like:

  1. Tell me about your current job? What do you do on a day to day basis? What have been the biggest challenges? And your biggest achievements? And of course, why are you looking to move on?

  2. What has been your favourite job up until now and why?

  3. Which project that you have worked on has made you feel the proudest and why?

  4. What is the most recent skill/tool/technology that you have learnt and what drove you to learn that?

  5. Have you contributed any code or writings to the wider community?

  6. How would you define "healthy" code, and what do you do ensure your code is “healthy”?

  7. As I’m going to interview other candidates, what would you like me to remember about you in relation to this position?

I'm generally looking to see what makes people tick, what they are enthusiastic about, and trying to guage whether their enthusiasm matches what the position I'm offering will provide. I'm yet to find anyone who has answered question 5 with anything other than a "No, but I could do" but this question is only a probing question to enquire about attitude to sharing information. Question 7 is my final question, and gives the candidates an "elevator pitch", which surprisingly few are ready for. The most memorable answer to date has been "Well obviously I'm gorgeous", which made me laugh, but didn't get the candidate the job.

Then, as posted a while ago, there are my new 4 questions to add:

  • When was the last time you read a trade/professional journal or book related to your work? (can substitute "attended an industry conference or took a course")

  • Name at least two of the key people in your field

  • If you had to, would you spend your own money to buy tools or other materials that would improve the quality of your work?

  • If you did not do this for work, would you still do it (or something related to it) as a hobby?

As preparation for my recent interview I went through my questions, as well as some found online. I hunted out some more team leader/lead developer type questions as well, and found questions focusing on motivating a team, recognising motivators, dealing with difficult team members, what makes a good manager etc. I received some excellent advice from one of our project managers which was to always use scenarios and give examples. That makes your answer less theoretical and more practical changing the tense from "I would" to "I did".

Anyone coming for an interview with me in the future can learn a lot from this post, and will be given bonus points for research if you mention it during the interview :-)

Filed under  //  Development  

Comments (0)

Interviews: Technical Tests

As part of the interview process that I've run here in the past few years, I've given my applicants a technical test. This has taken the form of a series of questions on VB, SQL Server and ASP (I haven't recruited .NET employees yet). These were then marked and scored and used as a reference for the interview. I didn't go through the results with the candidates, unless they specifically asked about it.

At my interview last Friday I was given 3 pages of questions, one on SQL Server, one on C# and one on ASP.NET. I completed the questions, and then we discussed my answers giving me an opportunity to explain verbally some of the concepts I was having problems writing answers to. This worked reasonably well, but I think it can be improved upon.

Obviously one needs to consider technical ability when doing the selection process, but I'm not convinced that the written test is the best way forward. Over recent months, I've been thinking of a better way to do tests, and so I think that next time I need to do technical interviews, I'm going to supply the candidate with a laptop, internet access and a problem in the appropriate programming environment. It needs to be a pretty simple challenge so as not to exceed the 30 - 40 minute period that the tests currently take. I figure I'd give the developer a working system, and ask them to make a few enhancements, maybe one to the database, one to the code. Once the time is up I'll sit with them and work through the code together to see how far they've got, and they can then explain to me what there thought processes were etc. This feels like a much fairer and more realistic way to determine the technical ability of a potential employee.

Filed under  //  .NET   Development  

Comments (0)

Code reviews...

I do code reviews on my team's code every few months or when we have a major deliverable, and I usually find small odds and ends regarding to coding standards, or offer some advice on how it could be done better. My .Net advice is not up to the standard I'd like it to be yet, but I'm trying to work on that.

Thankfully, no-one has ever presented me with code like this.

Filed under  //  Development  

Comments (0)

The battle to get events to fire from C# to VB

I've been battling for ages to get an event raised in .NET 2 to fire in VB6. After a lot of searching, and huffing and puffing I finally found this resource which was the only example which seemed to do what I needed to do, i.e. raise an event AND call a method for the same COM component.

The code in C# is as follows:

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;

namespace ComEventTest2
{
public delegate void TestEventHandler();

#region interface defining events
/// This is the interface for the Event
/// It will be used with ComSourceInterfaces for the class definition
[ComVisible(true)]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
public interface IClass1_Event
{
void Test();
}
#endregion

#region interface normal stuff
/// This is the interface for other methods etc which are to be exposed to the
/// consuming program
[ComVisible(true)]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)]
public interface IClass1_Code
{
void DoSomething();
}
#endregion

#region class

/// This is the class
/// It implements IClass1_Code
/// It uses ComSourceInterfaces to specify which events are valid
/// It sets ClassInterface to be None to prevent any other methods from
/// being displayed in the consuming program
[ClassInterface(ClassInterfaceType.None)]
[ComVisible(true)]
[ComSourceInterfaces(typeof(IClass1_Event))]
public class Class1 : IClass1_Code
{
public Class1()
{
}

public event TestEventHandler Test;

public void DoSomething()
{
Test();
}
}
#endregion
}

The code within VB is as follows:

'Define the object
Dim WithEvents test As ComEventTest2.Class1

Private Sub Form_Load()

'initialise the objects
Set test = New ComEventTest2.Class1

'call the DoSomething method (this fires the event)
test.DoSomething

End Sub

Private Sub test_Test()

'Let us know that the event was fired and captured ok
MsgBox "The event has fired"

End Sub

Now to get it to work for real against VBA in an Access interface. Wish me luck!

Filed under  //  Development  

Comments (0)

DataGridView, C#, RowHeadersVisible=false and combo boxes

Further to my last post there is a complication. In the current beta 2 framework, to get the combo boxes to work within the grid view without raising the exception "Getting the Size property of a cell in a shared row is not a valid operation." I've had to remove the RowHeadersVisible=false line.

Filed under  //  Development  

Comments (0)

DataGridView, C# and RowHeadersVisible=false

To make a DataGridView have deletes that work when setting
RowHeadersVisible = false;
it is necessary to set the SelectionMode for the DataGridView to be DataGridViewSelectionMode.FullRowSelect
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
This will then allow the Deletes to work as expected
Filed under  //  Development  

Comments (0)

C# Homework - Brighton Bloggers list - Part 1

This evening I've been experimenting with some C# stuff at home. The project I've set myself is to read an xml file into a grid, handle updates and write out both an xml file and a html sample which can then be fed into the Brighton Bloggers list page (at the moment it is updated by hand in HTML whenever there is a change). I could have done the development in my usual home time tool choice of PHP and mySQL, but this seems to be a better way of furthering my C#/.NET knowledge.

Thus far I've created a sample XML file, and have got that being read into a datagrid (with help from MSDN) and can make changes to the data and get it to be written (again with help from MSDN). I've also sorted the datagrid into alphabetical order (based on blog name).

Tasks remaining:
1) Write out an alphabetically ordered HTML list (using appropriate Brighton Bloggers styles) for all the active blogs in the list
2) Add a check to go off and verify all the blogs in the list, and ensure that a response is found

Filed under  //  Development  

Comments (0)

C# and handling a COM event

Another new thing to work out - how to handle events raised by COM DLLs. This page at msdn contained the start of the answer (or at least the code samples), but it took quite a bit of experimentation to make it work with my COM DLL (written in Delphi - not sure if that confuses matters at all).

To make it work I had to:
a) create a class level version of the COM component i.e. EventTest1.clsMainClass evt = new EventTest1.clsMainClass();
[Note: example is a VB test event that I've created just to check the logic]
b) set up the event handlers, I found that if I started off with typing the object name, i.e. evt, then on typing . the intellisense would offer me the events as well, and if I selected one of those and type += then the rest of the information was available through intellisense (got to live intellisense)
i.e.
evt.OnComplete += new EventTest1.__clsMain_OnCompleteEventHandler(OnComplete);
evt.OnStart += new EventTest1.__clsMain_OnStartEventHandler(OnStart);

c) create the event handler
i.e.
void OnStart(ref string text)
{
MessageBox.Show (text);
}

void OnComplete(ref string text)
{
MessageBox.Show (text);
}

And that is it, simple really...

Filed under  //  Development  

Comments (0)

C# - Using Objects in ListBoxes/ComboBoxes

As I become more "object oriented" in my development approach (I've done VB for too long) I was struggling to get ComboBoxes and ListBoxes to accept and display an object appropriately rather than just populating the list with a string, and then using an index or string lookup to find the appropriate item.

The other day I had a sniff around the internet and thought that the Format event might help, and today I managed to get it to work.

If I have a combobox called myList, and I've assigned a Person object to it as
myList.Items.Add(person). I then need to register the event Format as:

private void myList_Format(object sender, ListControlConvertEventArgs e)
{
e.value = ((Person)e.ListItem).Surname;
}

myList will then be populate with the Surname of the Person, but the myList.SelectedItem will hold the object currently selected.

Filed under  //  Development  

Comments (0)