Have you ever wished for a feature in your design tools, maybe even requested it from your EDA vendor, but never seem to get what you want? I hear that a lot from my customers, and I doubt I’m alone. Sometimes the requests are good ideas that everyone can use, and they make the development list. Sometimes the requests facilitate a custom flow or procedure that just isn’t appropriate for a shrink-wrapped product. Regardless of how the request is categorized, it always seems to take longer to implement than the customer would like, mainly because they’d really like it right now.
Contrast this situation with your iPhone, iPad, or Droid phone. Need some new functionality? Chances are someone has already thought about it and created an app for it. I am amazed at the abundance of apps out there for smartphones and pads. Need a scientific calculator app? It’s there. How about an alarm clock, a gas mileage manager, voice recorder, book reader, or even the Angry Birds game? They’re all available.
Wouldn’t it be nice if you could get those apps in your design tool? OK, maybe not, but I would bet you can think of a lot of more germane nice-to-haves. I had one customer ask for a feature to synchronize test point placement between their PCB and schematic. Another said it was too difficult to find specific parts or values in their library of designs, and couldn’t we make that easier? Yet another wanted to automatically add various visual cues relating to production status to their schematic. There’s a never-ending stream of wants and desires out there. Sounds like the perfect scenario for a healthy dose of apps.
As PCD&F reported earlier this year, Cadence got things started by adding an app store to its OrCAD Capture frontend tool. Remember those customer requests I just mentioned? We implemented them for the customer, and then made them more generic for the general population and released them as apps. Apparently this isn’t unique to us, as other VARs are doing the same thing, helping us to create the first app store for the PCB design community.
We showed the apps and the store at the recent PCB West trade show, and found that users were thrilled to see that they had a new way to get more capabilities that they need, and that they could pick and choose which ones to get. As excited as I am to get this kind of response, I was probably more excited to hear other users saying they had some ideas and wanted to know how they could create their own apps. Imagine that: PCB tool users creating solutions to solve their own problems and then adding them to the pool of apps available to everyone.
This is similar to the concept of open source in that the user community has the ability to continually improve the tools they use. However, with apps, the added capabilities plug into the tool rather than modifying its base, so these new features become available the moment they are finished, rather than at the next release of the base tool. Another difference is that apps are based on scripting languages that are simpler to learn and use than C++ or many of the other programming languages used to create PCB tools. The developer has access to the database, command structure, and menu structure, making it relatively easy to implement features. Finally, problematic apps don’t ruin the whole tool; they can simply be removed.
That brings up a vital part of an app community: separating the good apps from the bad. Anyone actively downloading apps on their handheld devices knows that there are a lot of duds out there. Some just plain don’t work as advertised. We’ve built in quality assurance measures to minimize this problem, but the truth is there will still be imperfect apps. The key to this problem is the familiar rating system. Users of the apps get to rate the apps. Good apps get good ratings, and bad apps get left behind. It can be harsh, but it’s necessary to let this Darwinian approach to apps weed out the undesirable ones.
Another nice use of apps is to integrate existing tools with the schematic or PCB editing tool. We’ve come to expect the ability to launch another tool from the same vendor, but wouldn’t it be nice to build bridges between different vendors’ tools, especially if that bridge includes built-in knowledge of design? Similarly, a company with internal tools can create a more effective flow by tying the tools together. These apps can plug in to different versions of the PCB tools and can be shared between different design teams or the community at large.
I can see the user community adding some real vibrancy to our industry. It’s not too hard to imagine many apps available, because we’ve seen this with smartphones and pads, but I can also see a pool of developers looking for good ideas to implement. Some in the community will implement what they need with the scripting language, but others will take their wants and desires to an app developer for much quicker results, conforming to their specific needs. In fact, I’ll sign up to host the first app developer request line. Send me your wants and desires, and we’ll get to work building an abundance of PCB design apps.
Manny Marcano is president and CEO of EMA Design Automation (ema-eda.com); This email address is being protected from spambots. You need JavaScript enabled to view it.. His column runs regularly.