Sunday, November 20, 2016

Steps Backwards for FOSS Adoption And How To Ensure FOSS Continues To Move Forward

By now the news of Munich Germany, and Brazil possibly deciding to go back to Windows as their desktop solution provider has made its way around. I want to make the following points as to why this is. Despite much speculation as to Microsoft being involved in the politics of this, which they are, its not the main reason, and ultimately it's caused by issues with FOSS software. I will clarify this statements but I first I will list why Munich and Brazil have decided to look into making the switch back.

Both gave the following reasons and I will expand on them further after I point them out.

1. Lack of, or non existent collaboration tools needed for effective work flow in large organizations.
2. Insufficient communication tools, for email, instant messaging, and social networks.
3. Inconsistent desktop experiences and at times changes that interrupt a users work flow.
4. Incompatibility issues with LibreOffice and MS Office, mostly between Calc and Excel.

Okay lets make it clear that neither Munich or Brazil have decided to make the switch yet but they are certainly considering it. With the main issue being collaboration tools and services lets look at how Microsoft really does give a better solution and how FOSS needs to step up to the plate and provide better solutions.

Microsoft does not have a single solution, but instead provides different products that work with each to provide a suite of products and features that can cover the needs of a business or organization as needed. These are;

Exchange Server that can allows both individual and group email accounts
Office Standard, Professional and 365 suites that include Outlook email client
Skype for Business (with VOIP capability)
Dynamics 365 (Not to be confused with Office 365) for social networking solutions
Integrated networking system to support all of the above
Other solutions and features to numerous to list.

FOSS' best collaboration system right now is Kolab and lets be honest it's not nearly as robust as what Microsoft offers. While Microsoft integrates their solutions and services so that they all work together, nearly seamlessly, FOSS requires different applications developed under different projects, often with a singular objective that doesn't include cooperation with other applications for the purpose of integrating with other FOSS business orientated software. While LibreOffice is a great package it lacks in many ways to Microsoft Office, especially in built collaboration features.

While many things in the communications complaint are also fall into collaboration, they are simply a category of their own. Starting with email. I won't be discussing the multiple servers available here, instead in this context I will focus on the three most used clients available in FOSS.

Thunderbird - The most widely used email client in the FOSS world, its popular, functional and with plugins extremely customizable. The major fallback, its very hard to get it to work with an exchange server. Honestly, I'm not sure its even possible anymore. However its also a multi-platform package with versions for Mac, Nix systems (BSD, Linux etcetera.) In all honesty, even though I use it myself, it does have some issues, though recent releases have made massive improvements in functionality. Would I use it as a my main email client in a large scale environment? Probably not, but its well suited to being a personal one. There is a plugin available Thunderbird to allow it to connect with a Kolab server but how functional it is I honestly couldn't tell you.

Kmail / KDE PIM - Okay this is a mixed bag here. No longer plays well with GTK due to the newer Plasma system in KDE. While absolutely a joy to use in KDE it just doesn't play as well with GTK based Desktop Environments. It does have the cleanest, most user friendly interface of the three clients being discussed. However forget about interfacing with an Exchange server. If you are using Kolab its the best client you can use. Kolab was made (literally) for KDE and Kmail is at its best when using a Kolab server.

Kolab also works very well with the Calligra Office suite for KDE. However, Calligra is not compatible with Microsoft Office. While it can read Microsoft Office files, it will not save in Microsoft Office format so it hasn't gotten wide adoption and mostly likely never will. Its really a shame to, as Calligra, KDE PIM and Kolab would be a formidable competitor to Microsoft's products if they did.

On that note Kolab, in and of itself does not provide an email server. Instead, it uses any of a number email server systems available in the FOSS community. While this allows Administrators to select a solution that best fits their needs, it creates a major support challenge.

Evolution - This email client is made for business use. It will work with Exchange's email, calendar scheduling, task management and contact functions. Forget about anything else though, like Enterprise Vault and other Add On options for Outlook. It does however, have the ability to import OSTs and PST files. It should be stated that organizations using Enterprise Vault no longer have PST files, that becomes a major issue in the corporate world as many companies are turning to Enterprise Vault as the email storage compliance option required under the Sarbanes Oxley Act here in the United States. Many countries throughout the world have similar, and sometimes even stricter regulations. While Evolution is still under development its not seen major changes in some time. Its interface is clunky in my opinion but its functionality is still top notch. With that being said, sadly its fallen behind in ability to work in large scale environments because of changes in how email is handled and stored within them.

