Custom Business Software

Contents:

1. Why Care About Custom Software?
2. About Productivity, Boxed Software, and Spreadsheets
3. Custom Software
4. Hiring Developers
5. A Solution

1. Why Care About Custom Software?

Computer technology improves productivity, and that saves money. Nearly every activity that makes up any sort of business can be made more efficient with well designed software: scheduling, accounting, communications, payroll, inventory management, marketing, manufacturing, point of sale, billing, collections, project management, research, etc. Effective software is a core component of virtually every successful modern business model.

Unfortunately, most businesses routinely rely on only marginally effective software, or none at all. Owners, managers and workers are often unaware that their operating costs and procedures could be improved dramatically by implementing and improving even simple select software systems.

A basic understanding of software development can help business owners, managers, and workers envision, evaluate, and commission software solutions to improve any type of operation. Understanding how software is created enables powerful opportunities to improve not only bottom line profits, but also the well being and productivity of every employee in an organization.

Given the enormous portion of our work lives spent managing time, resources, people, and activities, it should be considered a priority to envision and create better solutions to handle those common workflow activities more efficiently and effectively.

2. About Productivity, Boxed Software, and Spreadsheets

The search for computing systems to manage business operations typically starts with prepackaged products. Boxed software and services can be found to immediately address just about any common business operation, but those products are rarely - honestly never - a perfect fit for the exact use any business requires. Maybe you currently use or are aware of an industry specific software package that is well known in your field. Perhaps your manufacturing plant, retail store, accounting firm, etc. uses the same package as your competitors. Or perhaps you use a one-size-fits-all product such as QuickBooks to help run some part of your operations. If that's the case, you've likely experienced the shoe-horning of your specific square operation requirements into the round hole of existing generic software solutions. Perhaps it's possible to achieve what you want, but the routine may be bloated with features you don't need, awkwardly unsuited to your workflow, and/or only partially effective at satisfying all your requirements. Any repetitively inefficient software operation costs your company tremendous amounts of time and money in the long run. And even if an existing software product does work for your business model, it very likely doesn't give you any competitive edge, if it's what everyone else uses.

When boxed software fails to meet your exact needs, other tools are often employed to patch the gaps. Spreadsheets are one of the most common general computing tools used to supplement boxed software. They're great at manipulating columns of data, and it's expected that everyone in a typical office setting knows how to use them. But because spreadsheets are ubiquitous and relatively powerful, they end up being overused in ways which are error prone and ultimately counter-productive. Spreadsheets are not suited to applications which involve multi-user input, complex algorithmic formulas, special searching, sorting and reporting capabilities, parsing operations, large data sets, protected data fields, etc. Spreadsheets also encourage independent workflows among each individual employee. That's a troublesome practice because data tends to get scattered and lost in obscure personal files and never integrated into a well architected system. Spreadsheets are also severely limited in their ability to handle other forms of useful data (workflows that involve image manipulations, hardware control, etc.), which can be critically useful in the operation of all varieties of business. For more about problems with spreadsheets see:

  1. Are spreadsheets running your business?
  2. Excel errors costing business billions
  3. How the most important software application of all time is ruining the world (fortune.com)
  4. Spreadsheet addiction
  5. Databases versus spreadsheets - do you know where your data is?
  6. Excel to R
  7. Google search

Even more basic and less perfectly engineered solutions can be found in regular use in any business. Any routine which involves unstructured emails and phone calls, a calculator, pencil, paper, calendars, sticky notes, etc., is likely reducing the speed of your operations, causing errors, and unnecessarily costing your business money.

3. Custom Software

A better way to create successful business systems is to develop custom software solutions, engineered from the ground up to satisfy the specific data management needs of a business' unique operations. Streamlined user interfaces in custom software help to speed use with automation, ease data input and output, provide form validation (eliminate errors), restrict access to protected fields of data which shouldn't be altered, and enforce prescribed workflow procedures. When comparing spreadsheets to custom software, even the simple addition of a database system enables powerful features such as multi-user access, increased capacity for larger data sets, and enhanced reporting abilities.

Other simple capabilities of custom software, which can't be mimicked easily with generic 'office' software, include basic access to:

  • a computer's full file system (any piece of data, of any type, that can be manipulated in a machine)
  • any hardware connected to a computer system or device
  • image, sound, graphics, video and multimedia processing capabilities
  • network socket connectivity and communication capabilities - including file sharing, email, text, voice, video conference, etc.
  • connectivity to web servers and other high level productivity enhancing online services which make use of any various protocols, data formats, APIs, etc. available on the Internet.
  • potentially ANY other resource or capability attached to, or accessible by a computer system, which can take advantage of the algorithmic control and artificial intelligence capabilities provided by general purpose software development.

