Keith Casey’s World Of Project Management Software

SUMMARY: Keith Casey Professional Overview

Keith Casey, owner of Casey Software and developer of Web2Project and Phillip Crum of contentmarketingcoach.com discuss Keith’s background in software development. They also discuss the project management software package options available to business owners, as well as the origins and capabilities of Web2Project.

Episode #1 | Keith Casey Overview

Keith Casey: Owner, Casey Software
Phillip Crum: The Content Marketing Coach

Transcript: Overview Of Keith Casey’s World
KEITH CASEY: I’m Keith Casey. I’m a software developer. I’ve been developing software since… let’s see, I got online in ‘96 and started designing and building webpages then. I started doing it professionally in about 2000. I do not have an education in software development, I actually did electrical engineering. I did not want to do software for a very long time. It turns out that I’m good at it, so I decided to go for it. I spent about nine years in Washington, DC, as a contractor for different federal agencies. The Library of Congress, where I was working to answer the ultimate geek question of how much data is in the Library of Congress. And the answer is “a lot”.
PHILLIP CRUM: All of it.
KC: We figured out back in 2001 that if they digitized about 50 terabytes a day, they would keep pace with what was being created. That was before iTunes, that was before video blogging, that was before blogging as a whole.
PC: So is the NSA the realization of a dream?
KC: You know, I’ve heard that one so many times, and unfortunately, it seems like they’re pretty good at it.
PC: So you’re self-taught. No professional academic background, no book-learnin’?
KC: Not at the beginning. I’ve gone back and after I started getting into software development, I went back to my university, where I did my undergrad, and I was already friends with the computer science department head. So I dropped him a note and I said, hey, I’m studying these things, do you have a book recommendation? And I went to a small school, so he introduced me directly to the computer science profs who sent me their syllabi for their classes. Not formal book-learning, but went back to the book when necessary.
PC: Which is probably the best way to do it. OJT, on the job training. Which raises a question: Do you think that a formal – academic is the word I’m looking for – environment for training. Is it a help, or a hindrance, or none of the above?
KC: I think it works really great for some people. That doesn’t happen to be the way I work, but I think in a lot of industries, you absolutely need it. Engineering, medicine, law, you need to go to school. I think for computer science is one of those areas where you probably should go to school to have the connections, the alumni network, all those sorts of things, the formal systemic sort of training, but realistically, you don’t have to. I’m really torn on that one.
PC: Jump in the deep end and learn by doing.
KC: Yeah, pretty much.
PC: So you went from the Library of Congress to project management. You’re in Austin, Texas now.
KC: After I left the Library, I went over to the Department of Justice and I was managing projects over there. I was handling all the risk management for a number of different projects, and that’s originally how I originally found DotProject. We were paying for Primavera at that point, and that was $2,000 a seat. Somebody on my team, amazingly enough for a government worker, said “We should save some money.” They just wanted to save it to spend it on other things, but still, they wanted to save some money.
PC: Re-allocate money.
KC: Yeah, exactly. So I ended up finding DotProject, got involved over there, ended up making it to the core team. We split in 2007 to form Web2Project and I’ve been working on that ever since. Somewhere along the line, I think, 2004, I started my firm. I’ve been running my own consultancy off and on since about 2004.
PC: Where can one find that?
KC: Casey software dot com. C-a-s-e-y software dot com. You can see that’s been online since December, 2004.
PC: For the benefit of those who might be listening or reading, why don’t you define what DotProject is? And what Web2Project has become?
KC: DotProject – now Web2Project is a web-based project management system. It’s built on an open-source back, so it’s built on Apache webserver PHP programming language, MySQL database, and the system itself is open source. That means you can download the code, you can tweak it all you want, you can customize it, you can extend it. It’s like handing someone a recipe, so they can just follow the recipe, they can go with it, or they customize it and add additional things and make it their own. And so Web2Project is all the standard stuff a project management has – Gantt charts, work breakdown structure, time tracking, risk management, all the things you think of when you think formal project management.
PC: So it’s open-source software program something that anybody can use and something that anybody can tweak? Or do you need some sort of special training?
KC: Having a software background is nice. It absolutely becomes necessary when you’re trying to customize how the system works. My vision has been to make it easier and easier to customize it, where you don’t need to have code-level training, where you can say, “I have a project. I manage my project like this.” I don’t think we’ll ever get a perfect one-to-one ratio in how everyone wants to manage a project, but I think we’ll get the broad strokes down and everyone can manage something through it.
PC: So the tweaks that one might need a programmer for, you would like to move the ability to make those tweaks and changes to the user interface, so somebody can click a button instead of having to know some code to make that change.
KC: For some of the core ones, things like when you’ve got a list of fields on the screen, there are the fields that display about the project. Right now, project can display information about the start date, the end date, the budget, the status – whether it’s an open project, or a template, or whatever – and putting all those fields on the screen, I think, shouldn’t require a developer to be involved. I think it should be a general user “Here are the things I care about. Get everything else out of my way.”