If your email server is not a Exchange based system that uses additional add ons, then it does very well, but if it is you are using Exchange and require several add ons you are going to experience issues, simply because those additional functions being used are not available to Evolution. This is due to these additional functions are not Microsoft products and are third party instead. Simply stated, because FOSS based Desktops have such a small market share these solution providers will continue to focus on Windows and Apple based systems.

Instant Messaging in FOSS is, at best, a total chaotic mess. This is one of the few things where Microsoft got it right from the very beginning.

When Microsoft first released Lync, now Skype For Business, I was extremely impressed. Initially developed for Intranet communications it worked as intended from the start. Later VOIP function was added and Lync became one of the most powerful office tools. As Microsoft added more features Lync became one of the most powerful collaboration tools available. With virtual whiteboards, meeting rooms (which allowed video from participants) and file sharing with other Lync users, having the option to share with only one, or a selection of participants, and of course all participants. Microsoft has fairly recently purchased Skype and is now merging Lync into Skype, creating Skype For Business. This is actually one of the smartest and most successful solutions from Microsoft and I am amazed that nowhere in FOSS has anyone bothered to develop anything as solution. Linphone is the closest thing out there. While offering many of the same solutions it has limitations as well. Read the Linphone User's Guide for details. Skype For Business works with Exchange for contacts and scheduling meetings. While Linphone has those abilities they don't function in the same way.

Now before I get a bunch of email and comments stating or asking "What about name your favorite FOSS instant messenger client here." we need to be realistic. While Pidgin and other Instant Messenger applications are out there, they just aren't as robust and as capable as Skype For Business is. The VOIP in Skype For Business (which isn't fully supported in Pidgin) is well integrated and works with very few problems. The only thing it really isn't useful for is call centers. Its not built for, and doesn't work well, in that capacity. However, I would not be surprised if Microsoft eventually adds that ability. However, as a centralized business communications solution there is nothing in FOSS that can touch it. Yes that needs to change. Also Skype For Business integrates with Exchange for its contact list. Yeah I don't think Pidgin can do that in the same way. Though it will use all contacts from all the IM services you log into, its really not the same thing as certain functions in Skype For Business don't translate well to Pidgin or any other Instant Messaging client available to FOSS. While I'm at it, I want to mention the face instant messaging has changed considerably since ICQ and Yahoo first introduced it. Pidgin is very much behind the times with that. Most chats are no longer being conducted over a standalone application, instead Facebook chat is handled directly in the web interface on Facebook itself. Yes I know there is a Facebook plugin for Pidgin and if it didn't stop working or wig out every time there was an update to Pidgin, or the plugin itself it would be great. Yes this is a major issue for FOSS.

Inconsistency in desktops stems not from FOSS having so many different Desktop Environments and options. (to compiz, or not to compiz) That is easily mitigated by having the organization select, and enforce the use of, a single Desktop Environment within said organization.

FOSS isn't alone in this. Even Windows can modified in ways that drive support technicians nuts. I should know, right now I am making my living as a Desktop Support Technician. The main difference is, the Windows interface can only be modified so many ways (thankfully) but a FOSS Desktop, thtat's a whole situation altogether. While many things can be done to limit what a user can do to modify their desktop, Administrators often fail to do so. If a user happen to have Elevated rights for whatever reason then all bets are off. (sudo apt-get install ring a bell?) Anybody who has enough knowledge, and the right permissions to do so, can make support a nightmare for technicians. I have actually figured out a solution to this and I am sure its already been implemented somewhere, but the difference is my solution actually has an additional method to keep the above scenario from happening. That however, is for another discussion.

The second part of the third issue is when developers add a major change to the Desktop Environment and it no longer functions exactly the same way or function has been deprecated or the method for using it has radically changed. Trust me users will raise bloody hell when that happens Desktop Support Technicians deal with that a lot. Though its usually not something in Windows but a radical change in a application. In FOSS though features are constantly deprecated, changed and added to every Desktop Environment. While most rarely impact a users workflow, when they do, the poor technician dealing with it will believe Armageddon has arrived.

