Showing posts tagged software development

A Letter to the Developer Community

Dear Mac/iOS Developer Community,

Empathy is the ability to put yourself in someone else’s shoes who may be different from yourself and attempt to understand/have compassion towards that person’s feelings, especially if their feelings are different from your own. If you do not consider yourself to be a particularly empathetic person, there’s no need to read any further.

I attended a Mac developer conference recently and overall had a great experience. I had the opportunity to meet and get to know many great developers while learning a few things too. Unfortunately, I left with a bit of a bad taste in my mouth. This feeling I attribute to a lack of conduct standards, and a failure by many of us to understand the changes in the industry that have been occurring, like it or not, over the years.

Here is what happened. I sat down to listen to a talk that I could tell by the title of the talk, was going to be inappropriate. I thought to myself, I’m at a respectful Mac conference, the organizer is walking around in a suit and conducting himself very professionally, I’m sure it will be ok. This was, in fact, a poor assumption. The speaker prefaced his talk by basically stating there was a little substance, but that most of the topics were being presented simply because of the sexual or otherwise inappropriate jokes that could be formed from the topics. For instance, jokes that can be made about “autoreleasing”. I’ll let you think about that for a second and you basically understand how this went. About ten minutes in, I was thoroughly disappointed in the immaturity and inappropriateness and walked out of the room. As others informed me later, it did not get any better. There were tidbits of information weaved in, but the overarching theme remained the same.

Sadly, this was not the only offensive point in the week. The highly respected keynote speaker managed to weave in a reference to a female celebrity’s “tits and ass” in his discussion, which I found awfully distasteful.

Now, I know that being one of the handful of women in attendance at the conference, I am in a serious minority in terms of the way I experience and react to things such as this. I also know that it’s quite possible that others would not be offended as they may have the same, in my opinion immature, sense of humor. Yet, in discussing with others, including members of my team, I found that I was not alone in finding these references uncomfortable.

Why is it that an inappropriate talk would even be permitted on a stage at any respectable conference? How does this in any way further the advancement of the software industry at large, and the Mac community especially? In my opinion, it sets us back quite a bit. During one of the much more informative and respectable talks of the week, the topic of diversity was brought up. The speaker pointed out the fact that the Mac community is full of mostly men from an educated and higher income background. The context was in discussion of how we tend to gravitate towards like minded people. And in fact, it’s impossible to argue that this is a truly diverse field by any means because women and minorities are grossly underrepresented as I’m sure you know.

However, what this experience and other similar encounters I have had in the last three years as a Mac developer have started to suggest is, maybe the Mac community doesn’t want people like me to be comfortable? Perhaps they would rather keep this a boy’s club forever, and it’s simply irritating when people like me disrupt that.

Wow, does that thought scare me. Coming from a different industry where diversity is praised and encouraged, could it be that software developers want the exact opposite? Clearly not all of us. But, perhaps some of the organizers of this particular conference gravitate toward that mindset.

The Mac development community has changed a lot over the years. There are new iOS consulting companies popping up all the time. Macs are in more homes than ever before in history. Mac developers are hiring business partners, even donning suits sometimes, and prancing into major corporations to work on exciting applications. It’s a new world, folks. And as a result, there will likely be growing pains.

All I ask is this…

First, if you are in a position where you can control the conduct and standards at a software event that is intended to be in any way professional, you are therefore obligated to do so. Or at least warn people who may be attending otherwise, so we may steer clear.

Second, before you start to defend this kind of inappropriate behavior in a professional setting, think about how you would feel if I were your daughter or your sister. I’m not against inappropriate humor by any means, I just think there’s a time and a place. This was not it.

Do we want the Mac community to be a place where anyone, regardless of gender, race, religion, etc. feels uncomfortable?

Diversity is great. It shows that our field is growing up. But diversity can only happen with acceptance, tolerance, and the ability to empathize with those who may feel uncomfortable, even if you yourself do not. I sincerely hope that at future Mac community events, I will not be similarly offended.

Thank you to the wonderful guys who provided support and feedback in preparation for this article. It’s nice to know we have some gentlemen out there in the Mac community!

Sincerely,

Brit

Update: After getting in touch with the conference organizers, I have a lot of hope regarding this issue. They were very concerned, apologetic, and acknowledged that this should not happen at a professional event. Thank you!

Software should be more like Cirque du Soleil

I recently attended a traveling Cirque du Soleil performance called “OVO” which was an insect themed performance. If you haven’t seen a Cirque du Soleil performance before, you must go because they are fantastic! When you arrive, you enter a humongous tent and are immediately transported to this bizarre kind of circus that’s all grown up. The costumes are incredible, the music is live and fantastic, the sets are extravagant and capturing, and the performers are amazingly talented. It’s a great experience. But the thing that really sets a performance like that apart are the details. Nothing was overlooked! From the elaborate costumes to the scenery, to the pre and post show entertainment, you could tell that someone had been over everything with a fine tooth comb. Naturally, I related this to software.

Great software is all about the details too. It’s the little things that picky development teams refuse to overlook, that really make a user’s experience with software exceptional as opposed to just fine or average. Certain personalities tend to be more detail-oriented than others, but I find that developers seem to be more often than not, concerned about the details.

With so many apps out there these days, it takes more than just functionality to make your products stand out. I think the details take you that extra mile. You don’t just throw fields onto an editing screen and call it a day. Even if it’s just simple text input, you really have to think about the layout, the appropriate width and height, is this blue the right blue, how strong should the font be, etc. We can’t afford to forget the user’s interaction at every level. If you’re writing low-level code, think about performance considerations. Could the user experience a slow down with a large data set? Think about your team as well. Who may have to work in this code file in the future? Is your code clear, organized, and concise? The more details you take the time to really consider, the better!

Ok, wait. By now, you must be thinking in the back of your head, “That’s great and all, but then I would never ship! Who has the time to leave no stone unturned in their app?” Yeah, I don’t either. And I certainly have not mastered this balance yet.

Here are some of the ways my team currently manages this dilemma:

- Make small adjustments/improvements in incremental releases (the first release cannot be perfect, but over time will get better)

- Prioritize tickets regularly to sort out the most important issues to the user, and which tickets can wait a little longer (we think about a ticket as must-have/nice-to-have/ or should consider)

- Never create a new UI without showing at least one other person, preferably several, for critiques and improvements

- Capture all ideas for improvements so that they are not overlooked or forgotten

- Use mockups! Even if it’s just a piece of paper or scribbles on a chalkboard. It’s amazing what you can eliminate before you even begin coding if you do this often.

- Test! This is one area that we are trying to improve on my team. It’s so critical to have others test out your changes before you send them out to the world. Catch as much as you can before it gets out there.

If you’ve never looked back at a feature you did and said… “Wow, was I drunk when I did that?!” then you deserve an award. For everyone else, I think it’s important that you’re willing to go back and re-work a feature (even if it seems minor) when it’s just not right. If you’re satisfied with mediocrity, then by all means leave it. But you are taking a big risk that users will overlook the details too. My guess is they won’t.

Right now, I have so many things I want to improve about the product I work on that it can seem overwhelming at times. The steps above seem to help break it down into manageable pieces. Just saying it’s good enough, though, will not allow any product to stand out. Details, details, details.