Archive for the ‘Business’ Category
Right now we have our nephew Ian living with us as he takes a Lighthouse Labs developer boot camp program in Ruby on Rails and Web Programming. This is a very intense course that has 8 weeks instruction and then a guaranteed internship of at least 4 weeks with a sponsoring company. A lot of this is an immersion in the current high tech culture that has developed in downtown Vancouver. This corresponds with myself working to expand the Sage 300 ERP development team in Richmond and our hiring efforts over the past several months. This article is then based on a few observations and experiences around these two happenings.
Sage 300 ERP has been around for over thirty years now and this has caused us to have quite a few generations of programmers all working on the product. Certainly over this time the various theories of what a high tech office should look like and what a talented programmer wants in a company has changed quite dramatically. As Sage moves forwards we need to change with the times and adopt a lot of these new ways of doing things and accommodate these new preferred lifestyles.
Generally people go through three phases of their career, starting single, no kids, renting to transitioning to married, home ownership and eventually kids to kids leaving home and considering retiring. Of course these days there can be some major career changes along the way as industries are disrupted and people need to retrain and reeducate themselves. Every office needs a good mix, to build a diverse, energetic and innovative culture, which has experience but is still willing to take risks.
Offices or No Offices
The ambition was to have as much privacy as possible which usually translated to high cube walls, other barriers and the ambition to one day move into an office. At the time Microsoft advertised that on their campus every employee got an office, so they could concentrate and think to be more effective at their work. I visited the Excel team at this time and they had two buildings packed with lots of very small offices which led to long narrow claustrophobic hallways.
A lot has changed since then. Software development has much more adopted the Scrum/Agile model where people work together as a team and social interactions are very important. Further as products move to the cloud, the developers need to team up with DevOps and all sorts of other people that are crucial for their product’s success.
Now most firms adopt more open office approach. There are no permanent offices, everyone works together as a team.
There is a lot of debate about which is better. People used to more privacy of offices and cubes are loathe to lose that. People that have been using the open office approach can’t imagine moving back to cubes. Also with more people working a percentage of their time from home, a permanent spot at the offices doesn’t always make sense.
Downtown versus the Suburbs
When I started with CA the office was located in town near Granville Island. This was a great location, central, many good restaurants, and easily accessible via transit. Then we moved out to Richmond to a sprawling high tech park like many of the similar companies in the 90s. These were all sprawling landscapes of three story office buildings each one with a giant parking lot surrounding it. All very similar whether in Richmond, Irvine, Santa Clara or elsewhere.
Now the trend is reversing and people are moving back to downtown. Most new companies are located in or near downtown and several large companies have setup major development centers in town recently. Now the high tech parks in the suburbs are starting to have quite a few vacancies.
The Younger Generation
A lot of this is being driven by the twenty-something generation. What they look for in a company is quite different today than what I looked for when I started out. There are quite a few demographic changes as well as lifestyle changes that are driving this. A few key driving factors are:
- The number of young people getting drivers licenses and buying cars is shrinking. There are a lot of reasons for this. But people who can’t drive have trouble getting to the suburbs.
- People are having children later in life. Often putting it off until their late thirties or even forties.
- City cores are being re-vitalized. Even Calgary and Edmonton are trying to get urban sprawl under control.
- Real estate in the desirable high tech centers like San Francisco, Seattle or Vancouver is extremely expensive. Loft apartments downtown are often the way to go.
- Much more work is done at home and if coffee shops.
This all makes living and working downtown much more preferable. It is also leading to people requiring less space and looking for more social interactions.
Hiring that Younger Generation
To remain competitive a company like Sage needs to be able to hire younger people just finishing their education. We need the infusion of youth, energy and new ideas. If a company doesn’t get this then it will die. Right now the hiring market is very competitive. There is a lot of venture capital investment creating hot new companies, many existing companies are experiencing good growth and generally the percentage of the economy driven by high tech is growing. Another problem is that industries like construction, mining and oil are booming, often hiring people at very high wages before they even think about post-secondary education.
What we are finding is that many young people don’t have cars, live downtown and are looking to work in a cool open office concept building.
We are in the process of converting our offices to a more modern open office environment. We do allow people to work at home some days. Maybe we will even be able to move back downtown once the current lease expires? Or maybe we will need to create a satellite office downtown.
Generally we have to become more involved with both the educational institutions by hiring co-op students and other interns. We need to participate in more activities of the local developer and educational community like the HTML500. We need to ensure that Sage is known to the students and that they consider it a good career path to embark on. Often hiring co-op students now can lead to regular full time employees later.
Since Sage has been around for a long time and has a large solid customer base, we offer a stable work environment. You know you will receive your next pay check. Many startups run out of funding or otherwise go broke. Often while the job market is hot, young people don’t worry about this too much, but as you get into a mortgage, this can become more important.
The times are changing and not only do our developers need to keep retraining and learning how to do things differently, but so do our facilities departments, IS departments and HR departments. Change is often scary, but it is also exciting and stops life from becoming boring.
Personally, I would much rather work downtown (I already live there). I think I will be sad when I give up my office, but at the same time I don’t want to become the stereotypical old person yelling at the teenagers to get off my lawn. Overall I think I will prefer a more mobile way of working, not so tied to my particular current office.
My first computer was an Apple II Plus, which didn’t even support lower case characters. Everything was upper case. To do word processing you used special characters to change case. Now we expect our computer to not just handle upper and lower case characters, but accented characters, special symbols, all the Asian language characters, all the Arabic characters and everything else.
In the beginning there was ASCII which allowed computers to encode the alphabet, numbers and the common typewriter characters, all 127 of them. Then we added another 127 characters for accented characters. But there were quite a few different accented characters so we had a standard first 127 characters and then various options for the upper 127 characters. This allowed us to handle most European languages on computers. Then there was the desire to support Chinese characters which number in the tens of thousands. So the idea came along to represent these as two bytes or 16 bits. This worked well, but it still only supported one language at a time and often ran out of characters. In developing this there were quite a few standards and quite a bit of incompatibility of moving files containing these between computers systems. But generally the first 127 characters were the original ASCII characters and then the rest depended on the code page you chose.
To try to bring some order to this mess and make the whole problem easier, Unicode was invented. The idea here was to have one character set that contained all the characters from all the languages in the world. Sounds like a good idea, but of course Computer Scientists underestimated the problem. They assumed this would be at most 64K characters and that they could use 2 bytes to represent each character. Like the 640K memory barrier, this turned out to be quite a bad idea. In fact there are now about 110,000 Unicode characters and the number is growing.
Unicode specifies all the characters, but it allows for different encodings. These days the two most common are UTF8 and UTF16. Both of these have pros and cons. Microsoft chose UTF16 for all their systems. Since I work with Sage 300 and since we are trying to solve this on Windows that is what we will discuss in this article. To convert Sage 300 to Unicode using UTF8 would probably have been easier since UTF8 was designed to give better compatibility with ASCII, but we live in a Windows UTF16 world where we want to interact well with SQL Server and the Windows API.
Microsoft adopted UTF16 because they felt it would be easier, since basically each string became twice as long since every character was represented by 2 bytes. Hence memory doubled everywhere and it was simple to convert. This was fine except that 2 bytes doesn’t hold every Unicode character anymore, so some characters actually take 2 16-byte slots. But generally you can mostly predict the number of characters in a given amount of memory. It also lends itself better to just using array operations rather than having to go through strings with next/previous operations.
Windows took the approach that to maintain compatibility they would offer two APIs, one for ANSI and one for Unicode. So any Windows API call that takes a string as a parameter will have two versions, one ending A (for ANSI) and one ending in W (for Wide). Then in Windows.h if you compile with UNICODE defined then it uses the W version, else it uses the A version. This certainly adds a lot of pollution to the Windows API. But they maintained compatibility with all pre-existing programs. This was all put in place as part of Win32 (since recompiling was necessary).
For Sage 300 we’ve resisted going all in on Unicode, because we don’t want to double the size of our API and maintain that for all time, and if we do release a Unicode version then it will break every third party add-in and customization out there. We have the additional challenge that Unicode doesn’t work very well in VB6.
But with our 64 Bit version, we are not supporting VB6 (which will never be 64Bit) and all third parties have to make changes for 64 Bit anyway, so why not take advantage of this and introduce Unicode at the same time? This would make the move to 64 Bit more work, but hopefully will be worth it.
Why Switch to Unicode
Converting a large C/C++ application to Unicode is a lot of work. Why go to the effort? Sage 300 has had a traditional and simplified Chinese versions for a long time. What benefits does Unicode give us over the current double byte system we support?
One is that in double byte, only one character set can be installed on Windows at a time. This means for our online version we need separate servers to host the Chinese version. With Unicode we can support all languages from one set of servers, we don’t need separate sets of servers for each language group. This makes managing the online server farm much easier and much more uniform for upgrading and such. Besides our online offerings, we have had customers complain that when running Terminal Server they need separate ones for various branch offices in different parts of the world using different languages.
Another advantage that now we can support mixtures of script, so users can enter Thai in one field, Arabic in another and Chinese in another. Perhaps a bit esoteric, but it could have uses for optional fields where there are different ones for different locales.
Another problem we tend to have is with sort orders in all these different incompatible multi-byte character systems. With Unicode this becomes much more uniform (although there are still multiple of these) and much easier to deal with. Right now we avoid the problem by limiting key fields to upper case alphanumeric. But perhaps down the road with Unicode we can relax this.
A bit advantage is ease of setup. Getting the current multi-byte systems working requires some care in setting up the Windows server that often challenges people and causes problems. With Unicode, things are already setup correctly so this is much less of a problem.
Converting Sage 300
SQL Server already supports Unicode. Any UI technology newer than VB6 will also support Unicode. So that leaves our Business Logic layer, database driver and supporting DLLs. These are all written in C/C++ and so have to be converted to Unicode.
We still need to maintain our 32-Bit non-Unicode version and we don’t want two sets of source code, so we want to do this in such a way that we can compile the code either way and it will work correctly.
At the lower levels we have to use Microsoft’s tchar.h file which provides defines that will compile one way when _UNICODE is defined and another when it isn’t. This is similar to how Windows.h works for the Windows runtime, only it does it for the C runtime. For C++ you need a little extra for the string class, but we can handle that in plustype.h.
One annoying thing is that to specify a Unicode string in C, you do l”abc”, and with the macro in tchar.h, you change it to _T(“abc”). Changing all the strings in the system this way is certainly a real pain. Especially since 99.99% of these will never contain a non-ASCII character because they are for debugging or logging. If Microsoft had adopted UTF8 this wouldn’t have been necessary since the ASCII characters are the same, but with UTF16 this, to me is the big downside. But then it’s pretty mechanical work and a lot of it can be automated.
At higher levels of Sage 300, we rely more on the types defined in plustype.h and tend to use routines form a4wapi.dll rather than using the C runtime directly. This is good, since we can change these places to compile for either and hide a lot of the details from the application programmer. The other is that we only need to convert the parts of the system that deal with the database and the parts that deal with string handling (like error messages).
One question that comes up is what will be the length on fields in the database? Right now if it’s 60 characters then its 60 bytes. Under this method of converting the application the field will be 60 UTF16 characters for 120 bytes. (This is true if you don’t use the special characters that require 4 bytes, but most characters are in the standard 64K block).
Moving to both 64 Bits and Unicode is quite an exciting prospect. It will open up the doors to all sorts of advanced features, and really move our application ahead in a major way. It will revitalize the C/C++ code base and allow some quite powerful capabilities.
As a usual disclaimer, this article is about some research and proof of concept work we are doing and doesn’t represent a commitment as to which future version or edition this will surface in.
Last weekend I visited my parents in Victoria and my mom mentioned that she had finally used up all the computer punch cards I had left her when I graduated U-Vic. She likes them because they are more solid than paper but lighter than cardboard and are ideal for using as shopping lists and such. To have lasted this long shows how many cards I needed to do all my first and second year Computer Science courses back then at U-Vic.
This got me to thinking on how entering data into computers has changed over my career. Data entry is changing at an even faster rate these days, so I thought it might be fun to look back and to look forwards as well.
I’m not sure if this makes me appear very old, or shows how slow educational institutions adopt new technology. Not only was I the last first year computer science class to have to use punch cards, but I was also the last year when you weren’t allowed to use calculators in the Provincial exams and had to use a slide rule.
Basically the terminal printed what you typed and sent it to the computer when you hit enter and then would echo anything sent back. Rather primitive. Certainly was different editing files this way. Back then Basic used line numbers and you edit lines by specifying what you wanted done to a specific line by number.
IBM Punched Cards
Then I went to the University of Victoria, which was a step backwards. Rather than a nice online terminal like the LA36, we had to enter data via punched cards and then receive the output later from a managed line printer.
You had to be careful what you typed since each run took quite a bit of time and used up money from your account. You got good at using functions like duplicating cards up to a point and were always very careful not to drop them. Given the nature of the medium, it was surprisingly robust, in that the cards were actually pretty reliable.
Once I hit third year, we were allowed to use video terminals to do our Computer Science work. Some people were lucky enough to use very compact languages like APL to program. Others of us had to manage rather slow editors using cursor keys. Admittedly a huge improvement over the LA36 or punch cards.
For my first Co-op work term, I worked at Island Medical Labs and programmed a Radio Shack TRS-80 computer to do a number of calculations and to print a number of reports for the lab. This was my introduction to personal computing and I was so happy to have a computer all to myself, rather than the time sharing systems I was used to. It had disk drives and a daisy wheel printer. Lots of fun programming in Basic for this.
After my first co-op work term I used much of my earnings to buy a brand new Apple II+. Since I mostly took Numerical Analysis type CS courses, I was actually able to do quite a few labs off my Apple II+. I had to take a cassette tape downtown to get a print out at a computer store since I didn’t have a printer yet (or a disk drive).
A big innovation came when the Apple Lisa came out and introduced the world to the mouse and the GUI Operating System. This was a huge leap forward. I never owned a Lisa or Mac, but eventually started using Windows, a rather pale copy in those days.
Along the way there were quite a few devices that used touch as an input mechanism. But none of them were popular until the iPhone came along. Like GUIs and the mouse, Apple brought this into the mainstream. I have an iPhone 4s and really love it. Using this device is very easy and once used to it, I don’t miss the keyboard from my previous Blackberry at all.
Voice input is finally starting to work properly. Tools like Apple’s Siri are actually starting to be useful. I blogged on this previously here. Certainly people are relying on this in their cars to dial phone and to select music. Even to ask Siri trivia questions as you drive along.
Gesture is still fairly controversial. It’s not clear whether Kinect helps or hinders Xbox. People like the concept but are put off by an always on video camera into their living room. We aren’t quite at the level of Minority Report yet, but we are getting there. I’m not sure what this will do to the cube office environment once this goes mainstream.
Although not really an input device, Virtual Reality and VR Goggles are closely related. In these immersive worlds they combine voice and gesture input with providing an immersive complete visual view. The Oculus Rift was quite popular at CES this year. It will be interesting to see if these can successfully be productized and achieve a mass appeal.
I blogged previously on Google Glasses here. These are fairly controversial. Google is just in the process of releasing these into the mainstream market. It will be interesting to see if they are accepted. They are expensive, and wearers are commonly called glassholes. I’m not sure everyone else likes being filmed all the time, so it will be interesting to see how this evolves.
We are starting to see devices that can interpret and act on the electrical signals generated from the brain. Right now it takes a fair bit of concentration and training to use these, but as these get more refined, how long before we can practically control our computers via thinking? How long before we have a USB port embedding into our neck where we can read USB sticks directly?
We’ve come a long way from punched cards to Google Glasses. We’ve adapted input devices from all sorts of innovative techniques from keyboards to mice to touch to voice to gestures and R&D into new techniques is progressing at a breakneck pace. It will be really amazing what comes out over the next few years. Which experimental technologies go mainstream, which mainstream technologies die out?
I’ve just returned from attending first the Sage Visions 2013 conference in Ho Chi Minh City, Vietnam and then a couple of weeks later the Sage Connect 2013 conference in Sydney Australia. In this blog posting I thought I’d provide a few highlights from these conferences and a few points of interest from my trips.
Ho Chi Minh City
Ho Chi Minh City is a city of 9 million people and 5.5 million motorbikes. There aren’t many traffic lights and traffic tends to be a continuous stream of motorcycles. Crossing the street is an adventure, since traffic never stops and there are never any breaks in the traffic. You have to just start crossing the street walking slowly and steadily, then all the motorbikes just flow around you. This is a bit un-nerving at first, but by the time you are ready to leave, you start to get used to it.
It’s interesting to visit all the historical sites that were famous from the Vietnam war like the Presidential Palace, the CIA headquarters (now an apartment building) and the Chu Chi Tunnel Complex. Generally Ho Chi Minh City is quite in-expensive to visit and has some interesting attractions, it is a very vibrant and bustling city that feels it is moving in the right direction. They are building a subway system that is half finished and are starting to build a bullet train from Ho Chi Minh City to Hanoi.
Below is a picture of yours truly with Ho Chi Minh in front of city hall.
I’ve visited Sydney a few times now, so I find it a relaxing place to visit since I know my way around and I’ve already seen most of the tourist attractions. The Connect conference was held in the InterContinental Hotel which is about a block from the Circular Quay and the Sydney Opera House. Sydney has some great restaurants and things to do. I like jogging along the seawall past the Royal Botanical Gardens and swimming in the Andrew Charlton Pool.
Below is a picture I took out of a helicopter on a tour of the harbor.
In both conferences we presented the current roadmap for Sage 300 ERP. As always with forward looking slides, they are subject to change. The dates in this version are for North America. The release of the various cloud products varies a bit from region to region. For instance in Australia they have had Sage Inventory Advisor for over a year and are just introducing Sage Payment Processing.
The roadmap shows the four main streams that we are working on, namely the Sage 300 ERP core product, the forthcoming Sage 300 Online 1.0, all the connected services and then the Sage 300 Online 2.0.
As we are moving to operate more as a cloud company, we will introducing features into the market quicker. For the Sage 300 Online we will be deploying new features into the cloud as they are ready. Then bundling them up for product updates to release for on premise customers. The arrows for the product updates are just meant to be frequent rather than commitments to specific dates.
Lots of Feedback
As always, it’s great to get lots of feedback on the product from all the partners and customers. I always bring this all back to the R&D and Product Management teams in Vancouver. But remember, everyone can provide feedback at any time using our feedback website at: https://www11.v1ideas.com/Sage300ERP/Accpac. At this site you can see all the suggestions we implemented and those we plan to implement. You can also vote on the suggestions and see which suggestions are getting the most votes.
Both R&D and Product Management watch this list and choose items to implement from the top of the list. So the best way to get changes implemented is to enter them here and get your friends to vote for them.
It was fun demo’ing our various cloud products including Sage 300 Online, Sage Mobile Sales, Sage Billing and Payments and Sage Mobile Service. I only managed to demo one of these at each conference, but they were all well received. The main question being when they would be available in these regions.
There was a lot of interest in Sage 300 Online since a lot of customers are looking for ways to avoid managing their own servers, especially in regions that can be hit by typhoons and other natural disasters. Having someone else install new versions and update data for you is also a big draw. Fortunately there are Microsoft Azure data centers in Singapore, Sydney, Hong Kong and Melbourne to serve these markets.
At the Sage Visions conference the top awards were taken by Thai business partners as growth in Thailand has been on an upswing after a period of suffering the global economic slump, political problems and a major flood. Then the other South Eastern Asian countries are a bit of a mixed bag with some doing ok and some still suffering.
In Australia, they are suffering a bit from a high Australian dollar, but the housing and construction industries seem to be well into a recovery. Partners appear to have had a good year and are hopeful that the global economic downturn is behind them. Their growth is currently running at 2.6% and interest rates seem lower than previously. Their big worry is what is happening in China and what demand will be for their natural resources.
Attending international Sage conferences is always fun. I enjoy meeting up with all the partners in a region and meeting with a number of customers. Providing new information on Sage 300 and getting feedback on the various concerns in these regions. Plus the great opportunity to play corporate tourist and see some parts of the world that I wouldn’t otherwise get a chance to visit (otherwise known as playing in the Amazing Race, Corporate Edition).
Sage Summit is our annual North American partner and customer conference. This year it was held at the Gaylord National Resort and Convention Center in Washington, DC. Sage rolled out many exciting new products, upgrades and services. As a blogger I’m glad that they’ve all now been announced since these will provide articles for months to come and I don’t have to hold back waiting for Sage Summit anymore. Most of the topics mentioned here quickly will be the topic for future much more detailed blog postings.
Pascal Houillon kicked off the opening keynote comparing the Sage journey to mountain climbing. Talking about teamwork and overcoming very daunting obstacles. There was also a lot of mention on progress with building the Sage brand in North America.
Included in the keynote were demos of some of Sage’s new mobile applications, showing people buying things from iPads, being dispatched to perform service work from their iPhone and entering construction time card data on an Android tablet. The best demo was Steve Malmgren demoing voice input on a Windows phone where he could just ask general questions with vague input data and get back meaningful answers. He could ask questions like “What’s the address of American in Milwaukee?” and get back the full company name, its address and go to a map to get directions. It was very impressive and the voice recognition worked really well considering the noisy conditions up on stage.
Then the keynotes broke out into several super-sessions. I attended the super-session on technology which was standing room only. This session outlined all our new technology initiatives and all the things that we were delivering now. These included several mobile native applications along with the announcement of the new Sage 300 Online. A lot of time was invested in explaining how the provisioning and signup processes worked and how ISVs can participate in the new Sage Data Cloud that is the backbone for all the new services.
Sage Mobile Applications
We previewed rough prototypes of a number of mobile applications at last year’s Sage Summit conference. This year we are releasing the real things. The first three mobile applications are Sage Mobile Sales, Sage Billing and Payment and Sage Mobile Service.
Sage Mobile Sales is an iPad native application for sales people, Sage Mobile Service is an iPhone native application for receiving service calls. Sage Billing and Payment is a web application for chasing down people who owe you money. All of these take credit cards for payment via Sage Payment Solutions.
Below are some screen shots to give a flavor of what they look like.
Sage Data Cloud
All these Sage Mobile Applications are connected to the Sage Data Cloud. All the data required for these applications to run, as well as all the transactions they generate go through the Sage Data Cloud. The Sage Data Cloud is hosted in Microsoft Azure and is connected to your on-premise ERP system. Your on-premise ERP uploads to data to the cloud like customer and inventory information and then downloads transactions like orders and invoices. It is the glue that connects your on-premise ERP with the cloud world without requiring you to run a web server or any other special infrastructure.
Currently we have connectors to the Sage Data Cloud for Sage 100 ERP and Sage 300 ERP. With connectors to Sage 50 ERP (US and Canadian) to be available shortly.
Sage 300 Online
Sage 300 Online is our new cloud version. This runs Sage 300 ERP 2014 in the Microsoft Azure cloud. It is integrated with SageID and uses new virtualization technology to being an improved application experience.
The following is the web page that you would launch the Sage 300 ERP 2014 Desktop from or transfer data to/from the cloud.
Sage 300 ERP 2014
Sage 300 ERP 2014 is our new version that will be shipping in a couple of months. This version includes many user interface improvements in the main Desktop along with throughout many application screens. There is much more information on what people are doing in the system, improved visual process flows and a number of other improvements that people have been asking for.
We introduced Sage City last year and have continued it this year due to popular demand. Sage City includes a keynote address for the Sage Customers, it then breaks up into networking/problem solving sessions where like-minded customers get together to jointly solve their problems.
Sage Marketplace Live Expo
Every year there is an exhibition hall which has booths representing all our main ISV partners. All the Sage business applications act as both a platform and a center for a whole ecosystem of products and services. These products range from small but useful utilities all the way up to major applications and all have the goal of seamlessly integrating with various Sage products. Many lunches, breakfasts and dinners were served here so that partners and customers could eat as well as have plenty of time to investigate all the various products that could make their lives easier.
Like any conference, one of the goals is to promote the company and to generate coverage in the press. Besides getting articles written for various publications (mostly online), part of it is generating interest in the social media like Twitter, LinkedIn or Facebook. Seeing all the tweets by industry analysts as well as judging sentiment from the attendees by watching the twitter feeds. You can see this by searching for the hashtag #SageSummit. Often the twitter feeds were displayed on large screens for all to see. Plus Twitter is a great way of people to connect and exchange information. There was also a Sage Summit conference mobile application to show the conference agenda as well as allow people to connect and use social media. Plus points were awarded for using the app where people were competing for a prize.
Sage Summit 2013 was another enjoyable conference. It was a great opportunity to meet many partners and customers. To see all the great products our ISV community are working on. To see some products and people from other parts of Sage that I don’t normally interact with. Next year Sage Summit is in Las Vegas at Mandalay Bay on July 27-August 1, 2014.
This past week I had the privilege of attending a Sage Leadership conference that was put on for about 40 of the key Sage North American R&D Leaders. It was held over two days at the Newport Beach Hyatt Hotel. Newport Beach is a beautiful spot with Balboa Island and Back Bay in easy walking distance along with a number of good restaurants. The intent of the conference was to give people a chance to get away from the daily grind of problem solving and routine management to really concentrate on leadership. This is very important at Sage right now as the company is going through a large number of changes to adapt to the fast changing technology/societal landscape that we are now living in.
We had an artist drawing visually what we were doing, so in this blog posting I’ve added a few of her drawings on the relevant topics. They are really quite good and much better than getting an e-mail of PowerPoint presentations.
The conference got off to a rocky start when the group was asked to stand if you could recite the Sage Vision statement and only a couple of people on the executive committee stood. This then led into a discussion about the Sage brand and the Sage Vision.
Just to be clear, the Sage brand isn’t just the Sage logo and the Sage Vision isn’t just some feel good marketing text that we put under the logo on our brochures. These aren’t about marketing at all, they are about defining the company that we want to become. The Sage Vision statement is:
To be recognized as the most valuable supporter of small and medium sized companies by creating greater freedom for them to succeed.
We then spent time breaking apart and analyzing this statement and then ensuring that what we are working on today aligns with this vision. Some of the key parts of this statement are that we will be recognized, that we do provide value in everything we do, it defines our market segment and defines our goal. We want to give our customers freedom from dealing with accounting matters so that they can concentrate on their real business whatever that may be.
After fully drinking the vision cool-aide, we then went about discussing and talking about leadership. A lot of this revolved around being a confident leader. In our ability to inspire our co-workers and to get all the cats moving in the same direction.
We discussed leadership attributes that we at Sage do well, but more importantly we spent more time discussing the leadership attributes that we are lacking and how to develop these.
The diagram then gives a good representation of what was discussed:
Rather than doing a Clint Eastwood and having the customer represented by an empty chair, we actually invited a couple of customers to kick off the second day. We started with a question and answer session to learn about their businesses, to learn about the problems that they are having, about what is working well. Not just for their ERP system but for their whole business in all its aspects.
We were asked to take notes and then when the Q&A was over, the second part was to have our own Shark Tank show. Each table became a team (about five people each) and had 45 minutes to come up with a product idea to pitch to the sharks which in this case were our two visiting customers. They then judged the ideas and awarded a bottle of monopoly money to the team that they wanted to invest in.
This exercise was a lot of fun and was a good exercise of the creative juices. The winning ideas are then going to be fed into our innovation process to see if other customers also think they are good ideas.
It was interesting to watch, since this was entirely developers, that they fell into the same traps that we usually blame Product Management for, namely answering “yes it can” to every question and under pressure on pricing to keep lowing it until it’s a free service.
A primary goal of the conference was to foster more innovation in everything we do. One fun exercise was to have all the tables go off into their own groups and put together a play or skit on a day in the life of someone using technology ten years into the future. I blogged on my vision of ERP in 2020 a couple of years ago here. Certainly my vision of ten years into the future was way more conservative than anything envisioned here. Center stage went to voice interaction and general direct input into the brain. In a way projected where technologies like Siri and Google Now along with Google Glasses will be in ten years.
The key theme is that no one will be keying in ERP transactions anymore. You will just do business by chatting and gesturing, sign contracts by shaking hands and all the debits and credits will happen magically (via technology) in the background.
The conference was a great deal of fun and highly successful. It was good to meet a number of people I’ve only dealt with via e-mail in person finally, as well as a number of people I didn’t know at all. It was good to ensure we are all aligned and working to the same vision and that we are all innovating together toward a common goal of really providing that freedom for our customers to succeed. But more importantly there are a number of things for me to start doing immediately on returning to the office.
There was a discussion on LinkedIn the other day, that was started since the latest version of Sage 100 ERP only allows one copy of itself to be installed on a given computer. Many programs operation this way such as most Microsoft products and other Sage products like Sage 300 ERP. The main reason for this is to avoid confusion for users when they are using integration technologies like COM or .Net. Since then it’s easy to know what you are talking to when you integrate from another program. This is also how the Windows Installer works, so if you want to use this technology then this is what you get.
But the topic came up as to what to do to support multiple customers? The answer given was to use virtualization. We use this fairly extensively here at Sage for Development, QA and Support. This blog posting is to cover a bit more fully our uses of virtualization and some of the things we have discovered along the way.
The Sage 100 and Sage X3 groups use Oracle VirtualBox. This one is nice because it’s open source (Oracle acquired it as part of Sun). I’ve run VMs created with this, but never created one myself or have too much experience with it.
The Sage 300 team uses VMWare. It used to be that you could use the VMWare player for free, but now it is only free for non-commercial use, but at least it’s fairly cheap. Generally you only need the Player and not the Workstation version. One nice feature is the unity feature which does an amazing job of integrating the virtual environment with your desktop environment which is good for demo purposes.
For server based VMs we use VMWare because our experience is that the memory usage is much better than the Microsoft Windows Server versions (but I haven’t played with Windows Server 2012 yet). The MS Server ones tend to force a lot of locked memory and you can’t run as many VMs. Our support department keeps a library of all supported operating systems times all supported versions installed, so if a client problem comes up say running XX version 3 on Windows XP 32-bit, then we boot up the right VM and try to reproduce the customer’s problem.
Generally we find it useful to create a base operating system image like Windows 7 (64-bit) and keep a clean copy that we update every now and then with Windows updates. Then when we want a VM we just get a copy of the base operating system and install what we want on top of it. (We also keep some images of popular operating systems with office and SQL Server as a better starting point). Generally to give a quick way to get running when a need arises.
We used to use MS VirtualPC a lot, but have moved away from it because MS doesn’t seem to be updating it anymore and it doesn’t support 64-bit client operating systems. This one is included with MSDN subscriptions, so it you have one of these, you probably have access to it.
It seems Microsoft is repurposing its VirtualPC software to their XP Mode feature to allow you to run Windows XP only software easily on Windows 7.
Client Operating System Licenses
Generally all the developers at Sage have an MSDN Universal subscriptions so this gives us the licensing to do what we need with the client operating systems. But for most development partners, there is a lot of benefit in having an MSDN subscription yourselves.
One disadvantage of virtual machines in the past has been how large they are (usually around 32Gig). This uses up disk space fast, but with cheap 3TB hard drives, this doesn’t seem to be much of a problem anymore.
I’ve found the main thing you need for good performance in virtual environments is lots of memory. If your computer has 8Gig RAM then you can allocate 4Gig to the VM and still have 4Gig for your base operating system. Even though I find frequently switching back and forth between things in the VM and things in the base operating system can be slow, so I like to work for longer periods in on or the other.
Also quite a few laptops have hardware virtualization support turned off by default, going into the BIOS setup and turning this on can speed up VMs quite a bit.
To me virtualization software is quite amazing. I’m astounded that I can just run Windows 8 or Linux easily on my Windows 7 laptop. I think virtualization software has come a long way and is still progressing quickly. If you haven’t tried it out recently and you need to keep things separated, then you really should try one of these out. It saves a lot of headaches not having to worry about the installation of one thing messing up something else you have installed.
It’s been a long running joke that at the beginning of each year, probably for the last twenty years, someone prognosticates that this will be the year of Linux. Often this is prefaced by the year of the Linux desktop or the year of the Linux server. But somehow in spite of all the hype, most desktops are still Windows as are a good number of servers.
I don’t really want to prognosticate that this will necessarily be the year of anything in particular, but recently it appears that everywhere I turn, I see Linux.
My wife spent November and December in Arizona with her parents who are snowbirds, since I had quite a bit of business travel going on. Since she was there for 2 months she was determined to get her parents on-line. So they could Google things themselves rather than phoning her, so they could e-mail and use Facebook. So off they went and bought a shiny new Lenovo Windows 8 laptop with a touch screen and all the bells and whistles. This turned out to be quite frustrating and they had all sorts of learning and usage problems. The big one being that the touch interface didn’t work well. So they returned it and got a large screen Windows 7 laptop, which my wife thought would be easier since she knew it better and there was no touch stuff. Didn’t go so well. Then they saw an ad for a Telikin PC which was a special purpose PC for seniors with a touch screen as well as a mouse, with special easy to use software which included senior friendly features like large fonts and large graphics.
This actually worked out quite well. They could do e-mails, browse the web, print, upload photos from their camera and use Facebook. They then asked me about recording audio, so I got a freeware program and went to install it. I imagined that the senior friendly software was just a shell over Windows, and I just needed to figure out how to exit that or run a CMD prompt. No luck. I then Googled the computer and to my surprise found out it was powered by Linux! Apparently Linux is making it into the Desktop in a number of special purpose PCs. I then had to point them to a web site that allowed you to make audio recordings and away they went. Further they seem to be able to keep using it now that they are on their own again, since we returned home.
Of course I couldn’t write an article about Linux taking over without mentioning Google’s Android operating system for phones and tablets. Last September, Google announced that 500 million Android devices have now been activated. That’s an amazing number. Basically Android is proving to be the market leader in both smart phones and tablets. Samsung has experienced tremendous growth with their Android devices.
For laptops, Google is promoting their ChromeOS which is a minimal Linux based computer that is more oriented being a web browser. Surprisingly ChromeOS based laptops have topped the Amazon best seller lists for laptops in recent months. These are special purpose devices, but are gaining quite a bit of traction.
Tizen is another open source Linux based smart phone operating system. This is being promoted as even more open than Android. It is being picked up by several Chinese phone manufacturers as well Samsung has announced they will be releasing Tizen based phones. Partly this is in reaction to Google shipping Google branded devices in competition to their hardware partners.
Ubuntu has been a leading Linux distribution that has gained quite a bit of traction on the desktop. It is a full distribution of Linux and not one of the special purpose limited sets. Now Ubuntu is developing a smart phone version of their Linux version. The idea is that when the phone is mobile it runs a limited set of programs in a manner similar to Android or Tizen, but when you dock the phone and it’s connected to a monitor, keyboard and mouse, then you get the full Ubuntu distribution. This way your phone is also your laptop and tablet.
This is rather an interesting idea that the phone is your computing core with all your files and programs on it. Then depending on the hardware, connectivity and power you get the subset that is appropriate for that usage.
The Raspberry Pi is a $25 computer that is oriented to hobbyists. It is based on the ARM CPU and runs Linux. The Raspberry Pi doesn’t even come in a box. But since it just recently went on sale, it’s already sold 1 million units. This has certainly woken up the home hardware hobby industry and I suspect the core design of this will end up in many other devices.
At the recent CES show, there seemed to be a plethora of special purpose Linux based appliances from intelligent fridges to Linux being the operating system for your car. I don’t know how many of these will be successful but it appears that nearly everything is getting a CPU, memory and connectivity. Whether these have any lasting value or are short term gimmicks is yet to be seen.
It seems that Linux has been making inroads slowly in all sorts of places. Now all of a sudden it seems to be everywhere. I think this is a great tribute to what can be accomplished with open source software and how a great many profitable ventures can be based on it.