Commentary & Analysis
The Custom Print Software Project
When you need a custom software solution, think about assembling a puzzle rather than building from scratch. The software landscape is full of integrate-able pieces that can give you ‘expected’ functionality so you can focus your custom development on what makes you ‘unique’.
By Jennifer Matt
Published: May 27, 2015
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.