PC: Personally, I used DotProject for six or seven years before I figured out that you had parted ways and were now working on a branch called Web2Project. If you would, please define what is a “branch”, and where you are going with Web2Project and give me a big overview about Web2Project.
KC: So the proper term is not “branching”, but a “fork”. A branch is when you work on something temporarily and then you merge it back to the main system. It’s like if you go back to that recipe. You’ve customized it, and you’ve tweaked it to what your preferences are, and you pass those preferences back. Maybe Betty Crocker publishes that recipe with your updates. We went a little bit of a different direction with a “fork”. The difference is that a fork splits off on its own direction and really has no intention of coming back to a main system.
PC: Permanent mutation.
KC: Absolutely. We’ve been working on that permanent mutation for about six years now. Our vision for Web2Project is that it supports real-world business needs. One of the frustrations with dot project is that it had a very – it never really had a clear vision, and so we actually want to reflect the vision of our users and say, “Here’s what people are asking for. Here’s what people are trying to do. Let’s make that easy for them.” That’s not going to take care of everyone’s situation, everyone’s use case, but if we can satisfy 80% of the people 80% of the time, we consider that pretty good. A lot of that last 20% can be taken care of with add-on modules, with customization, with little but tweaking and configuration from there.
PC: The old 80/20 rule. You bet. Interesting. So where do you see Web2Project going in the next two or three years? What’s the plan? Things will change, of course, but what’s the plan? What’s the roadmap look like?
KC: One of the big things on my personal agenda is having a nice, clean API in the system. An API is an advanced programming interface. It’s basically the idea that you can plug other software into it and have it manipulate the data. Think things like time tracking software. Think things like FreshBooks to do invoicing and stuff like that.
PC: CRM programs.
KC: So now when you create a contact in your CRM, it automatically synchronizes through to Web2Project so you’ve got the all information there. When you create a project proposal in Web2Project, it can synchronize back through your CRM to say, “You have these proposals on the table for this person, here is the estimated value of those.”

