The following pointers came out of a couple of large Web GIS implementation experience in the Utilities domain using ArcGIS for Server version 10.2.1
1. Never try to replicate your Desktop GIS into Web
We have been using GIS as a desktop application since ages. It is a natural tendency to adopt a similar view in the web as well. Long lists of layers in the Table of Contents, plethora of tools that are seldom being used, North arrow, Measurement scale, are few things that remind us of a Desktop GIS. Build Application for targeted audience - give no more features than what the users absolutely need. Restrict them within a (work) flow so that they can navigate your app with ease. Always remember that your web GIS users are not GIS experts.
2. Map server is the key to the success!
Pay special attention while creating your map services. ESRI has made it very easy to serve your spatial data. However, serving them optimally can be very tricky - particularly if you're targeting hundreds of concurrent users. Follow some basic rule of thumbs - create multiple map services instead of one; no more than 8 to 12 layers in a single map service; try to keep symbols as simple as possible; try not to use Definition Query; follow the n+1 rule while setting up for the 'maximum number of instances per machine', n being the number of cores; allow Windows to manage page file automatically (in case of virtual memory).
3. Avail free base maps and other services from Bing, Google or ESRI
No matter how cleverly you prepare your base maps, I can assure you, they are not better than all the base maps that are available for free. Instead of concentrating on a killing base maps that you will use as a backdrop for your GIS data, use one that is free - as a bonus, you will be saving the trouble of updating them as well.
4. Choose your frontend technology carefully
5. Keep mobile devices in mind during design
More and more people are online on mobile devices, than through their PCs. However, though the majority of these online users are mainly in the social networking sites during this time, they do see maps in their mobile devices (http://marketingland.com/outside-us-60-percent-internet-access-mostly-mobile-74498). Think of different screen sizes your users will be using to browse your app and plan for accommodating 'Tap's along with 'Click's.
6. Initial load time should never exceed 8 seconds
The average adult's attention span, for a page-load event, is around 8 seconds (http://www.entrepreneur.com/article/232266). Today's users, with the availability of information at their fingertips (taps?), become increasingly impatient for the wait time. On opening a page, if it takes more than 8 seconds, majority of the users will 'X' it out. If you want a wider foot print for your web application restrict the initial load time to 8 seconds, quicker the better.
7. Display non-spatial data spatially
Integration is commonplace in today's GIS. Display of Non-GIS data within GIS is a norm rather than an exception. There are various ways you can integrate - try displaying data on the map as graphic texts rather than in a table within the map. Spatial distribution helps us see patterns that tabular display fails to provide.
8. Pay more attention to User Experience over User Interface
User Experience (UX) is mostly (but not completely) achieved through User Interface (UI). For example, when you provide a zoom-in feature in a mapping application, you can implement that as a command (fixed zoom-In) or a tool (for a user to draw a polygon on the map to zoom into). This is UI. However, implementing a zoom-in feature as a tool can have a different UX depending on how you have programmed the cursor for 'after zoom-in event' - retain it in zoom-in mode, or take it back to the default mode(which is usually a pan), when finished. For a better UX, always provide a feedback to the user for each action they perform.
9. Know your users (behind the scene!)
Knowing your users is the best thing you can do for your application. There are some products out there that can capture user statistics, map server performance, number of hits, etc. but they cannot capture an individual user's feedback. If dissatisfied while using your product, majority of the users will not complain and issues but will stop using your application. User survey is another option but they fail to give you a clear picture because of poor participation. It is always a good idea to capture the user feedback behind the scene. For example, if you have a customized 'search' button, log each of its click events. Try to capture who is searching what and how long is it taking before they see the results. You can fine tune your application based on this log; even, give them a 'hint' on effective searching.
10. Secure your application
Security comes with a price. While Confidentiality and Integrity are achieved easily, Availability is sometimes compromised. It restricts your application to a lesser footprint. Whether to 'Share' or to 'Secure', will be dictated by the business requirements. At the least, you should always secure your map services through token and Secure Socket Layer; make sure the Server Manager is not visible from outside of your firewall.