Category Archives: Business

SDLC Acceleration Summit

As I’m sure you’ve heard by now, several software companies including Parasoft are sponsoring an SDLC Acceleration Summit in San Francisco on May 13th, 2014. It’s a great place to go if you would like to figure out how to produce better software more quickly. There are sessions ranging from tools to processes to infrastructure and security. Not to mention a great selection of top-notch speakers.

And if you’re a Code Curmudgeon fan, you can get a 50% discount. All you have to do is go to the registration page and put CodeCurmudgeonVIP in the box for promotion code.

For more about it, watch the video below. Hope to see you there.

The “Apples to Apples” Mistake

Apples to Apples or Bananas?
I’ve read plenty of extensive blog posts about how to evaluate development tools, but I want to take a quick moment to attack a common fallacy in the approach to tool evaluation.  Namely, when presented with a wide variety of very different options, some people get lazy and reduce the problem to “apples to apples.”

Superficially, this seems bright.  It’s a big problem, and there’s only so much time, so let’s reduce the problem to something manageable.  Yeah, well, “apples to apples” is the wrong method of reduction.  What you are really doing in this case is saying “let’s spend our time and effort pretending that things are not nearly as complex as they actually are.”  Presented with a smartphone, a tablet, and a calculator, who in their right mind would only compare the calculator functionality across all three to determine the winner?  Apples to apples, right?  This would be comical if it was not true of the evaluation processes some organizations use for static analysis tools.  Especially in safety-critical industries, it crosses a line from carelessness into reckless endangerment.

Instead, let me propose a different reduction of your evaluation problem that will save you from arguing over which product chose the best font for the number “2.”  Stop evaluating features and start evaluating solutions.  State your problem in such a way that it allows (or even forces) creativity on the part of the vendor to get to the end goal.  (Do you really care about false positive rates of 7% versus 9%?  What if the 7% false tool takes 1 hour per task to resolve whereas the 9% false tool takes 5 minutes per task?)  When you take a step back from the marketing and focus on the reason you want a tool — reduce risks, reduce costs, secure revenue, improve productivity, maximize customer satisfaction — you can spot the slippery metrics about product capability and refocus on your driving needs.  You are in a better position to capitalize on unexpected opportunities.  You can even remember that this is for the long haul, so you would rather work with a company that cares about your success and will challenge you to make the right decisions.

[editors note: there is a good article about this as it specifically applies to static analysis tools on the Parasoft blog.]

Padding your work – the iPad in the office

iPad © by Yagan Kiely
I recently added an iPad to my technology arsenal. I’ve been using a MacBook Air for several years now and I really like the size & weight, but compared to the iPad it’s enormous and has a short battery life. I get a lot of use out of my iPhone, so I know what the iPad can do. Some continue to insist the iPad is just a toy.

For me, the big question mark is the keyboard. If I’m carrying an iPad and a notebook while traveling, it seems a bit ridiculous. If I carry an iPad and a keyboard, isn’t that just a notebook? Is there any real advantage to such a thing? Well I decided to give it a try and see what happens.

I travel a lot, so based on things like email, eBooks, and in-flight entertainment the iPad was a no-brainer, it can do them all very well. But I was wondering how useful I can actually make it in a software company.

If you’re going to try to use the iPad as a replacement device, there are a few categories of apps you’re going to be interested. I’ve broken out a few of these categories and selected some basic apps to see how well they will work. I’ll go into more detail on each after I’ve got some real use.

I checked out a list of 30 Business Apps and while it has some interesting ideas, it didn’t cover some specific software development needs. I’m purposely ignoring the entertainment category such as music, video and games, as it’s well covered in many other places.

Office Tools

I bought a couple of office suites for comparison purposes. I know, this sounds crazy, but it’s still less than the price for Microsoft Office on a desktop. My basic needs are typical word-processing, simple spreadsheet, and presentations. I also have some apps for note-taking and planning.

I happen to be a fan of the Mac office suite with Numbers, Pages, and Keynote. Especially Keynote is a great improvement over PowerPoint. So I bought each of those apps. I had already purchased a Keynote remote app for my iPhone that I haven’t had the chance to tryout yet.

However, our office and clients remain largely Microsoft (MSFT) based, so I bought the QuickOffice apps as well. After initially giving it a pass, I decided to get DocsToGo as well. There are one or two other major office suites for the iPad as well, I may try them at some point, but probably only if I’m missing something. I’ll be shaking them all down as much as I can in the coming weeks and I’ll give the long and short of it here.

There are a few other tools I use frequently in the office, such as a voice recorder to take dictation for creating presentations, training materials, whitepapers, articles, etc. At the moment this is centered heavily around the built-in memo recorder on the iPhone, and possibly Siri will help but I don’t know yet. I’ve also got Dragon Dictation but mostly it’s something I record and then later work from manually. I’ve got a few other audio recording apps as well. I’ll give a full shakedown in the near future.

Another useful office tool is having some kind of scanner software based on using the camera in the iPad. OCR on top of that is really the icing on the cake. I’ve got a couple of these installed, at the moment GeniusScan and JotNot Pro. I’ll see if I can figure out which is best.

For note taking I’ve frequently used simple text editors or a blank page in the word processor. While both work, neither is well-suited to the task. Ideally I should be able to type, write with my finger or stylus, and draw simple things to help illustrate the topic at hand. I should be able to save, edit, and share the document created. With that in mind, I’ve got a few note-takers installed like PenUltimate, but the noe I have high hopes for is Note Taker HD.

