If you’ve read anything on the Print Software Section, you know Jane Mugford and I are passionate about printers getting the most out of their print software investments. When we assess the technology needs of printers, we almost always guide them towards a commercial product that meets their needs and is manageable and supportable by their staff. Self-sufficiency is critical to any successful print software investment. You may need help with implementation but you should be able to handle the day-to-day management of the print software solution with your internal staff moving forward.
Many printers come to us with visions of “building a custom solution.” Here is my list of questions for anyone with this dream:
- Do you have the dedicated staff to build, manage, and maintain software forever?
- Are you making this decision based on one development guy in your current organization (single point of failure)?
- Do you have the stomach to accept that custom software projects never end?
- Are you planning to build something that you can’t buy in the marketplace? (Please don’t build a shopping cart, a composition engine, anything to do with an accounting package, a new print estimating system). All of these things are expected functionality (how you bring them to market could be a total differentiator but none of them are going to win you new customers).
- Do you realize that successful software companies make money because they build once and sell over and over? When you build software that is just for your company, you build once and use once (no leverage).
- Are you sure there isn’t anything on the market you could buy?
If you’ve determined after thinking through the above six questions that you do in fact still need to build a custom software solution, then don’t build from scratch, assemble a strategic puzzle with pieces of existing software and then custom code only what makes you different. We don’t do custom software projects anymore – we only build puzzles (the assembly and integration of core components to make a ‘custom’ solution).
Custom software, for companies who want control, differentiation, and are willing to make a platform decision (rather than an application decision), should assemble puzzles that create the market differentiating solution. Software doesn’t fit together as easily as a puzzle, the more software pieces in your puzzle, the more complex the solution is. For projects like this I really like to have a software architect on the project. This is not someone who learned how to write code a couple months ago. A software architect can think through technical topics deeper than you and I can because their brain works that way and they have done complex projects before and made all the dumb mistakes already. I like software architects who have shipped at least one commercial software product because that is very different than only doing internal software projects.
You need someone to hold the business vision and you need someone who can understand that business vision and translate it into a technical vision. You don’t have to hire a software architect; you should really rent their time just like you would a building architect. Have them draw up the plans that your technical people execute on.
For example, we worked with a global print management company who needed to operate in forty countries down to the local accounting laws – right out the gate. This is a huge requirement, and this huge requirement is expected functionality. If you want to do business in Argentina you don’t have any choice but to support their payment methods, their accounting rules, and their local tax structures. You would be completely nuts to even think about building this – you would be awful at it, it would take you a really long time, and you would spend boatloads of money. Pretty obvious decision here but it’s a decision I had to talk the IT folks at the customer into. We recommended a global ERP solution that already worked in all the countries, integrated it with a global e-commerce system, and then integrated a couple print composition engines to “enable the print specific features of versioning and personalization.” The custom code portion of the project could focus on what made this customer unique in the marketplace. They bought all the expected functionality which will continue to evolve (vital for anything to do with accounting or e-commerce systems which are constantly changing). Buy the expected functionality, custom build only what makes you unique!
Here’s a less expensive example. A regional company in the photo space wanted to get into photo products online as well as support their traditional photo prints business. We helped them select an open source e-commerce platform (open source is free and you get access to the source code) and then we integrated a photo-book builder into the solution. They now have a very feature rich e-commerce platform that keeps evolving with the open source community and a very powerful photobook builder that keeps evolving with the commercial company. They have invested in a platform on which they can continue to launch new products and services which is 100% under their control.
If you take one thing away from this article, it is “buy expected functionality, build what makes you unique” often this equates to buying a commercial software package and then simply extending it to fit your unique needs. Make sure your needs are in fact unique. Many printers spend a ton of money customization commercial software simply because they want the software to support their way of working. Changing processes might seem hard but changing software is always more expensive. Think through the challenges you are trying to solve rather than getting too attached to the “how its’ solved”.
Custom software isn’t for everyone, but when executed properly it can provide a very flexible platform on which businesses can grow for some time. Choose the right components, have an architect provide the vision, integrate with scale, redundancy, and fail-over in mind, and finally keep your business vision and your technical vision in sync through regular in-depth discussions directly between business leaders, product managers, and software architects.
Discussion
By Chris Reisz-Hanson on May 28, 2015
Jen these are good thoughts. Low code custom dev can allow you to go after business opportunity that would be out of reach with turnkey software.
Often the things that make you jump off to custom software are things that are peculiar about your company. All of us gravitate towards keeping everything running smoothly rather than causing change.
Looking at the reasons why you need to make custom with a critical eye can often lead to classifying them into beautiful flowers that need to be tended and ugly warts that you should get frozen off by the dermatologist.
It can bring clarity if someone, internally or externally, sort the reasons for going custom into one of those two bins before venturing off and increasing your technical debt!
By Jennifer Matt on May 28, 2015
Chris,
I find that most organizations, especially ones that have long-term employees have a hard time getting the proper perspective on what makes them unique. People generally think they are unique because they don't have any other perspective. I think all printers are unique in the "how" they solve the challenges of selling, marketing, and producing custom manufactured printed products. The challenges are very similar, the commercial solutions are very similar but the variety in the "HOW" each printer addresses the challenges never ceases to amaze me.
If you can back up and focus on the challenge you're facing rather than being attached to how exactly it is solved, you will set yourself up to get a better ROI from the software you buy and improve your efficiency in the software you build.
Jen