PC: You are the lord and master of Web2Project at the moment. Tell me about your development team. What have you got, what you can and will you tell me about your development team? Are you flying solo, a Lone Ranger, or do you have a group of folks helping you with this?
KC: Sometimes, it looks like I’m the Lone Ranger on things, but believe it or not, we have a team of five people. We have myself based here, in Austin, Texas. We have Trevor Morris, based in Halifax, Nova Scotia. He’s really big into testing, like unit testing specifically, so he’s written a lot of the testing system that goes with Web2Project. We’ve got Benjamin Young. He’s based out of Greenville, South Carolina. Really great guy, works a lot on some API stuff. He hasn’t been super active the past couple years. He’s been with a startup, so he’s been tied up with that. We have Bruce Bodger out of Oklahoma City, who is a fanatical Web2Project user and has been for many years. He does a lot of formal project management consulting and advice and things along those lines. There’s Pedro, who is based in Lisbon, Portugal, who is actually the originator of Web2Project. He invited me to join two days after he started, so I’m actually number two on the team.
PC: I see.
KC: He’s done a lot of the consulting around Web2Project, a lot of custom software development, things along those lines. Those are the formal team members. We’ve got another half-dozen people who contribute patches regularly.
PC: Tell me about your support. What do you have in place? If I’m wanting to use Web2Project, what do you have in place for support? I’m not a coder, I just needed it for my business, but I know a little bit about PHP and CSS, just enough to tweak something, enough to get in trouble, so I can do a few things, but if I have questions, where do I go?
KC: There’s two main places. The first one would be our wiki. It’s a user-contributed wiki just like you’d have for Wikipedia, and it has documentation on every single module within the system. So it has information on “here’s screenshots, here’s buttons, here’s what they do. Here’s what some of the terms mean”. It’s a quick way to get started with a lot of things. There are some training videos that go along with the modules. Visually, those training visuals are a little out of date – we’ve done some updates to the system first, or in the past couple years, but in the meantime, the content there is completely accurate and it’s pretty good to go. That’s on the pure user side of things. If you’re doing to do a little bit of development, or starting to figure out development, or if you run into bugs, our support forum is support.web2project.net. We use a system there called AnswerHub. You can submit questions, people can vote up and down questions, people can answer questions and vote up and down the answers. It works almost identically to Stack Overflow, if you’re familiar with that.
PC: What if I’m not familiar with Stack Overflow. Give me a 30-second… what the heck is that?
KC: Stack Overflow, I think, bills itself as the social question-and-answer site, so they can submit questions and they can say “Here’s what I’m having trouble with. Here’s what I’m trying to do.” You can tag it for easier searching later on. Before it actually lets you submit a question, it says, “Here’s a list of questions that we think are similar to yours. Before submitting yours, does one of these fit?” It really guides you to those existing questions, and then people can submit answers, add comments to the questions, things along those lines. People can vote up and down the answers. And you as the question submitter can come back and say “Here’s the answer that worked for me. Let me accept that.” Once you accept that, the person who actually gave you that answer gets points. You, as the submitter of the question, get points if people vote up your question, so it’s really based on a contributory model. So people can contribute as much as possible and to be as useful as possible.
PC: If there’s something I want or need Web2Project to do, other than what it does out of the box, or there’s no available plug-in or module to add to it, what do I do?
KC: Probably going to support.web2project.net is your best option for now. There are three or four people there I can think of that do contract development based on Web2Project. I do some contract development, but I’m selective on what I do just because of my responsibility to the core system. Going to the support forums would be your first option. Contacting me at keith@caseysoftware.com would be another option. And if all else fails, I can put you in touch with people who are doing things along those lines.
PC: I can have a developer create a module for me to accomplish what I need if it doesn’t exist.
KC: Absolutely. I have written a module development guide, so when you do hire developers, you can give them that guide as a place to start to make sure that 1) they’re doing things properly and 2) that their code is upgrade-friendly so as we continue developing on Web2Project that your module doesn’t break as easily.
PC: Very forward thinking. Very WordPress-ish. I like that.
KC: I’m actually envious of WordPress and their plug-in system and the community they’ve built around it. I emulate them as much as possible.
PC: That’s a good model to follow. Let’s back up to 30,000 feet again and talk about the different categories of project management software. Other than online – let me clear some mental brush here – online and offline software for project management and the old-fashioned way of pencil and a piece of paper. Is there any other way to do project management tracking? I wouldn’t think so, but…
KC: Those are the most common ways. When we were at the Department of Justice, we’d have a Gantt chart that we’d print out of Microsoft Project and stick on the wall and manually update that throughout the week. Like literally writing on the wall. That was at the Department of Justice in DC.
PC: That might explain a lot of things, wouldn’t it? So in the software category, there’s open-source, which we’ve talked about, and then there’s commercial, which is something you can buy off the shelf, so to speak. Is there a third category?
KC: Commercial is kind of broken down into two categories. There’s commercial open-source, and there’s commercial proprietary. Proprietary, if we go back to that recipe model; that is getting the recipe and how to figure out how to make it yourself, it’s the going and buying the cookie off the shelf. You don’t entirely know what’s in it. They tell you, “Here’s how it works, here are the ingredients.” You have to trust them to go with it.
PC: And commercial open-source. Can you give me an example of that?
KC: The project management base, that’s a really good question. I couldn’t name any off the top of my head.
PC: So obviously, in commercial open-source, you’re paying for the software but you can still tweak it yourself.
KC: Absolutely. A good comparison in the CRM space would be SugarCRM, which is a customer relationship management system. And when you buy it, you actually get the source code; you get the recipe so you can tweak it and adjust it to fit your preferences.
PC: That is a good analogy, actually. That’s interesting. Categories, we have commercial, which is broken down into commercial open-source and commercial proprietary. Which of those two are commanding the lion’s share of the market? The commercial market. The commercial open-source or commercial proprietary. What do you think?
KC: Commercial proprietary, by far. There are systems like Primavera, which are amazing in their power but also amazing in their complexity, in what they can do and how they can do it. I believe Primavera was purchased by Oracle a couple of years ago, so as much fun as Oracle is to work with, I can imagine Primavera is along the same lines.
PC: I’m guessing they’re very… what was the adjective you just used?
KC: Complex?
PC: Well, that, too. I’m sure the price structure is complex for that stuff?
KC: Oh, yeah.
PC: Fairly expensive. You have varying sizes of business. Small business, let’s use the government’s definition of 50 employees and under; and then medium, which is 50 to 500 employees, probably, and then large business, above that. A small business, one to 50 employees that needs project management software solution, obviously you want him using yours, but if he was dead set on paying for a solution, is he going to want to go to the commercial open-source or commercial proprietary, and obviously, that’ll depend on his level – if he’s got people or knowledge of coding – he might want to do the commercial open-source. I guess where I’m going with this is does commercial proprietary software fit the small business market?
KC: Yeah, I think it absolutely can because, while I mentioned groups like Primavera, and there’s obviously Microsoft Project, there’s also different flavor of project management where it’s not really Gantt chart project management, more of a to-do list project management, and that’s something like Basecamp. Basecamp works for many thousands and thousands of people, but it’s really about managing to-dos. My main criticism of Basecamp is that, if you have three items, and items 1 and 2 have to be done before you can do item 3, there’s no way to denote that in the system.
PC: I’ve used Basecamp before myself.
KC: It’s fine for a lot of people, but when you start having multiple people working on projects and a lot of moving parts, it gets problematic pretty quickly.
PC: I’ve used Basecamp myself and that’s exactly the way it struck me is that it was just a giant to-do list. What are the differences feature-wise – and I don’t mean from a road-level, but between an open-source software program like yours and a commercial proprietary program. Are there features that are available in these that you can’t get in an open-source software program?