The last issue is one the community as a whole needs to get on board to resolve. This is an issue with OpenOffice and LibreOffice as a whole. It needs to be said that the Open Document Foundation has made great strides in resolving many of document compatibility issues between LibreOffice and Microsoft Office. The real issue is that they are also trying to get new features added while improving current ones as well. Its a tall order and there is just not enough developers to do all of it. So while its slowly happening, its in small improvements. Even when we get a major release where most of these changes actually take effect, its slow compared to development at Microsoft.

Make no mistake, besides Windows itself, Microsoft Office is the most important software package they develop. So they improve and add features constantly. During the life cycle of whatever version of Office in question these get deployed as updates and service packs for Office. In some cases these include updates to document formatting methods in the XML code Microsoft uses. The Open Document Foundation is then forced to back track to make changes to keep up with these new formatting procedures. Its a vicious cycle really and it slows down the overall development of LibreOffice. Especially when the changes are radical. Not to mention the Open Document Foundation must also make changes when the Open Document standards also get updated. This is why LibreOffice developers stick to the core programs of Base, Calc, Draw, Impress, Math and Writer. Developing other programs like an email client would be a nightmare for them. Yet realistically LibreOffice needs to have more programs added to its list to truly compete with Microsoft Office. I'll discuss that a little later on.

So where should the FOSS begin to address the issues I brought up? Well simply put its time for us to look at building a new collaboration server system, and while Kolab has already laid the groundwork it has two main issues that make it incompatible to this scenario. Its an incomplete system and to KDE centric.

Now I'm not putting Kolab down, it was made for KDE and Calligra, in that capacity its great while providing a solution that is badly needed. However, since we need something that is a lot more inclusive and also works with LibreOffice, as well as other office solutions. As it is right now Kolab would require massive rewrites in the code to meet that need. It does provide a solid foundation to work off of. We also need to look at Microsoft's methodology in server integration. Their modular system actually provides a solid system for deployment and allows for development teams to work on.

If Canonical, Red Hat, SUSE and Google would work together and layout some standards and protocols FOSS developers can build on then a core server package could be developed. Even if they don't the FOSS community could discuss it and come up with them. Either way that has to be done before we can move forward.

The server itself should take a modular approach as well using the following ideas. This is my opinion but I believe this is the best approach;

A core server system that handles all protocols and information transfers between other modules and applications that access them. This will allow for Acentralized information sources and data bases. We can use the latest in data base and server technology as it will be built from the ground up. Improving reliability and compliance for Corporate data storage. The following modules will need to be developed once the core system is ready:

     1.) Email Server, to include;
          a.) Organization Contact management
          b.) Schedule management
          c.) To Do List management
          d.) Web access to email

     2.) Sharepoint like services

     3.) Skype For Business like services

     4.) InfoPath Forms like services

     5.) Corporate Social Networking services

     6.) Cloud Services

These are the core services of Microsoft server systems, not including domain control, which is already well implemented in Samba and *NIX domain control systems. We don't need to reinvent the wheel but we do need to work with them.

Once the core server and the add on modules are developed FOSS can provide the same solutions that Microsoft does and increase our ability to keep and grow the desktop implementation of FOSS desktop systems in corporate and other organizations. Once we solve the collaboration, communication and storage issues with this outline we will have changed, and leveled the playing field. This is, in my opinion, an absolute must to make FOSS a truly viable across the board solution.

The next issue is the client - desktop software. The following chart shows the current status of available software for Microsoft Office, LibreOffice, Calligra and available FOSS applications.

Application Type                                 MS Office                 LibreOffice     Calligra Suite       FOSS Applications
Data Base                                            Access                        Base               Kexi
Desktop Publishing / Page Layout      Publisher                                                                        Scribus, LaTex
Diagrams and Charts                           Visio                                                 Flow                     Dia
Email                                                   Outlook                                            Kmail                    Evolution, Thunderbird
Formula                                                                                  Math
Graphics Design / Editing                                                      Draw             Karbon
Mind Mapping                                                                                             Braindump             VYM, FreeMind
Note Keeping                                      OneNote                                                                         Gnote, Basket, Tomboy
Presentation                                        Power Point                Impress         Stage
Project Management                           Project                                              Plan                       Planner
Spreadsheet                                         Excel                          Calc              Sheets
VOIP / Instant Messaging                  Skype For Business                                                        Linphone
Word Processing                                 Word                          Writer            Words

