Welcome to the second in a series of posts highlighting women developers. I’m trying to get a better understanding of the under-representation of women in STEM fields, so I’ve been reaching out to our community. What I’m finding is that women are out there, coding away, and I want to share their stories and advice.
Recently I had an opportunity to sit down with Deanna Simpson to discuss her journey, and I found out what happens when a Smalltalk programmer becomes a Salesforce Platform developer: she writes less code! Deanna started developing on the Salesforce Platform four years ago, after four years in Silicon Valley coding control systems for a fiber-optic switch company and a few years in Canada in various roles.
How did you learn to code?
I have a degree in Computer Science and Philosophy, believe it or not, and I was actually one of those rare computer scientists who didn’t like playing video games. I rather enjoyed approaching it from the logic point of view, which is how I came into it. I started in philosophy studying theoretical logic and then my father said, “Eating is habit forming, so perhaps you should acquire a skill that will allow you to be employed.”
The natural application of logic was computer science. When I started out in computer science there were 100 first year students of whom three were women. I was one of them. So, really, we were just one of the guys, and you really had to be, you can’t set yourself apart because you are so interdependent with the class.
My first programming job was developing control systems for a fiber-optic switch company. And, because I can speak with people as well as speak with computers, I would gather requirements, write up the documentation, train people, and do that sort of thing. So I was “chief, cook, and bottle washer” on small projects and I really enjoyed that. I enjoyed getting down and solving the problem with code, but also enjoyed helping someone solve a problem, and seeing them say “Yeah, that’s what I want, that’s exactly what I want!” That’s still what drives me – talking to someone and saying “What is it you really need? What is the pain point for you? What hurts?” They start describing it to me, and I can come up with a solution that will solve that problem.
How did you get started with Force.com?
I worked in Silicon Valley for four years, and then I came back to Canada to start a family. I was doing development, and was also supporting other programmers and developing small tools for them. Then someone asked me to set up a support process for a startup, and I thought it would be a good opportunity to get into management. In that job I had to find a system to implement a service cloud. I evaluated a bunch and chose Salesforce, and then I implemented it for them. I realized that I really love getting my hands dirty, and organizing a project, but that I really didn’t want to manage people; it’s just not my thing. I get a sense of accomplishment by solving a problem: that’s the part I like the best. So, I focused on implementing Salesforce solutions.
How did you learn Apex Code?
I was the one who had to do the Service Cloud implementation, so I taught myself to code in Apex, with the help of Premier Support. We had one use case where we needed a trigger on Chatter posts. That was my first project in Apex.
How was the learning curve coming from Smalltalk?
Between you, me, and the lamp post, it is harder to debug Apex. With Smalltalk, I could put a breakpoint in and run the program step-by-step and change the inputs along the way, debugging it as it ran. Also, the syntax is very different from Smalltalk: Smalltalk looks like English, Apex looks like Java.
However, because Smalltalk and Apex are both object-oriented, there wasn’t a huge paradigm shift. Once you learn the development tools, it’s really quite straightforward. Plus, it’s not just a language — it’s really a framework, so you can do a great deal with very little code. The biggest upside for me was that I could code anywhere because everything was cloud-based!
You have four Salesforce certifications. When did you get those?
I got my Admin when I was setting up that first Service Cloud, and then when I decided to go into contracting, I added on the Dev, because that’s of course my interest. And then I added Service Cloud Consultant and finally Sales Cloud Consultant. It was about gathering the information I needed to run a whole project and see it from a 10,000 foot view as opposed to just solving the problems as I came across them.
Most of the development has been at the configuration level and less at the Apex level. I’ve only had to use Apex when I’ve hit a limitation and had to get around it.
How does it feel to you as a developer that you have to point & click to get so much done, rather than coding?
I think it’s fantastic because it allows people to configure their system even if they’re not a developer. I think that’s really powerful. We have to push the control down so the developers can focus on the things that are not out of the box. Having the configuration, as opposed to coding, means you’re not going to write spaghetti code, and it means you aren’t going to make really really bad design decisions, as easily. It guides people in a direction: you have this choice, this choice and this choice. While with code, the world is your oyster: you can do just about anything, which means you can do really silly things as well.
I’ve met many admins who are interested in learning to code. What is your advice to them?
Find a very small problem that needs to be solved and figure out what to do to solve that problem. Rather than getting a whole bunch of broad basic information, you actually focus on what you need to do to solve that problem. That will enable you to get an idea of how Apex is used in context as opposed to a 10,000 foot view, especially if you have no coding experience. Solve a small problem, then solve another small problem, and keeping adding to what you learn each time.
Did you attend Dreamforce ’13? If so, what was your favorite thing?
Yes. This was my second Dreamforce. I loved the DevZone! I loved the Internet of Things – the one where we actually had a chance to plug in a board and work with it. I loved the mini-hacks, you had these little cards and were sitting there trying to solve the same problem alongside other people. It felt like university to me. Like being in the computer science building, and everyone was just hanging out and coding, and you could ask anyone anything.
Also, I brought my eldest daughter, Aila, with me. She is 13 and I taught her to code in Smalltalk at age 8. She mostly did her homework while I was at my events. One evening, I took her out to the Girly Geeks dinner [hosted by Deepa Patel] and she met all these women who are just normal people, who also happen to be engineers and computer scientists. For her, it was eye-opening because yes, Mum is a bit strange and geeky, but these women all do the same thing and they’re normal. She’s very comfortable with science and math and she said to me, “Mom, I’m not going to be a geek like you when I grow up. I think I’m going to be an engineer instead.”
I feel that we really do have to pass this on to our kids. My mother grew up saying “I’m not logical. I’m not good at math.” And the funny thing is she’s really logical and really good at math. But, she was told from an early age that girls aren’t logical and they aren’t good at math. It’s important to me for Aila to see herself as good at math and science, and I think we have to expose all girls to the potential of a career in technology. We’re missing out on half the workforce if we don’t.
Hanging out in the DevZone is a microcosm of the Salesforce Developer Community. What is the community like outside of Dreamforce?
People who love to code love to help other people solve problems, too, so I find that they really are open to helping each other. I have a bunch of developer friends who come to me saying “I have this problem can you help me solve it?” And even though it’s not my problem, I’m interested in finding out the solution. And if I call them up and say “How do you do this?” they’re interested in helping, just because they’re interested in problem-solving. I also use the Developer Discussion Board, and I find that the developers there are great.
What’s next for you?
I want to get back into doing hardcore development in Apex and developing new applications. I’d also love to go and explore more about the Internet of Things. I am a maker at heart.
[Author's Note: Deanna, and anyone else interested in the Internet of Things, should follow @reidcarlberg on Twitter (he has the ability to make copters fly using coffee) and get their feet wet with an arduino starter pack from Adafruit.]