KC: Not usually, but in the case of Web2Project, specifically, I can say that Web2Project’s reporting is mediocre. There’s a number of places we would love to be able to create bigger and better reports, definitely put some graphical elements on it to do some charting, bar charts, things along those lines. The reason we haven’t done that is that we don’t have anyone specifying what those reports should look like. If I had somebody on the team with “Here are the top five things that drive my business, here’s the top five things I need to know,” then we can take action on that within days or weeks. I think that is one benefit or one feature that open-source has over proprietary is that, when we release an update, which I think we should release 3.1 this week at this point, you can usually deploy it within hours or days of it becoming available, as opposed to a proprietary solution. In a lot of cases, it can take weeks or months before you buy the license and you’re allowed to upgrade.
PC: You’re a little more nimble than the bigger players with their committees.
KC: Yeah, absolutely I mean, our marketing plan is basically to get out there and start talking about it. With the flexibility comes a little bit of weakness at times.
PC: The system reporting functionality in Web2Project is not that bad, to my mind, to my eye, but I’ll bet I know someone who can put those top five together for you, he said.
KC: That would be fantastic.
PC: I can do that. What do you think the future of project management overall looks like? Not necessarily what you plan for Web2Project, but just the whole industry as a whole. Is there going to be more players, is there going to be a thinning out? Some major change from this to that? What do you know? What do you think?

