How to Know What You’re Looking at in Fenestration Configuration Software
As we near the final stretch of our race to choose the best software for our business, it’s time to delve into some of the more complex, technical aspects of fenestration configuration software. So far, we’ve covered topics including how to evaluate the software vendor and the services they offer, as well as how to determine the viability of their available suite of products, so let us take a look into software design considerations today.
Today, our mission is to look at the technology our machine is built on – and for most business leaders looking to select fenestration software, at best you’re in the same position I found myself in at Keystone Raceway Park, with the family’s ’72 Chevy Nova, as I explained in this series’ introduction:
… if you asked me which dragster or stock-modified or late model would perform well on the track and why I wouldn’t be able to tell you.… I don’t know how to custom-build a vehicle and engine that can win.
Consider the history of the automobile; you know that we started out with steam-driven “horseless carriages” and then evolved to the internal combustion engine, design improvements in carburetors, valve trains and camshafts, cylinder size and displacement, turbo- and superchargers, as well as advancements in suspension and transmissions, ABS, 4- and all-wheel drive, traction control, automatic braking, supplemental restraint systems … we could go on and on.
Just like automotive technology has evolved over time, so has software, how it is built, and the hardware it runs on. Software evolution is much more than just moving from one programming language to another; new languages enable solving problems in new ways, with new design patterns and syntax that are more fit to solve specific kinds of problems.
Beyond that, modern software architecture and technologies can solve problems that older software could not – especially in terms of stability, scalability, availability, and ease of maintaining, customizing, and integrating between software products specialized for unique problem domains. Hardware has evolved from single CPUs to multi-core processors; storage from magnetic tape to spinning disks to ultra-quick solid-state drives; displays from 16-color CRT monitors to Ultra HD and 48-bit color depth capable of producing more than 280 trillion different colors.
But how does this all translate to what you need in a Fenestration software package?
- If you’re a glass shop with a high volume of small orders, does photorealistic rendering do anything to help your CSR’s burn through a daily pile of fifty orders and a hundred quote requests?
- If you’re a large manufacturer with multiple geographic sites, is it feasible to produce a consistent, quality product if each site has its own standalone database and multiple desktop instances?
- Would you benefit from a centralized database and a server-side application that handles the heavy lifting, while a lightweight app or website handles the user interface and interaction?
While you may feel, as a “backyard fenestration software mechanic”, that you don’t have enough tech-savvy to understand all the “guts” of a configuration software offering, don’t underestimate your ability to grasp the core functions you need your software to perform. You can still ask good questions based on what you do understand about technology. While our following discussion may touch on things you’re not familiar with, my hope is that this article will prime you both for additional learning and for finding the right people to help make the best technology decisions for your business.
It All Comes Down to Data
Ultimately, what any configuration software must do to enable you to cost, price, and produce your products accurately and efficiency, is store data. Asking data storage questions is especially important if you foresee a time where your own business’ functions need to audit, report on, or analyze data that is stored and produced by your fenestration configuration system.
- How is data stored? In text, XML, or JSON files? Binary files? In database tables? If so, in what kind of database (e.g. Oracle, MySQL, DB2, SQL Server …)?
- Do you want to have the ability to create analytics on product types, customers, or market segments? This will be difficult to do effectively if the software uses a basic filesystem to store data, rather than a relational database.
- Is the data available in a human-readable format, or is it proprietary? Can you write a simple SQL statement to select the data, or would you need to spend additional effort and performance hits on decompressing data from a binary field, and then query the actual data you need using XPath, RegEx, or some other search method? Or is the compressed data in a “black box”, and only the software provider knows how to extract it into human-usable form?
- What about structure? Is data normalized or more “flattened”? Are objects such as tables, columns, procedures, etc. named consistently, with clear naming conventions and explanatory titles? Is everything named in a single language, or, for example, is it a mixture of different languages, with no rhyme or reason as to why one thing is named in Spanish, and another thing named in English?
- Are database tables set up with proper foreign keys, indexes, and constraints in the database that enforce integrity? Or does the software rely partly or solely on application controls to ensure data does not become corrupted?
- For that matter, what happens in cases where data is corrupted, or an errant software command attempts an operation that would violate data integrity? Is it prevented by proper database design, or can data corruption happen quite “invisibly”, where it might be days before anyone notices … and then the only recourse is to restore the database from several days or weeks prior, and many hours of work are lost?
As the above discussion makes clear, it is crucial that your fenestration software provides a well-designed platform that gives you the ability to access, manage, and maintain data with ease and dependability.
Technology – Reliant or Reliable?
Now that we’ve addressed the preeminence of data in a fenestration solution, what about the application that uses the data? With ever-evolving software technology, how can we be confident that a fenestration software package will give us the return on investment our businesses need to succeed?
In the first place, it’s quite difficult for the average consumer to predict when a new technology will evolve into a powerhouse that lasts for the long haul, or end up as a mere fad, consigned to the “file 13” of promising-but-ultimately-vacuous ideas. The software space is notorious for coming up with solutions that demand problems, and there’s no shortage of esoteric vocabulary that sounds impressive, but in reality, obfuscates the very things we need to understand in order to mitigate the risk of a technology investment:
- Should I be concerned whether my application is coded in C, C++, C#, or Objective-C? DOS or Delphi? F#? BASIC? VBA? NET? Swift?
- NET or Node.js? Silverlight vs. HTML5? MVC, MVP, or MVVM? N-tier, Client-Server or P2P?
- What if my Python speaks with a LISP, or Ruby goes off the Rails?
While particular technology options can make a difference in the long-term viability of a software application, the essence we’re after is a quality product that lasts for the long haul. We’re looking for something dependable and reliable that we can afford.
But often, the choice between affordable vs. reliable is mutually exclusive.
If you’re a child of the 1980s, like me, you’ve lived through a decade where American automobile manufacturers had to do some soul-searching to survive bankruptcy and still compete with the expanding presence of high-quality, competitively priced foreign automobiles in the U.S. market. Chrysler’s answer to this was the “K” car – a basic platform upon which several different brands & models could be built. My parents’ first car purchase in the ’80s was a brand-new white Plymouth Reliant K station wagon with a red interior, and while it was indeed affordable, the “Reliant” name was deceiving. Mom and my sister and I were on a road trip from Cleveland to New Jersey to see some friends, and we ended up getting stuck in a highway construction zone with the car continually stalling, barely restarting, and nowhere to pull off. It took forever to get to an available shoulder, and then we were stuck with no way to call for help (at the time, car phones were almost as expensive as our car!).
Murphy will often take advantage of poor quality at the most inopportune times, eager to enforce his Law. You don’t want to be stuck on the side of the road with a software package that can’t get you to your destination. Quality and reliability come at a price – and it’s up to you to decide how to balance your investment in software vs. your business objectives.
It’s What’s Under the Hood that Counts
If you’re the software version of the backyard mechanic, you’ll need to rely on race-mechanic-level IT professionals who understand the nitty-gritty of software if you want to make the selection that’s right for your business. “IT race mechanics” know how to build, maintain, and tweak a winner. They’re well-equipped to dig into a vendor’s software offering and evaluate its architecture, technologies, scalability, and quality of design. Make sure you get them talking with your potential fenestration software vendor’s technical gurus as soon as you are serious about making your choice.
Collaboration with your IT team should begin even before these technical deep-dives. As we’ve discussed in our article on Product Offerings, determining a clear set of requirements is essential. Lean on your IT professionals to define their own ideal requirements upfront, and produce the criteria to evaluate vendor software, apples-to-apples (or PC’s-to-PC’s!). These criteria may include:
- Is the product a hardware hog, requiring dedicated physical servers and storage, or can it perform more than adequately in a virtualized environment?
- Is the software Operating System-dependent? Does it require Microsoft Windows, or can it work equally well on Apple’s iOS or on open-source operating systems (e.g. Linux), in order to work? What OS is your IT staff most knowledgeable of?
- Does the software require a full-OS server, or can it be deployed to a container?
- Is the software modular – does it offer, for example, an “app” that can be deployed to a mobile device, or a web browser front-end, while running the core software on a server? Can the mobile software be used asynchronously, or does it require an active internet connection?
- Is the software scalable? Is its architecture properly designed and reliable enough to support current use and future growth? Can it handle a large number of concurrent users? Does it queue requests and commands in proper sequence, while optimizing for efficiency?
- Does the software have an adequate API to allow for customization? Does it come with its own end-user scripting/macro IDE, or does it require that you obtain and/or purchase an external IDE with compiling capability if you want to provide unique-to-your-business features?
- Does the API support automating regular tasks or workflows? Can the API be used to emulate actual users, automating usage from start to finish, to support high-efficiency regression testing?
- Does the software have a “debug mode” with logging capability, or provide other traceability features that enable detailed root-cause investigation?
- Does the software architecture support seamless deployment from one environment to another – e.g. Development-to- UAT, UAT-to-Production? Can this be done without affecting existing quote and/or order data already on the destination system? Can deployment be selective, or is it all-or-nothing?
There’s No Substitute for Expertise
As we can see, evaluating software properly requires deep knowledge, experience, and skill – not just the ability to speak in technical jargon. More specifically, it requires a fanatical devotion to good practice in software architecture, programming, and database design.
As we’ve discussed previously in our article on Company and Services, the expertise of the company providing the software matters. But sometimes it’s hard to tease out what’s expertise versus what’s just cutting-edge technobabble that presents a product as the best thing since sliced bread. Sliced bread may not be new or sexy, but you can count on it to make decent sandwiches time and time again.
There’s something to be said for fenestration software that first came to market decades ago, long before newer and shinier technologies. Remember: K-cars were once new and shiny – but even right off the factory floor, they couldn’t match the Mopar muscle of the ’60s and ’70s. If your shortlist was a brand-new 1982 Dodge Aries K sedan vs. a 1970 Plymouth Duster 340, guess which one your race mechanics would recommend? Don’t be tempted to dismiss software just because it’s been around for a long time and may not employ the latest and greatest technologies; newer is not necessarily better.
But what if you don’t have a robust IT organization in your business? Do you just “wing it” and do the best you can? Possibly – but consider whether professional IT consulting services could contribute effectively to your software evaluation team. Not all IT consultants are equal, so look for consultants who have the experience that’s relevant to our industry, including, but not limited to:
- Custom Manufacturing, especially with companies who manufacture from non-discrete Bills of Material
- Tool & Die Fabrication, Machining, and CNC setup and programming
- Purchasing, Inventory Management, Supply Chain and Logistics
- Construction Management
- Architectural and Mechanical CAD services
- Industrial Engineering
- 5S, Six Sigma, and other Quality management disciplines
In addition, tap into your existing professional network; consider the availability and advice of individuals who work in or have worked in the fenestration industry, especially if their experience has been in the fenestration software space. These individuals may be able to provide expert insight that others cannot, and help you gain confidence in your potential IT consultants’ expertise.
Now that we’ve covered several important considerations for evaluating fenestration configuration software – Company and Services, Product Offerings, and Software Design, are we ready to make the best choice possible for our business?
Not quite yet – our ride’s not over! In our next and final article of the series, we’re going to discuss an overlooked, yet relevant aspect of fenestration configuration software: how congruent is the application’s design with your products and processes, both as you have now, and where you want your business to go? Hang tight!