While FOSS software covers everything Microsoft Office offers, its scattered, chaotic and most certainly not integrated with each other. LibreOffice is the biggest contender for being able to provide office application solutions but it only provides the basic applications needed and doesn't easily work well with outside applications. Calligra provides more applications but since it cannot save a file in Microsoft formats it's not likely to be considered a usable business solution for corporations and government organizations.

Referring to the chart above we need, first and foremost a business class email client that is built on LibreOffice or can interact with LibreOffice applications. While the former is preferred its the latter we will most likely have to focus on. While Thunderbird is a powerful email client its not particularly business orientated. Here I think Evolution provides the best answer. By updating it to a bit more modern interface and expanding its plugins and options. We don't have to reinvent the wheel, so to speak. The only other thing I want added to it is a system tray Icon like Fire Tray gives to Thunderbird. There used to be one but its no longer functional. Nitpicking a bit but I feel that is an important feature.

Linphone has all the features needed to replace Skype For Business. It will need to be able use the shared contacts data base and instant messaging  service our theoretical server will provide and also integrate with LibreOffice and the email client chosen for use. Adding these features may require a fork of Linphone, or we can work with the current developers to get those features added. Like anything else in this list, its fully dependent on whether we can get the various projects involved to collaborate their efforts.

Project management is important for organizations. Good and effective project planning and management software is a vital tool. What has always escaped me is why such applications are not designed to be collaborative, when it makes absolute sense for them to be so. While I'm not sure on this I do believe Calligra Plan does have that ability through Kolab. If anyone does know for sure on this please let me know.

Let me state my reasoning here. First off Let's keep this simple. Projects are huge undertakings in a corporate environment. It simply makes sense that Project Managers and Coordinators should be able to send updates and project completion levels through the software to the master data base file for the project. The top level Project Manager can accept, reject and modify them before they get committed. It allows for more efficiency and saves a lot work in the long run.

So with that in mind we have a couple of issues. None of the GTK based project management applications are in actual active development at the moment. Planner gets minor updates to keep it working but the reality is the only FOSS project management application in steady development is Calligra Plan. While there are several SAaS type Project managers out there and some FOSS based as well being worked on, none are truly compatible to the needs of this undertaking.

However, this gives us a unique opportunity in that Planner can be forked, updated and modified to work with LibreOffice and a data base that plugs in to our core server system, allowing it access to other data base information. Contacts, forms and other documents. So despite its lack of current development I believe Planner is the best option. It can be forked and features added to meet the needs I have already set forth. Like any of the office software it can be stand alone or work with the proposed server.

Okay in the Diagramming category we have Dia. Which is an excellent and robust tool. It's not in the categories of what I would call intuitive or user friendly. It is something that takes time to master. Dia is designed for complex diagrams and charts. You can even create programs with it using UML. That's way more function than the average office suite or general end user needs. So in this case, I say we start from scratch. We certainly can make it compatible with Dia but make it with a friendlier less complex user interface. In general we need to worry about making organizational charts and basic work flow diagrams. Occasionally a flow chart. Nothing overly elaborate or complicated. Dia has some CAD like abilities, which is great for some, but for most its way over the top. I mean I can make an entire schematic diagram with Dia. That's a bit more raw power than an office manager making a organizational chart needs.

In the Desktop  Publishing category FOSS has Scribus and it's an extremely powerful application for page layouts and desktop publishing. While there are other Desktop Publishing applications in FOSS Scribus is the one that can actually perform as well as Microsoft Publisher. It's very user friendly and unlike most other Page Layout applications in FOSS you can edit text with it. However, its a KDE/QT based application and there is no GTK equivalent. So like our diagramming application this is another one that needs to be built from scratch.

Note taking applications abound and all are useful. However OneNote does work in a unique way. This doesn't mean we should expect any note keeping application to look and operate like OneNote does. We do need to improve on how FOSS based note taking applications store, manage and present those notes. Tomboy has a good interface and though Tomboy won't exactly meet the needs of this idea, it doesn't mean we can't create one that has similar look and feel. Again it has to be able to interact with all the other applications, including LibreOffice.

Here is one area where FOSS is a few steps ahead of Microsoft, Mind Mapping. Braindump is included in the Calligra Suite already, with VYM and FreeMind being available.

