Archive for the 'Reaching out' Category

Tips for Custom Software Development

Tuesday, February 27th, 2007

When OTS (Off The Shelf) software doesn’t meet your needs, it’s time to go custom. Here are some tips to help ensure your next custom project ends up being a success.

1. Are you sure that OTS (Commercial or Open Source) doesn’t cut it?
- Usually the fastest and cheapest way to solve your IT needs is to buy OTS (or use an Open Source product). If you’ve done your homework and are convinced that OTS doesn’t meet your needs, is there an OTS product that comes close? Especially for Open Source products, minor customization (especially of the UI or workflow) may give you the 80% solution for 20% of the cost. Commercial products can also usually be customized, but may cost much more to do so than their Open Source counterparts.

2. Keep the key requirements to a minimum
An analogy with custom software development that I often use with our clients is house renovation or building. You make your wish list, you hire your architect and builder, sketches are made, and then you realize your dream home will cost you 200% more than you wanted to pay and take three times longer to build. At that point, the hard decisions need to be made. “Do I really need two fireplaces?”, you ask yourself, “or a three-car garage? or stain-grade wood windows?”, etc, etc. After prioritizing your needs and desires, hopefully you are much closer to your original vision, both in terms of cost/schedule, as well as the essential qualities you desire in your new house.

It’s the same with custom software development. After the initial brainstorming sessions, it’s time to whittle the project down to it’s essence - that core set of requirements and functionality that will provide you with the greatest business value, and allow you to grow the system (if necessary) over time. Our job is to give you the feedback along the way to help you with this process. We do this by questioning your need for feature x or requirement y. We tell you which requirements are hard to implement (and thus will cost more and take longer) vs. which are easy. This is usually a very enlightening process for our customers. Often, features that you think will cost the moon are trivial to implement using modern technology (many of these are User Interface-related), whereas others are much harder to do that they anticipated, or have cost and schedule ramifications for other parts of their system (complexities in the domain model are prime examples of these). The requirements and features that do not make the cut are kept in the “nice to have” pile, and are implemented as time and money allow, after the core requirements and functionality have been built.

3. Simplify
Do you really need your business rules to be so complex? Do they represent current processes (that are perhaps outmoded and need to be streamlined) or are they new processes that have yet to be implemented in your organization (and are perhaps untried and untested)? Our favourite quote from Einstein is “Things should be made as simple as possible, but no simpler.” This is exactly the attitude we try to take when examining requirements for custom software.

Usually, the people who are commissioning the creation of custom software are not it’s end users, thus their understanding of the real requirements will often be different from the understanding (and needs) of the end users.
In a situation like this, it can be a good idea to build a simpler system quickly, deploy it, and use it in day to day operations for a time, in order to help crystallize and reconcile the different perspectives of the project sponsors and the end users. Then, adding complexity where it is really needed is time and money well spent because you are working with real requirements, rather than hypothetical ones.

This is certainly not an exhaustive list of what to look out for when embarking on a custom software development project, but it should help to put the process in the proper perspective.

What’s with the Einstein quote?

Tuesday, January 23rd, 2007

You might have noticed we’ve taken to using a quote from Einstein in our marketing material:

Everything should be made as simple as possible, but not simpler. ~Albert Einstein

Of course, we are happy to simply have an association with one of the great minds in our civilization, but there’s more to it than that. The phrase itself is very appropriate to our philosophy for software development.

Einstein was convinced there was an underlying order to the universe. With his gift for creating a simple thought experiment — what would one see when looking in a mirror when traveling at the speed of light? — he was able to distill an exquisitely elegant expression of that order, his special theory of relativity, that is sufficiently detailed to capture the relationship between energy and mass. Hence the quotation.

With software development, it is all too easy to implement vastly complex solutions to business problems. There is much to be gained from a disciplined pursuit of a simpler solution that still solves the problem at hand. The result is likely easier to use, easier to maintain, and less costly to develop than the result of unbridled approach to development.

While we don’t necessarily agree that there is an underlying order to the business world, we are committed to finding the simplest solution that meets the needs of our clients.

The demands of supply chain management

Tuesday, January 2nd, 2007

There are many common activities that all businesses must deal with, and there are many kinds of software out there to help: Business Development, Human Resourcing, Compensation, Finance, Regulatory, to name just a few. Then there is Supply Chain Management. Unless you are strictly in the people business, chances are there is a supply chain management element to your business. You likely have unique terminology around it that is specific to your business, your staff has a collection of sticky notes to track how to deal with exceptions, and they pass on rough instructions to their colleagues in hopes the supply workflow can continue when key personnel are away on vacation, as it is an integral piece of your business.

If this sounds familiar, then you are like many businesses who we, at 2Paths, speak to about streamlining and automating their supply chain management process. The question businesses struggle with is whether to build or buy software for managing their supply chain. Should you buy a packaged software package for a handsome fee, and handcuff yourself to years of expensive annual licensing fees? Or should you venture into the great unknown of custom software development, and risk leaping into the great void of unknowns, of which cost and process are at the forefront?

