Skills for Sage Web Development
Last week I blogged on the Sage Developer training at Sage Summit. I’ve since received a few inquiries about what skills are needed in this area. So I thought I’d blog this week on desirable skills in this area along with a number of references where you can learn online.
All our Sage ERP products including Sage ERP Accpac, Sage ERP MAS 90/200, Sage ERP MAS 500 and Sage ERP X3 are somewhere on a Web journey, whether moving the entire product to the Web or adding integrations with various Connected Services. More and more ERP installations are being done in conjunction with a CRM installation whether SageCRM or Sage SLX and the CRM products are all well into their own web journeys. We are integrating in mobile applications that are all based on Web technologies like HTML5. We are offering all our products in both on-premise and cloud based configurations.
As we go down this road what skills should you master as a Development Partner or a Business Partner? What skills should you be looking for, as you hire new consultants? This blog posts looks at some of the technologies that we are using in our various products, where to learn about them and what skills are required. Remember that the Web is a fast changing world and the best skill to have is the ability to learn new things. To be enthusiastic about change and excited about the possibilities all these new technologies open up.
This blog posting is really about in-depth technical skills for Developers and Advanced Consultants. However there are also many new business metaphors to learn. For instance: does your company really embrace Social Media? More and more business is done as a result of interactions on Twitter, LinkedIn, Blogs, Facebook, Yammer, Quora, etc. How to get leads and do business in a much more cloud based web world is a whole other topic. But everyone should be trying their best to fully embrace the new Social business world.
This blog posting is quite forward looking and isn’t a commitment to any product roadmaps or commitment to inclusion of any given feature or technology to any specific products or versions. Sometimes learning a specific technique may not have immediate value, but often learning one thing makes learning a related similar thing easier later on.
SData is Sage’s standard RESTful web services interface to all Sage applications. The main hub for information on SData is here. The definitive book on RESTful Web Services is by Leonard Richardson and Sam Ruby from O’Reilly Press.
Generally the good skills to have for SData are a working knowledge of RESTful Web Services and XML. If not RESTful, then SOAP web service knowledge would be second best.
Generally over time SData will become the preferred API to integrate to all Sage products.
SWT is the Sage Web Toolkit which is based on the Google Web Toolkit (GWT). This toolkit is SData aware (meaning all controls can be bound to SData feeds or properties). It supports drag and drop and has a visual UI designer.
When programming with SWT you do all your coding in the Java programming language. So a good knowledge of Java is very helpful. There are many on-line resources, books and training courses on Java. Like any programming language you learn the most by doing, this is the only way to really learn. Personally, I like the book: Big Java by Cay Horstmann. Another popular book around the office is Effective Java by Joshua Bloch.
As our products move to the cloud, whether in the manner of www.accpaconline.com or as true SaaS solution, if development partners want to have their products hosted in the same manner then they will need to use our ERP product’s SDK and APIs and follow our best practices. Otherwise we won’t be able to host your application. Generally you use the same tools and techniques as on-premise, but with a few restrictions. For instance since everyone runs the same programs, then source code customizations can’t be allowed. Knowing something about the main Cloud platforms can only be a help like Amazon, Azure or Rackspace.
As everything becomes connected to the Internet security and privacy become bigger and bigger concerns. I’ve blogged a couple of times on this here and here. These will give you a starting point of what to look into.
Many of our ERP packages use the same development tools or rely on the same server components. Here are a few examples that you may want to become familiar with.
Eclipse: is a programming IDE that is used both by Accpac and MAS-90/200 for program development. Both products include Eclipse plug-ins in their SDK and have documentation oriented to working in Eclipse. There are many on-line resources and books about Eclipse available.
Tomcat: Apache Tomcat is a Java application server that is used by both Accpac and SageCRM. There are many good online resources for Tomcat along with many books available. However the configuration and setup of Tomcat is handled, hopefully transparently, by our installation program, so the hope is that you don’t need to really know that much about it.
IIS: Most of our products use IIS if they require a Web Server. Accpac uses IIS to server up all static content as part of it’s SWT/SData framework. SageCRM also uses IIS and largely operates as an IIS extension. Again there are many on-line resources for IIS and many books on the topic. There is some trickiness to IIS, in that it is quite different on each version of Windows and can be confusion if you are jumping between versions.
Jakarta: Jakarta is the common name for the Apache Tomcat Connector to IIS. This component runs as an ISAPI filter, scans all requests to IIS and then intercepts the ones required by Tomcat and forwards them on. If we do our job right this should be configured by our installation program and you shouldn’t need to know about it.
Some Oldies but Goodies
As we move to the Web, don’t lose sight we are still built on the same technologies as before and a good foundation in these is a key to success.
SQL Server: All the Sage mid-market ERP products and the associated CRM products now support SQL Server. When integrating multiple products together like ERP, CRM, HR and FAS then it’s best to use SQL Server since this is a common supported database across all of these. There are many on-line resources, courses and book on SQL Server. Having a good working knowledge of SQL server is a prerequisite for all Certified Installers.
Crystal Reports: All the Sage mid-market ERP products use Crystal Reports as their main reporting engine. Crystal Report’s website, along with a number of books, courses and online forums are good sources of information.
Windows Server: A good knowledge of Windows Server (especially 2008R2) is a good benefit to any partner working with any Sage product. Windows Server has now been around for a long time so there are many on-line resources, courses and books that provide really good coverage. Especially what is effected by security and group settings which can have a big effect on how applications function.
Whether hiring new employees, evaluating new consultants or brushing up on your own skills, I hope this blog gives a few ideas of areas that would benefit you when working with Sage ERP over the coming transition to the Web and Cloud Computing.