Devil’s Advocate: Don’t Use Open Source

Do to the nature of our work, we frequently collaborate with non-technical organizations. This is the first part of what we’re calling our “Devil’s Advocate” series, intended to help non-technical people make better technical decisions by presenting the negative side to current tech trends.

Don’t use open source.

Don’t get me wrong, I love open source. I use open source projects and I contribute fixes back to them whenever I can. Open source is great.

But open source does not make solutions instantly better, more democratic, or more transparent. A lot of organizations– particularly nonprofits– insist upon open source because the philosophy of the open source movement matches their own ideals. Well, that’s nice, but technical decisions should be made based on technical arguments. Open source is the right solution when there’s an open source project that fits what you want to build.

Far too often nontechnical managers ask the dev team to take an open source project and completely alter the functionality without realizing that it’s harder and takes more time to do that than it would have to build something custom. The manager thinks using open source should make the project cheaper and speed up turn around time, if that doesn’t happen he gets frustrated by the work ethic of the programmers. “Why isn’t this done already?” he might ask. “The open source project works out of the box, all you need to do is just make these tiny changes.”

Granted there are considerable advantages to going with an open source solution. It is easier to onboard new devs. You benefit from an established community of devs without having to pay them. You have a mature, fully functioning platform to test various ideas on.

But that last advantage is exactly why open source might be the wrong solution for you.

As code “matures” good developers reorganize it to remove duplicate functions and make it easier to maintain. From a nontechnical mindset it is difficult to understand what these periods of “refactoring” (translation: code clean up) are really doing or why they are necessary. Too often nontechnical managers see refactoring as a period where nothing is getting done because the devs were sloppy and have to go back and fix their mistakes! But all devs, even the best in the business, write code that eventually has to be refactored. It’s an important part of how software evolves.

Imagine we had two functions: send_email which takes values from a form, generated a request to the server to send an email … and forward_email which takes values from a form plus values from a database and generated a request to send an email. We wrote send_email before we knew that we would ever want forward_email, but when someone requested the ability to forward emails that sounded like a good idea so we quickly copy and pasted send_email and changed a few things before renaming it forward_email. Now suppose that we realize we have made a mistake writing the code to generate the request. Or maybe we hadn’t made a mistake at all, maybe we upgraded to a new version of something and that required a change. Both send_email and forward_email need to be updated… but if we had created a third more generic function (say generate_mail_request) and moved the code that wrote the request out of send_email and forward_email, then we would only need to change generate_mail_request.

This is the concept of “abstraction”, building reusable bits of code that several parts of the application will use to do the same thing.

The process of minimizing and reusing code is essential to project growth. However, it can also make changing small things more difficult if the change conflicts with the way the program was designed to behave. This is why taking an open source piece of software and making “a few changes” may in fact take longer and be more difficult than writing the same software from scratch. If the open source project is mature enough it has probably been refactored a few times, creating several layers of code that effect hundreds of features and functions.

Assessing the Ease of Your Desired Change

At the same time most mature open source projects do in fact assume you will want to change things around a bit. Their programmers work in pathways where certain changes can be made quite easily. The trick is understanding whether the customizations you want fit into that system or not.

As a general rule it is usually possible to change the way an open source project looks. If the project has a templating system, there should be an easy way to override the default templates with your own.

For mature and complex projects it is also usually possible to add new, independent features pretty easily. Since these tasks leave the core behaviors alone they only need a place to hook into so the open source application knows it’s there.

The big question mark is always how much of the existing behavior can be changed, that will depend on whether what produces the behavior in question is a link in the template, client side javascript, or something in the server side code and if in the code, how deep?

Open Source as Parts of a Whole

Now that you’ve heard all the consequences of picking an open source project over a custom solution, there’s good news: the best projects use both custom solutions AND open source. There’s an open source solution for practically every major feature you need, designed to slide easily into place with all kinds of different applications. So if you truly need something unique and there’s no open source platform that fits the bill. You can hire a developer to build something custom, but fill it with open source parts so that you’re not wasting time and money building things that someone else has already built. Pop in a login system, image uploading, commenting … all areas where there are several good open source options available.