KC: According to Wikipedia, right now there’s upwards to 120 different solutions out there. I hope it thins out a little bit. 120 different solutions are pretty…
PC: Daunting.
KC: Ridiculous by most standards. Personally, I think while there will still be high-level project management, that’ll never go away, the coordination-level. I think some of the lower levels of project management are going to dissolve to the background, where we’ve got more and more systems that are tracking our e-mail, that are tracking our time, that are looking at our devices, pulling information out of those. I think a lot of the project management are things we associate with project management now, will dissolve into the infrastructure layer. When you and I are talking, or we’re trading e-mails or we’re trading phone calls over Skype or whatever, a lot of that information will be captured directly in the project management system. We won’t have to go back and log those notes. We won’t have to go back and attach documents because it’ll be tracking our e-mail and it will pull in those documents automatically. I think going that direction has a lot of power because, 1) it’s transparent. You don’t have to do everything. You don’t have to really do anything. You just go on about your normal life, and the system’s tracking things for you. But I also think it’s going to be great, or aspects of that are great, because it’ll be more complete. How many times have you exchanged documents with a customer and you later on realize, “Wait a minute. Did I actually back that up? Do I have a copy of it? Did we attach it to their customer portfolio? Where is that?” These things will just sort of happen by themselves, and I think that’s super powerful.
PC: I noticed on television, in some of the commercials, one of them last night during the ball game, that integration with other software programs through APIs and however else that’s done, is what they were pushing. I’m trying to remember who the commercial was for and I can’t, but I recall thinking in the commercial that it was not very well expressed that one program was talking to another, talking to another, talking to the first and that they were all linked up. There was too much marketing speak, but that’s another discussion.
KC: There’s an awesome Austin-based startup in town called Lantern CRM. Their whole thing is that they want to light the path for you and they want to make that path as easy as possible for you to take. They actually do that phone integration, so when you sign up with their service, you get a phone number that behind the scenes just runs to your cell phone or your desk phone or whatever, but you can turn it on and have it record all your phone calls and transcribe all your phone calls and make them all searchable. Now, every time you and I have a phone call, it can be logged in that system and completely tracked. I actually use another system called Contactually, which does that for e-mail. If I wanted to see every e-mail that you and I have exchanged, I can go back to that system and look at it and in the meantime, behind the scenes, it’s pulled in all your social profiles so I can find you on Twitter, and Facebook, and LinkedIn. I can see all the e-mail we’ve exchanged. If it can find your phone number, it goes ahead and attaches your phone number, which it might read from your e-mail signature. We’re going to see those sort of systems more popular and pull things together and aggregate all that information for you. The NSA. Your own personal NSA.
PC: When I grew up, we only had three channels on TV, too. Wow. Things have come a long way. What do you see as the top-selling features of Web2Project? Besides the fact that it’s open-source and you can tweak it yourself, what’s the big advantage?
KC: I think the open-source aspect is the single biggest advantage. I think, just because you can customize it, you can tweak it; you can have that 80% solution and close as much of that 20% as you need. After that, I would say behind the scenes, it’s the architecture itself. I’ve worked on large-scale architectures before. I’ve built all the mobile stuff for Fox News, I’ve built all the website and systems for a professional sporting league, so it’s really built with that stuff in mind. The system is rock-solid in terms of security, in terms of performance, in terms of stability, and it really just works.
PC: It surely does. As a six- or seven year user of DotProject, and I’m not trashing that program, I think it was great, but your system has been rebuilt per your blog, and it is just lightning fast. It is way faster than its predecessor. Kudos to you for that.
KC: From a technical aspect to that, we’ve cut about 35% of the code overall, and we improved the performance on every screen by 10 times and on some screens upwards of 600 times. So it takes 1/600th of the time to load a screen as it did before.
PC: It surely does. Tell me about the modules and, before we cut off for the day, the modules and the plugins – we call them modules here at Web2Project – but tell me about the module programs. What’s available now? Where do they come from? Are they available to anybody? Things of that nature. Modules.
KC: First, there are the core modules, and those are the ones that are included in the system when you actually download it and install it. You get right out of the box project tracking, you get customer company tracking, so you can say, “I have a company X. Under that company, there’s this many projects. Here’s each of the projects.” Out of the box, you also get task management. You can attach tasks to those projects, assign them to people, go ahead and set up dependencies and even set up projects and sub-projects that way. From there, there’s a handful of other things that aren’t used quite as often but are still very popular, like you can attach files to individual tasks, and say, “This file, this contract, this technical document or whatever, goes with this particular task.” And the system will track that throughout the lifetime of the project.
PC: Add-on modules. Let’s talk about the world of add-on modules. How does it work?
KC: There’s the module development guide that I mentioned earlier that will actually teach you how you to plug into the core system to be able to, for example, add things to the calendar in order to have things show up in people’s calendar feeds like in iCalendar like you might get from Google Calendar or from Outlook or something like that. It tells you how to make your module searchable, everything like that. From there, people have developed things like the to-do list manager, which is mine. This is basically a Basecamp clone within Web2Project. There was a call for that because sometimes, even in a major project with formal project planning, you need a simple to-do list. Having a simple to-do list to complement the formal project management methods made a lot of sense. In addition, I’ve put together a risk management module, so you can identify risks with this project, or even this individual task of the project, here’s who’s responsible for them, here’s the impact, and here’s the notes that we’ve taken that go along with this, as we’ve tracked the lifetime of the risk.
PC: Where is the line between “I need to develop a module that does, let’s say, payroll” versus just link up via API with a payroll program like QuickBooks or FreshBooks, whatever your choice is. Where is the line drawn? I’m sure there’s money involved in the answer.
KC: That’s a really good question. Right now, we’re trying to make the API available so you can really take either approach that you want. For add on modules, I see that doing things like payroll and invoicing and everything in the system makes a lot of sense. I suspect that integrating with third parties, that’s where money will be involved, because it’s the 80% rule. 80% of our users don’t use QuickBooks, so I don’t think QuickBooks integration will ever be rolled into the core system. That said, with the API, it can be added pretty straightforwardly and pretty easily.
PC: If somebody has a module developed, as I’m having you do one for me right now, when that module is finished, is it available? What’s the normal rule? There are always exceptions to rules, but exceptions aside, if somebody develops a to-do module or a contact calendar module, a content calendar module, is that module typically available to everybody else, the public? Or is just private to that one client? How do things normally work?
KC: That’s one of the big differences between DotProject and Web2Project that’s really behind the scenes that comes to light in this sort of scenario. DotProject is GPL licensed which means that everything you do for the system has to be open-source, and it has to be freely downloadable and freely distributable. If you distribute to anyone, you have to distribute to everyone. While that’s a great philosophy in some cases, we’re talking about the business world. I don’t believe the vast majority of people can really stomach that. They want their particular tool, their concepts, that’s their competitive advantage. So one of the things we did when we converted over to Web2Project is we changed the license. And there is a whole hour-long discussion on how we did that. But we changed to the BSD license is basically where you develop something on the system, you can do whatever you want with it. You can release it open-source if you want, or you can keep it proprietary and quiet and internal to your organization.
PC: Is there currently a list, a growing list of add-on modules for Web2Project and where might I find that?
KC: The repository isn’t very user-friendly at this point, but we’re working on that. If you go to github.com/Web2Project, you can find a list, I believe the risk management module is on there, I think timecard, flex reports, couple of other ones, and there’s a handful of customized themes on there, also.
PC: Well, sir, this is quite interesting. You’ve spawned about 800 more questions, but we’re going to do that another time because we’re out of time. I thank you very much for your input. This is going to be fun. I appreciate it, Keith. We’ll talk again.

Modernizing Legacy PHP Apps with APIs

If you read the tech press, everyone knows they need an API but most aren’t really sure what it is. They treat it as another checkbox like “Web 2.0″ was a few years ago or a mobile app was most recently. In fact, there’s an entire “API-first” movement in development circles that most people don’t understand or even realize why. In this book, we’ll start by discussing the what an API is, why you might need one, and follow up with the how to build one.

Of course, how do you get your application ready for an API?

Modernizing Legacy Applications in PHP

Modernizing Legacy Applications in PHP

Unfortunately, your code base is a mess. It has been architected over several years by multiple different lead developers and it shows. There’ are no consistent patterns or structure. The oldest core of the system is a collection of include files running several levels deep. More recently, someone bolted on some class-oriented libraries, and most recently someone decided to try a framework rewrite. All of it was done in different coding styles, with different naming conventions. The codebase is full of files that contain a mixed-up aggregation of PHP, HTML, SQL, JS, and CSS. And the “tests,” such as they were, consisted of the QA team running over the site once or twice a week and filing bug reports.

