What are your biggest challenges when developing GIS software?
Is it coding? Is it understanding cartography/geography/etc concepts (like projections)? Or other difficulties?
What are your biggest challenges when developing GIS software?
Is it coding? Is it understanding cartography/geography/etc concepts (like projections)? Or other difficulties?
Speaking from my experience as a developer who fell into the ESRI/GIS development scene nearly 5 years ago:
As you can tell I have a pretty negative outlook on the ESRI development scene. For those who come from a geography background, I'm sure the possibilities are pretty exciting. But for someone like me who loves relational databases, object-oriented programming, and wide open opportunity for creative solutions, GIS development with ESRI is very constraining and unfulfilling. This is a shame because the old school crowd tells me that it used to be a superior environment, before the alignment with Microsoft. I sincerely hope the open source community continues to innovate.
Large amounts of data. Being able to figure out the right way to extract large amounts of data using web technology has been a challenge. We can either have a lot of data, and poor performance, or have a lot less data being displayed, but potentially conveying the wrong information.
I'm not a GIS developer; however, I'm a GIS modeller:
Challenges:
Data gathering, aggregation, disaggregation, merging, and splitting: I get data from various sources for different projects; the biggest problem is usually getting all the data for the same geographic parcel/area. I usually have to use a few of the above mentioned techniques on every data set, to have a coherent sample for the project. This increases error likelyhoods and dilutes our precision.
I'm not a developer; I repeat I'm not a developer: When you lovely people talk about SOAP, SHAMPOO, REST, GIS-T Indexes, etc.. this means a lot to you. To me mostly it's jargon. I usually have a large learning curve or a steep climb to get some of the simple things done.
The gap between FOSS and Proprietary Software: I love QGIS and postgis to death; literally i have them installed on every machine; however, when I want to do a transportation based analysis, I have to resort to TransCAD or EMME2/3. Each costs about $15,000 with all the bells and whistles. In all fairness, all these problems could be solved if there was a networkx package for shp files.
Multiple disciplines issue: I'm well versed in transportation modeling techniques; however suck at demographic modelling, and as far as I can tell, I have to use sophisticated R tools to get my data done. So the GIS Problem is that GIS is a multidisciplinary field that is hard to survive on your own.
Lack of well established tools and software to go from imagery land use to vector land use: I foresee a future where a tool will analyze GEOEYE satellite image and compare the land uses in it to a vector (as built) database
Sometimes it is faster to do things in Excel/"your fav spread sheet program goes here: Sometimes I want to do transit analysis, it's a lot faster to grab the data put it in excel, do the formulae work, then dump the data back into postgis as a csv file and regenerate the map. Such a divide especially in the OpenSource world should be better handled.
Anyways I may not have answered you correctly; I just wish I was well versed when it comes to GIS programming so i can excel in GIS modeling
The most important things, and usually the hardest in my experience, are:
I think that point 1 will be easier in developed countries, but that's not my experience.
To me, the biggest challenge is deciding which tools to use for a given project. Open source or proprietary? Python or .NET? Web-based or desktop? I answer these questions differently for different projects, and I'm sure people will ask all of them on this site. A lot of it comes down to personal preference and trying to divine what ESRI and Microsoft will support in the future.
My issue is all about the horse and the water. In a lot of cases we develop and or present really good solutions for our clients, but no matter how elegant the solution, it is absolutely useless if no one will take the time to use. In some cases, we have been able to alleviate this by making our work user based (survey for issues, talk about solutions prior to development) but it some cases this is still not enough.
I think the hardest challenge is to get management to understand GIS and some users just don't get it either. The perception is that GIS is about making a map; that a map is the sole outcome of any GIS endevour. I can't tell you how frustrating I find this - the level of ignorance out there is huge, and it's held by the key decision makers.
Eventually though - we being some of the pioneering GIS experts and programmers - will eventually become management and then we can finally get some decent GIS projects done!
The other hard thing as a GIS programmer - you have to understand so many different technologies, Java, .Net, databases, ESRI software or other vendors i.e. MapInfo, networks, security, web tech, etc etc. It's an almost impossible job sometimes!
Dealing with people from a surveying background who don't understand professional software development techniques and methodologies, but because they taught themselves how to code avenue/VB, think that's all there is to it.
#3 from Vinko's answer:
design a usable application. It's easy and tempting to put a lot of bells and whistles that will only confuse the users.
I'd vote for the whole answer but for the fact that usability is only the third item in his list and i don't think the first two are that challenging.
Usability is where most of my issues are and where i spend most of the design/development time, figuring out how to design an intelligent and effective user-interface, but keep it intuitive so that users aren't confused by it, for example:
How to tune the styling (and choose the layers) of an interactive map to show the relevant information and avoid the clutter that often comes with displaying too much data (e.g. by using automatic aggregation of point features); i know this is what cartography has been trying to solve for ages, but the problem only gets worse with digital/interactive maps
How to do automatic positioning of the map view based on the user's query/feature selection
Highlighting the 'selected' features - do you show the highlight just briefly, have it highlighted the whole time a feature is selected, do you un-highlight when the selection table (or list) loses focus... How to highlight both all query results from a table and the selected row within that table (without having too many toggle buttons)
Showing additional information in lists of layers or features, e.g. a layer's visibility/applied style/geometry type, feature's status/class... This gets even more complicated in case one has different feature types displayed in the same list (i guess that's why Google and Bing Maps use quite heavy filtering of the search results)
Efficient editing: snapping, closing of polygons, adding/moving/deleting points, without having lots of toolbar buttons.
How to do design (and implement) a user-frendly query interface for geometry queries, and even more challenging, an interface for queries including both attributes and geometry; without making the user type in something resembling SQL.
How to design something like a clipboard for features/geometries to avoid having to continuously 'pick' a feature off the map for use in queries, edits...
My feeling is that GIS is an especially challenging field in the usability aspect, because:
Location is the universal and usually the most natural context for any information, so there's always too much information available for display
Having information displayed on a map, one is easily tempted to underestimate the importance of the non-GIS parts of the user interface
The industry has traditionally neglected the usability aspect of GIS software, and they got away with it because digital mapping was seen as a technical trade with a slow learning curve and there were far more difficult concepts to learn than how to use the interface. This means that anyone trying to design a GIS interface for the non-expert has to invent their own principles which are doomed to be confusing (an nice example would be Google's 'My Maps' or Bing Maps' 'My Places')
One of the biggest challenges to Web-based GIS development is how the data is delivered and how much efficiency I can get out of delivering the data a certain way. The biggest hurdle is that it is very hard to write code for something that requires a human to tweak. Very rarely do you see generalization techniques for vector data used at large scales. Most times you have to tweak the scale ranges to turn on and off the layers.
This question came up on my google search for challenges in GIS, and I feel like contributing here.
Another link that I felt relevant was this paper.
Summarizing what is said there and my own views, I think the biggest challenges (in no particular order are):
When it comes to coding, I feel I waste far too much time on workarounds. For projections it took me a couple of months to understand the processes and math as there is in my opinion little helpful published material on the subject. The EPSG and OGC documents on the subject did help me get my head around it after a few reads, even though they sometimes seem to be copies of each other. The largest problem I have though as an independent developer is that I can't help but trip over people needing specialized work for medical, industrial, or even simple web app development, even now. With the GIS industry it seems nearly impossible to find a way to enter into the market.
I'm a complete beginner at GIS technologies, figuring things out as I go. And since I have limited funds, I'm trying avoid using any ESRI products and do things entirely with open source tools.
So that said, the hardest things for me so far have all been related to collecting data. There plenty of articles on manipulating and displaying the data, and plenty of tools to make your life easier. But I'm sill walking in the dark when it comes to collecting data.
I have no idea what the professionals do to find and collect data. Something tells me there's an easier way to get data than data.gov and google.
the GIS world is being expanded toward the common user unless early years where the GIS was only treated by engineers, architecs or the scientific community. In the case the GIS app is done for the common user the challenge is mix appropriately of technologies where the GIS is treated as an technology more(in this case a developer with a little understanding of GIS technology is enough). However in the case that the app is done for the specialized community the challenge is more complex becuase besides joining technologies is necessary to search existing algorithms to fulfill with the requeriments otherwise even worse we would have to development these algorithms. In this case a blend of engineer and developer is the worker appropiated.
You might be unfortunate to be forced to work with GIS analysts that have been converted into software developers.
It's easy to expect a competent software developer to pick up GIS concepts, and let them go through the API and generally figure things out without much help. The same does not hold true of taking a GIS analyst and expecting them to pick up software development.
The results are embarrassing, at best. If you have experience working with bad developers, then imagine it's worse code than anything the worst programmer has developed.
There are some companies you may work for that don't get that.