Monday, February 9, 2009

On being a GIS Developer, Part 1

I thought I’d share some of the things I’ve learned over the years from being a GIS developer. The following is just a list of things I’ve observed, learned or advice I can give from working on a few dozen projects. Some of the items are specific to GIS while others could be applied to the IT professional and then some others could be applied to life in general. Also, I’ve grouped some of these together and some others aren’t grouped because I think they deserved their own position on the list. When I started compiling this list I realized that I could go on and on so I’ve tried to limit it. Furthermore, these are in no particular order. Lastly, if you’ve been around for a while you will find some of this pretty obvious but if you’re new to this profession some of it may not even make any sense. Regardless, I hope it’s a good start and that you find it helpful. This article will be divided up into 3 parts over the next few weeks.

1. GIS Developers tend to always be thinking about some problem they are having, some new piece of technology or just something they’ve learned about or another way to solve a problem. It’s just the nature of the work and you must be someone that enjoys thinking a lot.

2. You should always try to keep learning and learning fast...learn everything you can. Read GIS books, attend conferences, talk to others, etc. All of this knowledge adds up over the years and makes you even more useful and able to apply your skills and knowledge in different ways.

3. You must be creative and have an entrepreneurial approach. Necessity really is the mother of invention. I never had much of an entrepreneurial spirit until I owned a GIS company. There’s nothing more creative inducing than having to put food on the table. Many a programmer would be better at their job if they just acted like it was their own business.

4. You must have a strong work ethic, excellent problem solving skills, be objective, honest, cope with stress, multi-task, and pro-active, team oriented and/or able to work alone, good interpersonal skills, a strong desire to help people, be willing to share what you know, tenacious, dedicated, open minded and so on.

5. Most of the time you will be more of a generalist than an expert in this field because you will constantly need to go from project to project or from one version of the GIS to another.

6. As a GIS developer you must have a solid knowledge of GIS, cartography, software engineering, databases, remote sensing, Web tools, geography, spatial analysis, etc. The list is long and every year it seems to get longer.

7. You should understand related subjects like computer science, mathematics, operations research, etc. I can’t tell you how much I now need to know now in regards to math as opposed to when I first started in GIS. Even knowing something like photography, physics, or forestry can help.

8. You should understand ESRI and the way it thinks about GIS. You must know ESRI's algorithms or at least know what published algorithms they’ve based their software on. On several occasions knowing what algorithms ESRI uses and how they’ve implemented them has saved my butt.

9. You should understand software development like Rational Unified Process, Agile, etc. You must understand which one to use and it’s highly dependent of the business domain. Also, test, test, and test again. There’s nothing worse than having a user tell you your application doesn’t work.

10. You should be able to work with analysts, subject matter experts, editors, managers, end-users, etc. All of these team members will have different perspectives on GIS and all of them are equally valid.

11. You should be aware of standards and able to apply them. They can sometimes be a real limiting factor but you’ll still have to work with them. They are important and make GIS easier for everyone to understand and use.

12. You should either know about the subject matter domain or learn about it. I’ve now worked in several industries (electric utilities, local government, military, banks, etc.) and each one has a different set of regulations, policies, geographic properties and so on that are unique to them. You must be able to adapt your knowledge of GIS to these domains.

13. You should understand hardware, OS, networks, etc. Sometimes the difference between success and failure is knowing how one OS handles files differently than another. Also, in order to build a workable architecture you should understand the pros and cons on the underlying hardware and network.

14. You should have excellent communication skills: written and oral. Also, you should learn the art of persuasion. Develop your public speaking skills.

15. You should be aware of the GIS market and the tools that are available. Sometimes you won’t be able to develop a tool but you must be able to give management an alternative. Also, understand the relationships between different vendors and who will work with whom.

16. You should be willing to take managed risks. Sometimes you’ll be the only one that understands what needs to be done or that a new piece of technology may provide the solution you need. Hopefully, you’ve built enough trust from others to take this risk to develop it. Of course you must temper this with pragmatism and cost and other factors.

17. You should be an evangelist. You must be willing to promote GIS and new tools to others. Often you will be alone in your endeavors but if you don’t overstep you should be able to persuade others of the benefits of some new technology or approach.

18. You should be able to switch different parts of your mind. One minute working on code and the next giving a demo, and in some cases the next doing marketing. It just depends on the organization you work in and your own abilities.

19. You should understand business process modeling, data modeling, object models, etc. You will come across many of these in your career and some of them will be very complicated and if you understand all the symbols and icons it’ll make your job easier. This is how the GIS professionals communicate conceptual details to each other.

20. You should keep up with the latest research and technology trends. You never want to be caught with your pants down. Learn about new technologies and determine their advantages and disadvantages. Try to determine if and why the GIS vendor has or hasn’t implemented something.

1 comment: