LATITUDE 40
  • Home
  • About Us
  • Services
  • Resources
    • Blog
    • Case Studies
    • Testimonials
    • What Is Custom Software?
  • Contact

Latitude 40 blog

I have a couple thoughts... CQRS and custom development

5/23/2015

 
When marketing asks me to write “thought leadership” blogs, I generally cringe. I’m a developer at heart and not necessarily a thought leader. I think about ways to use my skills as a technologist and a software developer to create thoughtful and impactful software applications that help businesses grow, evolve, better use processes and so on. Thought leader? Meh.

But then the thought struck me. What if, with all of the applications Latitude 40 has built over the years, I did have some ideas I could impart to the general interweb as it were. I mean, the reason why I got into custom software development – and built a business around it – in the first place, was because I saw and experienced the severe limitations of forcing businesses within an industry to run on the same packaged software and therefore the same processes as well. Businesses need to at least have the option of working on their internal processes as that is one of the best ways to outdo your competition. Now granted, there are some circumstances where packaged applications make complete sense; word processing is one example. But even in that instance, it could be argued that organizations could deploy many open source and custom developed word processing applications that better fit a particular industry or use case.

But I digress…

Here in the Denver area, we have a burgeoning custom software development community and I regularly attend and participate in developer forums and conferences so that I can keep up to date on some of the latest and greatest that’s out there and what my developer colleagues are working on within some of the most well-known brands. One such architecture is Command Query Responsibility Segregation (CQRS). Now for those of you in the business community, you may have no idea what that means – but you can absolutely benefit from it. My developer colleagues will say, “but that’s been around for a while now… what’s so new about that?”

To start, let me give a quick rundown of what CQRS is and then put it into context. The main purpose of CQRS is to assist in building high performance, scalable systems potentially with large amounts of data. The pattern states there should be complete separation between "commands" that perform actions and "queries" that read data. Traditionally, all of these functions are built into a single set of components utilizing a single data store.  CQRS has you build those commands and queries out into completely separate architectures so you never have one side bottlenecking the other.  

So what does this mean to a business person? Well, simply put, this concept is solving traditional software problems in a new way that can help provide higher transactional volume and greater performance with lower infrastructure costs. Let’s take an online merchant as an example. As we know, the customer does many different things when deciding what (and when) to make a purchase. They may browse inventory, put items into their online shopping cart, take other items out, set up multiple shipping addresses and payment methods, etc. These are mainly actions, but the user requires sophisticated pages presenting all the information they need (by querying) to decide how to act. By keeping the queries needed to generate these user-friendly pages segregated, it’s easy to optimize them for ultimate performance without having to fit action requirements into the same models.  As you can probably imagine, all of these “queries” and “commands” put a lot of strain on the system. By segregating these types of actions, not only can the online merchant improve the overall customer experience, they can also optimize the infrastructure for each by adding/removing cloud resources, as needed, for the queries and commands separately as transactional volume increases/decreases.

Another idea which I find fascinating is the strengthening of task-based user interfaces (UI). Let’s go back to the example of the order. A tasked-based UI is more about capturing the “intent” of the user. Those events – changes to shipping addresses, added/dropped shopping cart items and so on – can be recorded and saved in a way that can be analyzed to better understand the customer and their intentions.

These types of analysis certainly sound like business intelligence of old. Does this mean that business intelligence is back? It certainly is but from a more interesting perspective. As we know, BI is an amazing concept and data mining tools are now extremely prolific. In terms of actually implementing it, things have fallen really short or have only been available to the largest of companies because of its complexity and cost. Also, these mining tools are great, but are only as valuable as the data available to mine. By storing all of these events as a historical representation of state, you gain the ability to recreate the entire history of that aforementioned order at will, allowing you to analyze it at every single state it’s ever been in, not just its current state. This gives us the ability to ask questions in the future that we might not even be thinking about asking now. Utilizing these techniques, what was super expensive and difficult just a decade ago is now possible for most businesses of many sizes.

I really enjoy looking at these types of business challenges with technology – custom application development at that. Custom application development is happening now at some of the largest online merchant organizations, one’s that sponsor Thanksgiving Day Parades and others that had their start in selling shoes. The great thing for businesses that may not have a multi-million dollar development budget is that they can take advantage of these types of solutions now as well. What I always tell people who are looking to solve these types of business challenges with technology is to partner with someone who will be your trusted advisor for the long term and someone who can see the bigger picture, rather than a one-off development project. 

I’m interested to hear what you think about where custom software could take businesses and organizations.

Custom developed software - what's the big deal...

9/29/2014

 
Today’s businesses can’t afford to waste time or money buying and implementing software that makes modification to the code nearly impossible when their business needs change. Software is merely one tool that companies can use to optimize business processes, facilitate workflow and provide needed tools. What’s more, it must be the right fit for the business and support innovation that will drive the growth of the company.

So, what’s the answer? Is buying packaged software the best option, or is developing software to exact specifications going to provide the best value?  In other words… what’s the big deal? Well, it can be a very big deal but you have to understand what your business requires and expects from software and what the total cost of ownership (TCO) will be. Only then, can you make the best choice for your needs.

What’s code got to do with it?

Custom software development requires thorough project research, based on strategic needs and a reputable high-end custom development consultant that can help companies navigate the sometimes-treacherous waters of business requirements. Since the chief purpose of custom software is to build as perfect an outcome as required by the customer, it is critical that any consultant chosen works closely with the team to ensure that preferences, requirements and needs are clearly outlined and communicated. The question often becomes, however, “should the custom application be built to fit exact needs, or can off-the-shelf-software get close enough?”

Sometimes, this is an easy decision. Software such as Microsoft Office or Adobe Creative Suite gives 99.9% of businesses the features and functionality they need so building custom software for these needs usually doesn’t make sense. But let’s say you are in a specialized market or the packaged software you’ve found fits some but not all of your needs. Worse yet, you need to customize your off-the-shelf software. That process alone can be very expensive and time-consuming and you still are not assured of getting the features and functionality you want. Here are a few items to consider. If you have to modify your packaged software to fit into your business ecosystem, that will make or break implementation AND the ultimate success of adoption. If the product does not fit your needs, it isn’t a solution. The more you change – the more money you will spend – and the less chance you will have to reap the true rewards that business software provides. With that in mind it may be time to take a hard look at custom developed software solutions.

Declare your independence from packaged software

Why do custom software development projects seem so expensive and have a degree of FUD (fear, uncertainty and doubt) in them? Well, it takes time to understand exactly what the business needs in terms of requirement, processes, working with other divisions and so on. It can be daunting for many companies simply because they really don’t want to pull back the covers of their own infrastructure. In addition, you are paying for exactly what you want and need and therefore, larger up-front costs are invested in design, quality assurance, testing and development. HOWEVER, if you’ve found a reputable and quality-based custom software development consultant that has the expertise needed to get the job done, these activities dramatically reduce the TCO and ensure that it fits your business and IT requirements.

Keep in mind that custom software is not for everyone. If there is an off-the-shelf package that truly meets ALL of your requirements, then it may make sense to invest. However, if a solution is needed that more closely meets your business requirements, can grow and change as the business grows and changes and is flexible, then you would be doing your business a disservice by not considering a custom software solution.

Declaring your independence from packaged software

7/13/2014

 
You should never become dependent on Latitude 40 or any other company and we do everything possible to help you keep that independence. If something were to happen to Latitude 40 or if you ever just decide to go elsewhere, you should be free and able to find someone else to easily adopt and maintain your code.

Intellectual Property

The source code for your custom software applications is written for and belongs to you. Some companies attempt to retain the intellectual property rights to that source code which ends up either binding you to them indefinitely or creating greater unknown costs later when you have to purchase the source code from them at a price that you have to negotiate.

Maintainable Code

Software should be well-designed and documented to allow for anyone – whether they are from Latitude 40 or not – to work on your source code. This is a mark of quality. 

Training

You need to understand your product. This includes all of the functions, options, data requirements, platform requirements, limitations, and so on. We want to keep you involved in the overall process so that you know just as much as we do about the product. We can also produce training documentation that you can refer to and use for training purposes.

Learn more

For too long, you’ve been told what type of software you need for your business. Isn’t it about time someone listened to what you actually want?  

Contact the Latitude 40 team today at [email protected] to schedule a no-obligation consultation.

Know your TCO - or why is ROI out of style

6/19/2014

 
Most packaged software providers will tell businesses that Return on Investment (ROI) is the most important factor and with good reason. Packaged software will, in general, have a higher initial return on investment. They typically have lower initial investment costs (both in the software itself and maintenance).

There is a big however, though; the TCO (Total Cost of Ownership) of package software will often overpower the ROI. Although it is often the case that packaged software has a smaller up-front investment when compared to custom software, the purchase price is only the tip of the iceberg that can grow to expenditures most companies never anticipate nor adequately prepare for. More often than not, they are blindsided by professional service fees for customization or maintenance fees which are not included in the initial purchase price.