With one client, I used the following example to help understand the single biggest difference between the ‘build or buy’ question as it related to their supply chain management decision. When I was working as an engineer at BASF ten years ago, we went through one of the first major Supply Chain Management - SAP - implementations. It took two full years, and every employee in the organization felt its pain during the implementation. If you asked the employees at BASF today about that implementation, not a single person would have a happy memory of the experience, even ten long years later. Why was it so painful, you ask? The main reason is that BASF had to overhaul its entire workflow to fit the supply chain management application, which was behemoth and inflexible. Exceptions, which were previously accommodated by easy work-arounds, were no longer possible, and were, in fact, suddenly incredibly time-consuming. Everyone had to rethink how they did their jobs, and in some cases, do extra work to fulfill activities required by the application. The soft costs associated with adjusting the workflow to that application were exorbitant, and difficult to quantify at the time.

In sharp contrast, a solution devised by a custom software development company, like 2Paths, is built exactly according to your organization’s workflow. This way, there need not be any changes to your workflow — unless of course we discover process inefficiencies while analyzing your business processes, which then provides an opportunity for positive change. The end result is a solution designed to fit your unique business. Since the software includes no unneeded modules, everything is pertinent, and because the system is designed in concert with the customer, built with intuitive navigation in mind, training is easy and you do not require an elaborate User Manual. Like your favorite web applications, there is context-sensitive help for unfamiliar steps. 2Paths supports every application we develop, so in the unlikely event you do need personal help, we are ready to provide assistance.

Additional functionality requests are addressed promptly and efficiently, which is a sharp contrast to making a request for new functionality to a large, ‘packaged’ software provider, whose release cycles are often booked a year or more in advance, and even then requests are in competition with many other client’s requests. Another advantage of the custom solution is the platform independence. Our customers are not required to install anything on their laptops or desktops because our applications are always secure and web-accessible. Managers can approve audit reports from their hotel rooms when on a business trip, or from the comfort of their own home.

And of course, you may need supply chain management today, but down the road, inevitably there will be talk of billing (finance), sales forecasting, and other related business functions that can be integrated into the custom application. For many growing companies, it makes sense to solve one piece of the Enterprise Resource Planning (ERP) puzzle at a time, rather than being overwhelmed with an application that is over-engineered for where they are at. With a custom solution, the client gets the application they need at the stage their business is in at the appropriate time, and can build on it as required. They enjoy a suite of solutions designed to effectively respond to their evolving needs. These days who can resist the word ‘custom’, and frankly, why would they?

Building web applications: finding the best value

Tuesday, December 12th, 2006

Any successful company spends its money carefully, seeking best value, much like we spend our own money on household purchases. For a company, software can be a significant investment, similar to our personal investment in building the family home. In both cases, there are several approaches to choose from, each providing similar functions in different ways. 2Paths specializes in delivering commercial web applications, which can be divided into off-the-shelf, configurable, and custom software solutions. These options are similar to the choices between the pre-fabricated, ready-to-build, and architecturally designed approaches to building a residence. In either case, the best solution comes down to the best fit with each customer’s unique needs, whether for commercial software or a new home.
globehome.jpeg
Off the shelf software is a product, intended to be used just as provided. This approach has the benefit of economy of scale, as identical software is provided to many customers. It is a very successful solution for problems that are common to many organizations, and works particularly well for smaller, simpler applications, having a better chance at finding a good fit between many customers and the product. In the housing market, this approach is found in manufactured (mobile) homes and pre-fabricated building kits. While there can be a trade-off in losing personalized features, manufactured houses offer a significant cost saving, and may provide just what a family needs. 2Paths does not hesitate to recommend off-the-shelf software to its customers — and uses such products internally — when there is a good fit between the need and the packaged solution.
Ready to build house
Being essentially a set of instructions and stored data, software is naturally configurable: certainly it is more malleable than the wood and stone that is used to build our home, which is configurable mainly in the design stage. With the ready-to-build approach, the homeowner purchases a set of blueprints, then works with the contractor to make adjustments to room sizes, window placement, and other details. 2Paths takes advantage of software configurability in the design phase to select pre-built components — high quality reusable software from the open source community and from our own libraries — which are combined to meet the customer’s basic needs, and which can then be further tweaked to provide an even better fit.
Architecturally designed home
Sometimes there is no pre-existing solution. Often a company has found success with a unique service offering, or has exercised its creativity to find a competitive advantage that requires software in ways that have not yet been used in its industry. Similarly, we may wish to build our home on a steep, rocky or irregular lot on which a standard suburban home cannot be placed. In these situations, the customer and the designer work closely together to find a solution. 2Paths has significant experience creating unique custom software solutions, expressly tailored to its customer’s needs, just as our architect works to design a house that perfectly fits our family needs and building site.

Because software is so malleable, many applications consist of combinations of these three approaches. 2Paths happily uses packaged software and pre-built components when these contribute the best value to the solution, and will recommend a custom approach when cost of packaged software, with an excess of unneeded features would cost the customer more. 2Paths has a particular strength in developing custom solutions, but the company’s pride comes from finding the unique best fit with a customer’s needs: off the shelf software, configurable components, custom designs, or a combination of these: are all potentially viable options for a web application.

Hello world!

Tuesday, December 5th, 2006

With some focused pressure from Boris Mann, and a little from Kris Krug, we now have a blog. The point is two-fold. First we want to show people a little more about us - people that may be interested in working here and clients that are thinking of working with us. Secondly it provides the people working at 2Paths a place to send information to each other instead of via email.

Without further ado, we begin!