And when you’ve finished your custom piece of software … you should definitely open source it 🙂

Public Speaking Hacks for Conference Season

Two years ago I took the stage during The Feast to explain why developers don’t work with open data. My presentation took the nontechnical audience through such concepts as brute force hacking and formatting inconsistencies, got me a standing ovation, a stack of business cards a mile high, and ultimately set me down my current path.

Yesterday I returned to The Feast to give a 90 second pitch about a project I’m developing for Exversion, again it got a great response– influential people sought me out rather than me having to stalk them through the crowds– and I found myself approached by a lot of would be entrepreneurs asking for tips on giving an awesome presentation.

So I decided to write a quick guide with some of my best advice for pitches and longer form public speaking.

Find Three People

Having a crowd of hundreds of people focusing on you is really scary, so the first thing I do when I start my presentation is find three people in the crowd to make eye contact with. One on the left, one on the right, and one somewhere in the center and towards the back. Throughout the course of my talk– whether that talk is 60 seconds or 60 minutes– I keep coming back to these three people and making eye contact with them again. Usually I develop a little rhythm, jumping from left-person to center-person to right-person back to center-person, left-person… etc.

This technique has a couple of different benefits. First of all it brings the scale of the conversation down. You are no longer giving a speech in front of a massive group of people, you’re just having a conversation with three people. A casual conversation with three people is easy, right?

The second thing it does is give you a really easy way of judging audience response. Those three people will smile, they’ll nod, or they may start to fiddle with their cellphones … in which case you need to change something up on the fly.

The third thing it does is get the attention of everyone around those individual people. Think of how many times you got freaked out by someone staring at you across a room only to realize they were actually staring at someone behind you? That’s the benefit of crowds. You’re really looking at one person, but everyone around that person is going to feel like you are talking directly to them which will make them pay more attention.

The last thing it helps with is establishing a soothing rhythm for your body language. Who do you think comes off as more confident and compelling: a speaker who stands in one place, swaying nervously and staring out into the crowd, or a speaker who moves around in a smooth orderly pattern? This is true even when you’re using a podium, the speaker who turns her head to look at specific people seems much more natural than the speaker who occasionally looks up from her notes to stare into the void. Ultimately when people feel like you are talking to them rather than at them they are much more receptive to the content of what you are saying.

Memorize Phrases, Not Scripts

There are some people who can write out every single word before hand, memorize it, then deliver a spectacular presentation, but most of us end up obsessing so much over remembering the exact order of each perfect sentence that we lose the emotion and energy we need to engage the audience. The power of perfect wording is a myth perpetuated by Hollywood screenwriters. It’s not the exact words that people respond to, it’s the enthusiasm and confidence of the speaker. After the presentation no one is going to remember exactly what you said, what they will remember is how they felt while you were speaking and whether you were likable on stage.

That being said, sometimes you do have key phrases that you want to make sure you use. They maybe taglines or core concepts or they may just be good transitions. The first and last lines of your presentation are good things to plan out, the first because it is the sentence in your presentation with the most potential power, the last because the absolute worst thing in the world is to get through your entire presentation then end it with something like “uh… well that’s all I have to say, thanks.” (we’ve all done it)

So in planning out your presentation, figure out what the key phrases are and memorize those. Get used to saying them over and over and over again, so that you only need to say the first word and the rest of the sentence comes out automatically, without thought. For my Feast pitch yesterday my key phrase was “During a crisis the most expensive resource is time”. I practiced that phrase over and over and over again the day of the pitch because what I was talking about was how poor data infrastructure can delay organizations like FEMA or the Red Cross literally for days. I needed people to understand that you can’t send people into the field without any clue where they’re going, what they might encounter, or what they’ll need to help. Every minute spent trying to get the information relief organizations need to deploy is a minute spent not helping. Blankets and bottle water are cheap, time is expensive.

Treat Your Points Like Legos

As much as possible strive to make your content modular. This is essential when you don’t have a slide deck to structure your talk, but it also applies to what you plan to say within the bounds of a single slide if you are working from a deck (because Lord knows you do not want to fill up a single slide with everything you plan on saying). Since you haven’t memorized your whole speech it’s natural that in the moment you may recall points in a different order than what you originally planned on. Do yourself a favor and try to avoid chaining thoughts together. The more Point B depends on the audience understanding Point A the more of a colossal screw up it is when you accidentally forget to make Point A and go immediately to Point B.