From Wikipedia: "A mind map is a diagram used to visually organize information. A mind map is hierarchical and shows relationships among pieces of the whole. It is often created around a single concept, drawn as an image in the center of a blank page, to which associated representations of ideas such as images, words and parts of words are added. Major ideas are connected directly to the central concept, and other ideas branch out from those."

Not everyone will use mind mapping tools but they are powerful and allow for following creative flow. When properly used they organize the work flow process from concept to  creation and allow for additional ides to be associated for future updates or related projects.

Now that I have discussed all the Applications not currently available in LibreOffice when compared to Microsoft Office and in one case Calligra Suite what next needs to be considered is the interface appearance. Ideally we want them to have a standardized interface so that the end user experience is improved overall and the learning curve for the entire suite is reduced. Similar look, feel and procedure also brings a more professional polish to the overall suite of proposed applications. Ideally we should use the current interface design of LibreOffice, however if that is not possible we can change the Interface of the LibreOffice applications if need be.

For server side services there are a bevy of FOSS servers to supply the needs listed. The biggest issue is that they work through the core application to unify and allow shared access to shared data bases. One other thing is many Desktop Environments allow their calendars to also utilize calendar data bases like Google Calendar and we to should allow them to access the servers calendar and scheduling data bases as well.

Seriously FOSS is in a position to build and offer the solutions corporations and organizations need, problem is taking the pieces and putting them together. Not looking to reinvent the wheel, just want to see the engine built to turn the wheels we need. Of course it won't happen overnight and many things need to be decided and agreed upon before development can start. (Buy stock in Aspirin now.) However once it gets past committee and the work starts I expect it will move rather quickly. And keep in mind all of the above is nothing more than suggestions on my part. However, if were ever going to get FOSS desktops to be taken as a viable solution versus Windows 7 and 10, its time to get serious and provide a more complete package of applications and services.

The last thing we need to discuss is the state of FOSS Desktops. One of the biggest problems with them is use of experimental features. Gnome 3 and KDE Plasma are prime examples but lets not forget Enlightenment and others as well.

For a list of Desktop Environments and their histories has a good article here that goes into some details of each they list. Though it's certainly not a complete list it does cover the basic different types.

I am not for a single desktop solution for FOSS systems, I am however for the development of a professional looking Desktop Environment more focused on functionality and stability. In other words one that is designed for use in a large organizations, like corporate and government.

While I am no where near a Windows 10 fan, because I know how it works, how it interacts with Microsoft and that its quickly turning every device its installed on into a Software As a Service model for the Operating System itself, there are few things in its arsenal that make total sense.

Mode switching for device types. Windows 10 has three modes, Standard Desktop, Touchscreen and Hybrid. Standard Desktop mode for desktops and laptops that use a standard screen and input devices. (Mouse and keyboard.) Touchscreen mode for tablets and other mobile devices. Hybrid for devices that have touchscreens but also use a keyboard and mouse. The hybrid mode has a lot of options depending on the device itself. While the touchscreen is always on it can switch to tablet mode if the keyboard is removable or like the Lenova Yoga can be folded back. Some devices let you swing the screen 180 degrees so it folds over the keyboard. In any event where Windows knows you won't be using the keyboard it switches to touchscreen mode. If the device is capable of relaying orientation of the screen (and most are now) Windows will automatically switch between portrait and landscape views automatically if configured to do so. Currently, to my knowledge, no FOSS desktop is doing this yet.

FOSS needs a desktop environment developed that focuses on reliability, stability while having features for today's technology and allowing for future technologies. The nice thing is it can be done with currently available Desktop Environments or built from scratch utilizing some of the best features of each. First and foremost a more polished professional icon set really needs to created and many applications need to be brought into Open Desktop compliance so they use that icon set. Easier said than done in some cases, but not impossible.

I'm going to leave this idea list open ended because I know I haven't covered everything. While I targeted the main issues affecting the adoption of FOSS solutions and why we're looking on a setback of those we do have out there. There is always room for improvements and more ideas.

Overall my purpose in writing this was to start the discussion of how we can make FOSS based adoption more appealable to organizations looking for solutions outside of Microsoft. See FOSS already has the solutions available but its not simple to incorporate them into a single cohesive system that shares data and uses a standard interface. However, there is no reason why it can't be developed if we work with those who have the solutions available to come together to make it happen.