But what if I told you it didn’t have to be this way? What if I told you there was a specific series of small, incremental changes you could apply steadily over time to make your PHP code better, more modern, and ready for an API layer to make integrations easier. Wouldn’t you like to have a plan like that written down for you, distilled into an easy-to-follow list of instructions?

Check out our new bundle “Modernizing Legacy PHP Apps with APIs” to learn how to prepare your application for an API and then design it properly.

DrupalCon Austin Call for Presenters

DrupalCon Austin 2014

DrupalCon Austin 2014, June 2-6

For the first time ever, DrupalCon is joining us in the great State of Texas, specifically right here in Austin over the week of June 2nd-6th.

As a part of that, I’ve been tapped to serve as the Chair of the Coding & Development Track. It basically means that I’m in charge of reviewing every proposal submitted and choosing the content that falls into that track.. and towards that goal, I need your help.

I want to be flooded with great proposals so I have to make hard decisions and it generally makes my life miserable. ;)

You should submit if:

  • you work in Drupal, Symfony*, Composer, or related technologies;
  • you are doing something interesting on the Drupal platform;
  • you have integrated useful third party systems into Drupal;
  • you have done any work with Drupal 8, especially related to updating modules and/or development sites.

If you don’t do any of the above, don’t worry. You should know that although Coding & Development is my favorite track, it is only one of nine different categories ranging from Frontend to Business to DevOps.

If you have any questions, don’t hesitate to drop me a note, but make it quick.. the submissions close in just over two weeks on March 7th.

* You know Drupal 8 is Symfony-based, right?

What is Keith Casey Doing Now?

Since Twilio and I parted ways a few months ago, I’ve had a number of people ask “what’s next?” and for a while I didn’t have an answer. I just wanted to stop and catch my breath. In fact, I planned to take December off. That lasted all of 4 days..

Available from Leanpub: https://leanpub.com/restful-api-design

A Practical Approach to API Design

First, I decided to write a book on API design (pictured). After putting together an outline and realizing the sheer enormity of the project, I teamed up with James Higginbotham of LaunchAny who also happened to be working on a similar project. We first merged and fleshed out our outlines and then started writing. As of February 14, we’ve officially released the first version of “A Pragmatic Approach to API Design.”

Next, in order to support the book and other efforts, James and I have started building the API Developer Weekly newsletter.

In addition, I’ve kept my hands in a number of events including a pair of private hackathons and the nearly-infamous FU Weekend.

Next, I was tapped to serve as the Track Chair for the Coding & Development Track for DrupalCon Austin. As of today (Feb 18), the Call for Presenters is still open. It closes on March 7th.

Next, I started doing API design and development for a few companies. One I can share about is Techstars London company Op3nvoice. The premise is simple, what Google Search does for text, we can do for audio and video. We start with simple indexing and keyword analysis and peel back the layers to get emotional content and sentiment analysis. Overall, it’s a pretty freakin’ cool system and there’s a huge amount of potential.

And finally, I started doing a flock of API development in the Open Source space. I built a helper library for the new Marvel Comics API. I’ve started to formalize an API for web2project using the Slim framework and I expect it to be fully functional for our v4.0 release this summer.

So overall, while things have been exciting on my end, I can’t talk about the most interesting things.. yet.

Operation Buy It Now

My first book – “A Practical Approach to API Design” – shipped this past Friday. As a result, I’m activating Operation Buy It Now today.

To sweeten the deal, if you order it by 11:59pm  ET on Sunday the 23rd, you will be entered into a random drawing for four hours of API consulting. All you have to do is forward me your receipt. My email address is keith@(this domain). (If you already ordered and didn’t send your email address, forward your receipt to me.)

On Monday the 24th, I’ll pick one winner and announce it via the APIDesignBook twitter account.

The consulting can include a review of your helper libraries, the API itself, or supporting documentation. We’ll kick things off with a call where you detail priorities and we’ll see how far we can get.

If you participate, make sure you also tweet out about it, post to Facebook, or spread the word however else you normally would.

Thanks to Paul Murphy of Op3nvoice for suggesting this effort.

PHP5.5 and JSON Licensing or Licenses and You

Everything noted below is professional advice not legal advice. I’m not a lawyer, so check with your legal department or similar before you use open source software, regardless of the license.

In terms of software licensing, I have a simple principle:

Don’t make things unnecessarily complicated.

Let’s face it, most developers don’t understand licensing. They don’t understand copyright, licensing, or the rights and responsibilities that come along with them. In fact, some developers pride themselves on not knowing or understanding licenses at all.. they just want to write code.

As much as I wish we could live in that world, it’s wrong. If you’re sharing code in any way, shape or form, you need to understand the basics of the license you’re using and what the implications are.

Unfortunately, I did have to spend quite a bit of time and money researching licenses, acceptable use, and all the bits and pieces in between. You can read the details in “Why would we re-license Web2project?” on the web2project blog – but know that it was horribly painful and I wish it on no one.

For example, the PHP project was recently bitten by this line in the JSON library:

“The Software shall be used for Good, not Evil.”

which conflicts with the Free Software Foundation’s freedom Zero

“The freedom to run the program for any purpose.”

*sigh*

Many organizations have developed policies around which licenses are acceptable to use within their organization. They’ve reviewed the terms, done the homework, and cleared everything properly. They do this so you don’t have to.

But if you go with a non-standard license, you undo all of that work.

As much as the Pizzaware, Beerware, and DBAD licenses are entertaining and trying to make a point, they muddy things. It’s not because they are bad licenses, but because names matter in law as much as they do in computer science.

If your organization’s lawyers have said “you can use MIT, Apache 2, and the BSD 3-clause,” that means you can use those licenses and no others. If something is cited as the BSD 2-clause or Apache 1 license, they’re not interchangeable. After all, an array isn’t the same as a linked list though both are data structures to store items.

Whenever you’re writing code – any code –  that will be released publicly, make things simpler for the next person by choosing a standard license. One of the big three listed above are generally well-known but sticking to the OSI-approved license list is a good strategy too.

And people who don’t include any license make things even worse..

PS – If you’re trying to resolve the PHP 5.5/JSON library issue, this post from Iteration 99 has the details.

Marvel API – Helper Library

Provided by the Marvel API

Provided by the Marvel API

It’s a dark and stormy night. You’ve been working on that last bit of code and an explosion rocks your living room. In walks Doctor Doom with a simple demand:

How many other “doctors” are in the Marvel universe?

Unless you’re Comic Book Guy and know this off the top of your head, you’re going to need a little help.. so with that, let me announce the PHP library for the Marvel API.

Overall, using the API isn’t a perfect experience but it provides a wealth of information in a mostly-consumable fashion. You can make individual requests to get all the information on your favorite Characters, Events, Creators, and even individual story lines. In a matter of minutes, you can retrieve all the information on all the variations of Spider-Man you can think of. Using the library, it really is only a few lines of code.

Unfortunately, you can’t search using the API. Unless you’re willing to iterate through results, you need to come up with exact matches. For example, “Doctor Doom” and “Doctor Doom (Ultimate)” are considered two totally separate characters with separate entries.

So back to our story..

There are really three steps to this problem. First, we need to connect to the service, then get a list of characters, and then figure out which are doctors.

This count statement gives us a total of eight doctors.. but remember that the API considered “Doctor Doom” and “Doctor Doom (Ultimate)” as two different characters. After we actually look at the names, we figure out there are actually only five doctors: Doom, Faustus, Octopus, Spectrum, and Strange.

If Doctor Doom ever comes knocking down your door, I hope this comes in handy. ;)

In the meantime, check out the Marvel API.

Developer Evangelism: The Whole Story

Developer evangelism has been both the best and worst job in my career.

Before I go any further, let me state that I loved working for Twilio. It’s cool technology but more importantly the passion, intelligence, and the ability of the senior leadership and just about everyone else is amazing. I walked in and felt like everything we did sharpened my skills and abilities every step of the way.

I write this post for a couple reasons.. First, I’ve been out of Twilio for a couple months, so I’ve finally organized my thoughts.  Second, and more importantly, a number of people have asked me about becoming an evangelist and what the job is like.

First, what does a Developer Evangelist do?

This will vary from company to company and even as the company grows and matures, but here’s what I did:

  • Attended hackathons, gave demos, and helped people solve problems, Twilio-related or not.. an average of 2-3 hackathons/month for 2.5 years;
  • Update: It’s also worth noting that I co-organized 25-30% of those hackathons;
  • Spoke at an average of 15 conferences per year, usually a 1 hour presentation, sometimes a 3 hour workshop;
  • Wrote  blog posts ranging from technical coverage of clever applications and good API usage to event writeups;
  • For my first year, I ran customer support every Tuesday, then one weekend day/month, then not at all once the Support team grew;
  • Acted as a sherpa to help customers navigate the organization to find the right person to talk to for whatever;
  • Kept an eye out for good employee candidates, made recommendations where appropriate;
  • Tested and reviewed projects, tools, and concepts coming out of the Product team;
  • Introduced and promoted partners when their products/services fit the needs of other partners & customers;
  • Introduced customers to Sales, helped Sales by visiting customers and helping them get started;
  • Made myself available at random coffee shops both in Austin and during travels;
  • Served as the point of contact for numerous community organizations and (inadvertently) a number of F500 customers;
  • Traveled 140 days during 2011;
  • Traveled 120 days during 2012;
  • Traveled 115 days during 2013 (but over 9 months, instead of 12).

Next, let me cover the high points of Developer Evangelism..

The job is like nothing else. In fact, in the right company, it will be exactly what you make it. At Twilio, we reported through Marketing but we interacted with Support, Sales, Product, Recruiting, and just about every other group in the organization. My personal passion was helping people get started, figure out where Twilio made sense for them, and getting their first project online. But on any given day, if I was tired of doing X, there was plenty of Y and Z to do also. Unfortunately, at other companies, the evangelists may report through Sales which likely means quotas. Or through Product which means installs or downloads are probable goals. Regardless, measurement is good, but it has to be the right measurements and things you can actually influence.