At the same time keeping things modular means you have options when things just aren’t working. You should give yourself the ability to skip sections or examples if you find your talk going slower than you originally thought it would or when the audience doesn’t seem to be responding. It’s important to try to predict the type of audience and the tone of the event during the planning stage, but even the best speakers make mistakes in this regard. The more brittle the structure of your presentation, the more likely it is to feel like a run away train. You know it’s not working, the audience knows it’s not working but you’ve given yourself no break points where you can add or remove content on the fly.

This may seem like a huge challenge, but it’s really not that hard. Just think through what you want to say in two-three sentence blocks. Get a general idea of what those sentences should sound like, don’t obsess over the exact wording. Think of it like a mini-essay: the first sentence should state your point, the second sentence provides an example, the third sentence a solution or conclusion or restate your point (depending on the situation). Experiment with different wording each time you practice. Most people screw themselves over in their transitions, because we don’t think about the meaning of the words in transitional phrases we just say them automatically to fill the gaps between our thoughts, but when we’re trying to get a smooth, eloquent speech together we need the meaning of every word to align correctly.

As you practice stating your point, providing an example illustrating your point, then concluding you will realize there are certain transitions that you should absolutely avoid using because they paint you into a corner, leaving you with no smooth way of getting to the next point. There is no master list of phrases to avoid, it depends on what you have to say. By speaking naturally instead of from a script you will find these bad transitions as you practice and know how to avoid them.

Time Yourself Once, Then Forget About It

A little known secret of presentations: it’s very rare to pull a speaker off or interrupt them when they go over time. You always have a little clearance proportional to the total amount of speaking time, and depending on the moderator you may have even more wiggle room than that.

Interrupting a speaker is awkward, no one wants to do it and so organizers will usually put off doing it until they absolutely have to. You can get an extra five seconds out of a sixty second pitch, an extra minute out of a four minute demo, so there is no Earthy reason to obsess about time. Chill out, speak at a pace that is comfortable for you. Take the occasional dramatic pause. If there’s a clock displaying your time, ignore it. No one is going to pull you off stage with a giant hook and you certainly don’t get a prize for finishing early.

You should time yourself while planning your talk so that you know approximately how much content you can fit into the allotted block. There’s a big difference between needing a little more time to finish your conclusion and passing your limit when you still have six more slides. If the organizers get the sense that you are wrapping things up they will let you finish. If they feel like you’re just about to launch into a whole new section of material they will cut you off. Experiment with and test how much content fits inside your block. Remember that saying something on stage is a different experience from saying it sitting down in front of a computer. There are always little seconds gnawed away by the logistics of being in front of others. Your slides may not advance immediately, or you may be stopped by audience laughter or applause. If you find yourself hitting the time limit exactly, trim a little fat and time yourself again to account for these issues. Once you can do your presentation under time once (maybe twice just to be sure), throw away your timer and just forget about that aspect of it.

Own Your Stage

I was not the sole entrepreneur invited to pitch in front of the Feast this year. I was one of eight given the opportunity to come up and talk about what I wasdoing. During prep the moderator explained her plan to keep things moving smoothly: we’d all go up on stage together, lined up in the order we were presenting in so that there would be no awkward logistical issues moving from one presentation to the next.

And that’s how it went, one by one, down the line until we got to me where I did something truly shocking.

I stepped off the line, and walked towards the front of the stage to give my pitch.

When your presenting, no matter how much time you have, no matter how early or tractionless your project is, no matter how unimpressive your expertise, no matter how little physical space you actually have, YOU OWN THAT STAGE. It is yours and you need to act like it is yours until you give it up or someone drags you off!

By staying on the line, the audience had a constant reminder that the person speaking was just one of many. It diminishes you, the audience ends up distracted by thoughts of the rest of the line… how many people are left? What might they talk about? Ooo look how the guy who just went is still fidgeting! Stepping forward says this is my space and my time to talk.