I’ve also got an app that lets me try to study/plan/organize based on putting 3×5 cards on a cork-board. It looks really great, but I’m not yet convinced it’s actually useful or sustainable.

Travel Tools

This is a category that some office users won’t need. If you’re an iPad in the office and at home kind of person, you can probably skip this set. My initial set includes the apps for the airlines I use, just in case I need them. I also have the TSA app for airport information. The bulk of my travel information comes from TripIt which I have found very useful on the iPhone.

I also take a GPS on the road with me via my iPhone, so I haven’t listed it as a necessary item for the iPad, even though the bigger screen makes for easy mapping.

File transfer

I also already have some file sharing apps to transfer files on and off my device. Mostly I use iDisk since I have MobileMe but long-term I will be doing something else. I’ve installed since they have the free 50GB offer running right now. I may get a small DropBox for comparison with that. And my Latest favorite in this area is FileBrowser which let’s me do normal file system browsing on remote computers, such as my desktop.

I’ve got a few others as well, some of which have already been deleted for lack of usefulness.

Development tools

For software development I have a decent Bugzilla client called iBzilla, and nice SVN source control client called CodeViewer 2, and I bought a few code editors I will be trying out, including Textastic, Koder, and of course what computer is complete without VI?


One could argue that database is part of the development tools category, but I think it’s big enough to warrant separate treatment. I do a lot of database work, so again I already had iPhone apps for connection to various DBs such as Oracle and MySQL. I updated them to iPad versions. Mostly I use Navicat. I’ll discuss this in a separate post, but if anyone has suggestions for good DB apps I’d be happy to check them out.

I also have Bento for quick and dirty db stuff, but I currently don’t use it much. If I find a way to leverage it for work I’ll let you know.

Social / Web stuff

For social and web stuff I have the usual suspects, Twitter, WordPress, Polldaddy, LinkedIn, GoToMeeting, WebEx, Instant messengers, etc. This covers blogging, posting info, messaging, as well as video conferencing.

Geek stuff (SysAdmin)

And I had the usual array of geek utilities like DNS tools such as nslookup, VNC for remote login, and a terminal client that includes SSH support. There is some overlap between these so I’ll try to narrow it down to what you actually need with what’s good and bad about each.

Other iPad stuff

There are a few other things that are interesting. For example, I am making more use of the Kindle application now for books. I do have a Kindle and there are times I prefer it, but that’s normally for when I am not carrying the iPad.

I find the Kindle device great for reading, but the larger iPad better for reference books. One other benefit is that most technical manuals are much cheaper on Kindle than in print, and it’s very convenient to have them with you when you need them.

I’m going to assume that at least conceptually all of the ideas here are equally useful for other tablets. This will depend of course on having the apps you need available on the platform of your choice.

I could certainly borrow a tablet from a friend and do a similar experiment, but it’s something that takes time to do in depth, so we’ll see. If any of you are interested in a similar idea, let’s talk.

Updates on real world experience will be coming in the near future as I shake down each category.

Remembering a friend and luminary

Adam Kolawa (1957 - 2011)

Earlier this year my longtime friend/boss/partner/hunting buddy Adam Kolawa died. We worked together since 1992, before the internet went commercial. Over the last nearly twenty years I learned a lot from Adam about software and testing as well as other things.

Adam had a strong vision about what could be done with software. He was a very logical technical person and believed that the way software is created can be improved greatly. I remember learning this early on. I started at Parasoft doing database work and tech support. We had this really cool parallel processing software called Express. With it you could run software on a heterogeneous network of machines, say an IBM machine running AIX alongside a Sun machine running SunOS, and even add in a Digital machine running Ultrix. Needless to say the setup of such software could be complicated.

At one point I realized that many of the same questions were coming to us over and over again, so I put together one of those funny FAQ things that you saw with open-source software. I carefully listed the basic installation and configuration problems that might occur with steps to handle them. I was so proud of myself and showed it to Adam. His response was true to his nature. He said “Great, now make it go away.” While he was a strong proponent of good documentation (PhD’s are like that…) he felt like such information should be unnecessary. So he guided me to go and fix the software so that as many of the problems from the list as possible would be handled directly in the software.

This principle guided all the innovations to come from Parasoft since that time. Parallel processing technology morphed into memory tracking and bug-finding, always on the quest to create better software, more quickly, with less effort.

Along the way Adam wrote numerous papers, articles, and even a few books. The most notable are Automated Defect Prevention: Best Practices in Software Management and The Next Leap in Productivity. The former should be required reading for anyone trying to run a software development organization. The latter is an eye-opening look into not only improving IT but turning it into an asset rather than a cost-center.

Adam was instrumental in nearly all the patents generated at Parasoft. He had a very out-of-the box way of looking at problems and coming up with new unique solutions. I always attributed this at least in part to his physics background – why shouldn’t a man comfortable with giving the weight of the universe feel like he can generate test cases automatically by having a parser read some source code?

I mention all this partially because it’s cathartic for me, but also because STP – Software Test Professionals is currently having an open vote on the Test Luminary of the Year. Take a chance, go read Adam’s bio, and if you think like I do that he made a lasting impact on the software industry, then why not vote for him? It’s a fitting legacy for a man who dedicated his adult life to the improvement of the software development process.