Other than a common parent company, what do you think the Audi TT (2-door compact sports car) has in common with the Volkswagen Atlas (7-seater SUV)? Believe it or not, they are both based on a common platform, the VW Group MQB Platform.
Platform and component sharing has been used in the auto industry to improve quality and lower costs, going all the way back to the 60s. Back in the 80s, if you owned a Saab 9000 (I did!) you were, to some extent, driving a Lancia Thema or an Alfa Romeo 164. Although those cars did bear somewhat of a resemblance to one another, these days platform sharing is a lot more sophisticated. Hence the under-the-skin commonality between the Atlas and the Audi.
The car industry, of course, is even older than Lotus Notes, arguably starting in earnest in 1913 with the first mass produced car on a moving assembly line, the Ford Model T. So that industry has had a lot longer to develop and perfect systems to improve quality and reduce cost: VW's MQB platform was introduced in 2012 - almost 100 years after the Model T started trundling off the production line. Lotus Notes may be long in the tooth, but it's not that old.
If IBM Notes/Domino - and indeed the whole of the software industry - was a bit older and wiser, perhaps software developers might be more adept at finding ways to use standardization as a way to improve quality and reduce costs. The idea of componentization in software has been around since the late 60s, but somehow there's still a lot of copy and paste programming, especially in Notes, which doesn't natively provide much support for building libraries of reusable code elements.
That's what inspired us to build Teamstudio Design Manager. Design Manager lets you build libraries of reusable design elements - forms, views, script libraries, etc. that can be dragged and dropped into a database design, maintaining inheritance from the source template. So you can start to build up a set of reusable components that can be shared with other members of the team. Or if, as seems more common these days, you are the team, you can use your library of reusable elements in multiple database designs that you maintain. While we're not creating true software objects within a Notes database design, we do encourage developers to think about standardizing and reusing code elements and give them the tools to build and maintain applications that use them.
So, if at some point you find a bug in your code (as if!) you only have to fix it in one place. If you have design standards for the way a form should look, you can build a library of subforms that conform to those standards. Bonus: Design Manager knows about dependencies. So, when you drag and drop a design element into a database design, all its dependent elements come along for the ride.
So while Notes/Domino development may not be quite as sophisticated as architecting a family of related (but quite different) automobiles, at least Notes developers can start to gain some of the same benefits by building a library of reusable design elements.
If you're maintaining one or more IBM/Lotus Notes/Domino applications and you could see some benefit in code reuse, click below to start a conversation. We're always happy to chat!