Below is just one example of how quickly costs for packaged software can add up.

Packaged Software = 250k up front + 100k per year for maintenance (including professional services time)
(650k / 5 years, 1.15m / 10 years)

Custom Development Solution = 300k billed as development is occurring (six months to one year of development time + deployment) + ~5k per year for maintenance
(325k / 5 years, 350k / 10 years) 


It’s a remarkable difference in the cost alone and one that should cause businesses to consider custom development more often. 

Quality custom software development vs. Packaged applications - what's best for your business? You are in the driver's seat.

1/26/2014

 
Custom vs. packaged applications; building exactly what is needed for the business now and into the future or buying a generic solution and customizing it to fit. Thankfully, you are in the driver’s seat in determining the right solution for your goals. In the meantime, here are some factors to consider…

Custom Software – pros and cons
  • Gives you exactly what you need – Each business has its own set of unique business rules.
  • You own the source code – Owning the source code affords more control over future enhancements. When clients see the value of custom software, they become more sophisticated and quickly find specific ways to improve their particular business work flow.
  • More useful reports – There is no reason to have software unless it can produce the desired output; this is often in the form of reports. Custom software allows for the creation of meaningful reports that are used to make astute business decisions.
  • More efficient in-house help desk – Help desk personnel will be more familiar with the business rules involved and can assist users. They will know about common issues, traps, and work-arounds. What’s more, since the software is developed specifically and tailored for the business and those who work in it, less help desk resources are generally required. COTS tends to be "for the masses"; great for word processing but not so much for a tailored ERP solution.
  • Decision makers are readily available – During the design phase, decision makers are available to make judgment calls. This significantly reduces the time it takes to develop the right solution for the business.
  • Vested users readily accept the software – If the users have had input into the design of the new software, they more readily accept the changes.
  • Money is not wasted on unnecessary features – A side benefit of getting the exact functionality you want in the software is wisely spending your development dollars. Every dollar that is spent goes toward making the best possible product.
  • No major license fees – Annual fees, hardware enhancements, and other "cost of doing business" expenses exist, but find out how much they are and then compare them to the same fees for COTS.
However…
  • Not immediately available - Depending on the number of developers, the scope of the project and other factors, it does take time for the application to be developed. This is greatly reduced by using highly trained and experienced designers and developers who employ good internal design ethics and proven software development practices such as agile processes, test-driven development and so on.
COTS Software – pros and cons
  • Immediately available – Upon purchase, the software is yours. Deploying the software and establishing the user environment is up to you; as is getting it to do exactly what you want.
  • Technical support – Technical support is sometimes free; sometimes it’s pay-by-incident. Hopefully, the COTS personnel know their package and can relate to your specific issues.
However…
  • Little extensibility – The software may or may not be able to implement the features you desire. However, some COTS packages allow for some extensibility via a user scripting tool or via a report writer that enables the user to develop their own custom reports.
  • Usually "work-arounds" are required – There may also be additional expenses to implement required "work-arounds" to handle specific needs for your particular business; even then, you might not get the result you desire.
  • At the mercy of the manufacturer – You have no control as to when updates, bug fixes and new features will be available or even if they will ever be available. Worse yet, the vendor could be acquired or go out of business; leaving many COTS implementations to whither on the vine.
  • Non-Vested users can become frustrated – Users have no vested interest in "canned" software and there is a psychological component when installing new software.
  • Potentially major license fees – Some vendors charge annual license and/or subscription renewal fees.
Custom software is not for everyone. If there is a packaged application that truly meets ALL the requirements of the business, then it may makes sense to make the investment. However, if a solution is needed that more closely meets your business requirements, can grow and change as the business grows and changes, implements rules for specific business processes and workflow, and is flexible, then you would be doing your business a disservice by not considering a custom software solution.
Forward>>

    Author

    Andrew Anderson
    President - Latitude 40

    Categories

    All
    Agile
    Custom Vs. Off The Shelf
    On-shoring
    Technical

    RSS Feed

Copyright © 2025 Latitude 40 Consulting, Inc.  All rights reserved.
Latitude 40® is a trademark of Latitude 40 Consulting, Inc. All other trademarks are the property of their respective owners.
Picture
11001 W. 120th Ave. ​Suite 400
Broomfield, CO 80021
303-544-2191
CONTACT US
privacy policy
terms of service
customer login
  • Home
  • About Us
  • Services
  • Resources
    • Blog
    • Case Studies
    • Testimonials
    • What Is Custom Software?
  • Contact