After we came off stage all the entrepreneurs before me said “I wish I had stepped forward too” (and actually the moderator told me “I wish I had put you first so that everyone else would have stepped forward after seeing you do it!” haha) It wasn’t that they didn’t think of doing it, it’s that they wanted to follow the rules. They were afraid of doing something different and having their right to speak taken away. The difference between a good presentation and a great one is not language, it’s your ability to convince people that you command the stage. Which means you need to believe the space is yours and you can do with it whatever you please.

Imagine how much more authority you will seem to have when it looks like you are so important that the organizers will let you do whatever you want in the time you’ve been given to present. Imagine how much more people pay attention when they think someone important is speaking.

Principals in Practice

Here’s how I prep for a presentation. First, I don’t really put much work into it until the week or day of (depending on the length and number of slides I need to create of course). I get excited about what I want to say and that excitement is useful on stage so I want it to be as fresh as possible. For a 45 minute presentation I’ll probably do the slides the weekend before (this tends to annoy conference organizers who want a clear proposal months in advance in order to weed out bad presentations, but I get most of my invites directly from people who have seen me speak, know how good I am already and are willing to trust me). For a sixty minute pitch I’ll do a script usually an hour or two before. I never do the same presentation twice, even if I’m talking on the same topic.

I would rather have a complete meltdown on stage than come off sounding canned and rehearsed.

For that reason I abhor pitch practice and avoid the formalized practices sometimes run by organizers at all cost. I think nitpicking wording and style is the absolute worst way to coach someone into giving a good presentation. Organizers who insist on it are really only doing it for their own peace of mind– to soothe the urge to micromanage– not to help you. I am always terrible at pitch practice (ALWAYS) so if an organizer twists my arm about it, I’ll do my best to get through practice with a passing grade, completely disregard 90% of their feedback and waste no more thought on it.

For pitches (ie – talks under two minutes) I will start the prep process by writing out a script. When time is that tight every second counts so it make sense to invest the time and effort organizing your thoughts. The process of writing the first draft helps me identify time munching digressions. When you’re excited about what you want to say you’ll be able to think up all sorts of compelling arguments, however some of these arguments won’t be as easy to express in the allotted time. The script helps me find those thoughts that aren’t worth the time and energy they eat up, so that I can cross them out and focus on what points can make the greatest impact in the smallest time frame.

Once I have that script I read it through a few time, then close my eyes and make sure I can flow smoothly from the key phrases that I’m trying to memorize to the sentences where I’ve decided the exact wording doesn’t really matter. If I’ve having trouble remembering what comes next I may modify a key phrase to better setup the next thought before I start memorizing it. This isn’t as complicated as it sounds, remember you’re talking about something you know inside and out. All you need is a little hint.

That settled I then write a quick outline and throw out the script. My outline is not a proper traditional outline, but more like a list of key phrases and summary of points in the order they should probably go. This is what my outline for the Feast pitch looked like:

– time is expensive
– types of data needed
– who needs the data?
– one infrastructure
– one infrastructure that hooks into anything

Then I just start running through the pitch until I feel comfortable with it. I feel like a perfect run through just jinxes you, so I try not to obsess about hesitations or minor errors. Every time I’ve blanked out on stage it’s because I’ve over practiced. While it’s useful to have key phrases so committed to memory that you can finish them without thinking, when you’re presenting you really want to be aware of what it is you’re saying. It’s easier to recover from mistakes that way. If I feel nervous before going on (and I always do) I will look over my outline rather than trying to repeat the whole thing perfectly from memory to prove I can.

If I have more than two minutes I skip the script phase completely and use my slides to structure and guide the course of my talk. If I have any key phrases I want to use I will put them directly on the slide so that they are impossible to forget. I’ll run through the slides a few times and if there are places where I feel the transition between one idea and the next is too fragile, relies too much on getting exactly the right sentence in place, I will add a slide in between those thoughts to better lead from one idea to another. You can never have too many slides!

Ultimately the most important thing is that you feel as comfortable as possible when you’re up there. How you feel directly before you go on doesn’t matter because we’re all freaking out at that point anyway, but when the attention is on you, you should enjoy yourself.