In the end, ANY routine or goal which is difficult or time consuming (i.e., expensive) for a human to accomplish, can be simplified by using computing systems and the pieces of software/hardware which they can potentially connect to and control. Software development is the key to enabling such capabilities.

But that's not where the benefits of software development end. Custom software allows the full spectrum of specific tasks encountered in a business to be engineered to work together within a larger design. Such end-to-end solutions add equity value to any business:

  • software creates sellable/leaseable intellectual property, by materializing the procedures and experiences acquired while operating a business, into a tangible product.
  • software enables operations to be more easily expanded, scaled up, franchised, sold, etc.
  • software improves the operating model which defines the business itself, by clarifying and codifying fundamental business processes encountered daily, and implementing/asserting repeatable models of operation based on those routines, and ensuring that operational guidelines are followed consistently.

Learning to program is generally considered far too time consuming (expensive) and complicated an endeavor to be included in the work load of office personnel, managers, or other workers. One can learn to crunch numbers with Excel in a day, but that's not even remotely true of traditional 'programming' skills. Years of study and experience are required to achieve even modest goals, using even the most productive mainstream software development technologies.

4. Hiring Developers

Hiring professional developers typically ends up being the only possible solution for creating custom software.

But software developers' time is extremely expensive, and their ability to create the software you need is limited by their own understanding of the industry in which the software is used, their work load and schedule (...as well as the schedules of their other clients!), the limits of their creative and technical abilities, the limits of their ability to communicate and question about the actual requirements of your software, etc. Contracted developers live apart from the usage environment and conditions, and never see first hand how operational stresses impact the way your software is used. Software developed by a group of coders working in cubicles in a foreign location, who've probably never experienced anything like your work environment or the human challenges imposed by your day to day operations, is absolutely unlikely to work exactly according to your needs if it's not properly specified. This often leads to severe usability problems, ongoing upgrade, re-implementation, and re-training difficulties, and of course, all the associated expenses and limits imposed upon your ongoing business operations which rely on imperfectly implemented early versions of system-critical software. It is actually the goal of many software development firms to draw out the complexities of the design and implementation process, to generate as many billable hours as possible for themselves.

How can you find a solution to these common difficulties?

5. A Solution

The solution is to learn enough about how software development works, that you can reason about and communicate your needs. Doing this requires even less learning than is required to understand spreadsheet scripting and other common office skills. Training key employees in the basics of software development technology requires less effort than training, re-training, and managing users to deal with complexities of various under-designed spreadsheet creations, patched together boxed applications, varieties of email and other incongruous online service interfaces, etc.

The more people in an organization there are who can imagine improving their daily routines (the workflows which they know more intimately than anyone else!), the more likely that organization will be able to engineer the best possible operational systems.

If your business goals include improving overall productivity and capability, then the time/money saved by implemented software solutions must be greater than the total time/money invested in studying/researching those solutions. It's simply not possible to accomplish that goal in any practical way without some education about the techniques involved in implementing the solutions. The answer is to learn about how custom software is created and what it can do for you. Simply learning what types of software solutions are easy/cheap to create and which are difficult/expensive to create can lead to quick but profound improvements in operations. It's amazing what can be accomplished with only a database system and simple custom data entry screens, but there are so many more possibilities.

A basic understanding of the software development process improves the outcome of software creation, even when in-house personnel write 0 lines of production code. More important than that, it becomes much more likely that the *very possibility* of using custom software solutions to handle work routines will be considered at all, and software solutions are much more likely to be imagined, to handle repeated operations problems, in the first place, when important people involved in every level of an organization know just enough about software development.

An understanding of software development enables all workers to make better informed choices about choosing or creating solutions to handle daily activities. When custom software should be commissioned to improve a repetitive workflow, an understanding of the development process makes it easier to communicate specification details with developers. If your company has an IT department, their productivity can be improved dramatically. If your IT choices are made by the same people who make business and/or operations decisions, it's not just a good idea for them to learn as much as possible about technology options, it's absolutely critical to your success.

If the thought of eliminating error prone, fatiguing, and expensive repetitive work from every layer of business operations is appealing to you, then considering the value of learning about software development should be high on your list of things to do. An organization in which every person has a genuine ability to improve capacity and cut costs, is one which can dramatically improve performance and bottom line results.

8-Jul-2022