Home > Services > Basic Principles
Services - Basic Principles
What are tools and processes?
In the current context and in simple terms:
- Tools are pieces of computer code which do something that makes life easier for the user
- Processes are sequences of actions to achieve desired results
- Supporting infrastructure is whatever is required to allow for successful operation of tools and processes
The distinction between tools and processes can be somewhat blurry since a tool could be said to be a process, but processes may not involve code.
Why are custom tools and processes useful?
When you invest in technology such as Esri’s ArcGIS for Desktop you get a large set of functions that are designed to serve the most common GIS needs well. Using the standard functions can get you a long way, but your investment also includes the ability to create your own functions using the building blocks that are provided for you along with a programming language, such as Python or C#. Taking advantage of the customization options can save you significant amounts of time and effort and allow you to extend the capabilities of the program.
The same principles apply for web technology, allowing you to build on the capabilities of systems such as ArcGIS for Server and use either of various options to build websites in which, for example, spatial data can be viewed and analyzed. Alternatively, you can develop tools and processes that take advantage of map and functionality services provided by others so that you can keep your technology costs to a minimum.
Examples of customization in ArcGIS for Desktop
A geoprocessing tool may allow you to perform an operation on one layer at a time whereas a Python script will allow you to run the tool repeatedly, each time using different inputs. The script may be run from the Python window or coupled with a form and used in the same way as any other geoprocessing tool.
A tool may not exist to do what you need to do, but Python may give you the functionality you need to build the tool yourself or have it built for you.
If your custom functionality requires forms for user input and process control, an add-in is the way to go. Add-ins are very simple to install and provide all of the capabilities expected of Windows form applications (buttons, dropdown lists, tables and so on).
The economic advantage
Above all else, using custom tools and processes should make life easier for you by making you more efficient. Being more efficient can save you money, provided, of course, that the amount you save exceeds the cost of trying to become more efficient. When using software, it is often possible to compare the cost of completing a set of tasks using the basic functionality with the cost of completing the tasks using custom procedures, including the cost of developing the procedures. If you find that the custom approach saves money, you have a solid basis for justifying the effort.
Should you build tools and processes yourself or have someone help you?
Many factors determine whether it’s better for you to build tools and processes yourself or to have someone else help you. For example,
- Your career goals – do you want to learn the required skills?
- Your financial position – can you afford to spend the time to apply and/or develop your skills or hire someone to help you?
- Timing – do you need something right away and are too busy to build it yourself or can you take your time?
- Your expected needs – are you likely to need tools and processes on a regular basis or just occasionally?
What are your options for learning to build tools and processes yourself?
As you would expect, many books and courses are available for learning the skills required to build GIS tools and processes. If you know what you want to do, finding the relevant resources may not be difficult. If, however, you don’t quite know what you need or what a suitable approach may be for a particular situation, identifying the right resources can be overwhelming. If you’re still keen to learn though, you don’t need to give up at this point. You could hire a developer to jump-start the development process for you in a professional coaching capacity. Here’s an example.
Before I came to the US, I worked on a GIS-based crime prevention scheme evaluation system for the Home Office branch of the UK government. This system used Esri’s Arc Macro Language (AML) extensively to allow exploration of the relationships between crime prevention activities, defined in terms of areas and time periods, and crime itself, also defined in terms of areas and time periods. The project is described in full in Safer Cities and Domestic Burglary, Home Office Research Study 164. There were two large parts to the system. I built the first part and, then, a member of the Home Office team learned how to program AML largely on the basis of what I’d developed. He was able to successfully build the second part of the system, thereby enhancing his own skills as well as contributing to the overall professional growth of the team.
It’s true that learning to program with C# is probably harder for many people than learning Python or any another such scripting language. But, regardless of the particular approach, with relevant examples, great support and the right mindset, it’s surprising what you can accomplish.