The opportunity is like nothing else. Finding smart people doing cool things was my job. I got to meet, hang out with, help, and work with some of the best and brightest across North America. There are people literally saving lives with Twilio and that’s only the tip of the iceberg. When you can go to sleep at night knowing the world is changing in a positive way due to your work.. amazing.

The community is like nothing else. I don’t just mean the individual tech communities as those are awesome too. I mean the growing network of evangelists. No one gets the job without being smart, passionate, friendly, and being well-connected. When you get to hang out with this crew, you learn about some of the best and brightest out there and get to play with the best technology, concepts, etc.

Now, let’s cover the dark side..

First, the job is prone to burnout. I was the first evangelist to make it past the 12 month mark and I’d wager I really only made it to 18 months before burnout started to set in and 24 months before it fully reared its ugly head. Now before you think Twilio is exceptional in that way, know that it’s a common situation across many companies. I know of one company where evangelists consistently leave at 18 months.

Next, the job wreaks havoc on your personal life. If you’re single with no kids, no pets, no mortgage, no blah, blah, blah, the flexibility is awesome. You can be in a different city every single weekend and never come to your “home” city. I know of at least two evangelists who gave up their apartments for just that reason. But if you do have any of those personal commitments, it’s another story.. being in a different city every weekend can be a curse. You always have to make arrangements, make apologies, and figure out how to juggle.

The killer for me was when TripIt started reminding me of upcoming “visits” to Austin between actual trips.. for the record, I live there.

Finally, you are never off the clock. This is the big one.. and I can think of one friend and colleague who was nearly destroyed by it. When you’re at an event, you’re representing the company. When you’re speaking, you’re representing the company. When you tweet, you’re representing the company. Everything you write, say, do, or whatever represents the company. You can use those “doesn’t represent the views” lines all you want but they don’t mean anything.

Think about that.. from the time you wake up until you go to sleep, you’re on the clock.

So there it is. That’s the full story on Developer Evangelism. If you can do it for the right company and team, it is one of the best jobs you can ever have. At the same time, it’s challenging, exhausting, and ripe for getting yourself in trouble.

If you have any specific questions, feel free to drop me a note: keith@caseysoftware.com

The Benefits of Sticking to It

Today a client of mine emailed me with great news. He is starting to see results from the last 6 months of his marketing efforts. For instance, his sales pipeline is heating up thanks to an educational letter and follow up campaign we worked on—including 2 recently closed deals. He just spoke at an association that serves his target market and landed a client and a lead that way. Plus he is actively getting referrals from his existing customers, which now number about 70.

But 4-5 months ago, things didn’t look so rosey. It is only thanks to a consistent, focused commitment to marketing that he has achieved these results.

While you can see instant results by marketing, it takes time and persistence to build momentum.

Hopefully you have a plan and are sticking to it. Don’t get frustrated. Results come to those who persist.

Some positive thinking guru used to tell the story of a bunch of gold diggers who dug a big hole looking for gold and eventually gave up. Then someone else claimed the land and found a huge supply of gold after digging only one foot more. Keep digging!

Hodgepodge of Lessons Learned from a Busy Week

Well, I’m as swamped as I’ve been in a long time, thanks to a business trip to Illinois to work with a University on commercializing a beautiful market maker website and technology for agricultural users. This was a great trip, and here’s a mish mash of lessons:

1. Universities are an untapped market. Many of you who live near universities should consider stopping by some departments to discuss potential projects for outreach to constituents. In two days, this particular university department (agricultural extension) received requests to create a bunch of sites that will become the “go to” sites for a variety of natural resources and recreational research. They can’t do any of this on their own, and need people with good ideas to help create commercialization (e.g. advertising and premium membership) models.

2. Part of the trip involved pitching to a local venture capitalist. I helped develop the business plan and pitch. If you have yet to pitch to a VC or investor, make it part of your goals. It’s fun, exciting, and you get great feedback (or brutal feedback). In this case, the VC thought he knew what we were pitching, but didn’t. Our mistake was going off script instead of sticking with our key themes and “story.” But we also learned that this particular VC has a different mission than our particular venture, and so the fit is not there.

3. During the trip, 2 other prospective clients reached out to me, adding over $50K to my pipeline. When you visit a large organization, try to get visible while you are there walking the halls. In this case, my client sponsor helped me get visible and was very helpful in this regard.

4. Don’t underestimate your value. Sometimes I take what I do for granted, like helping people get organized and move forward to grow a business. But the client found this enormously valuable, and helped me think more about the value I bring, so I can describe it to others. Nothing beats having your own clients tell you how to describe your value to others.

5. During business trips, find time to do other work so you aren’t overwhelmed when you return, as I am now. I just hung out at my hotel room, when I could have done a better job catching up.

Okay, back to work…..