The 6 key challenges for CIOs in 2019

The Paris Open Source Summit, Europe’s first open-source event, will be held on 5-6 December at the Paris Docks. The 2018 edition, whose Programme President is none other than Pierre Baudracco, BlueMind’s CEO, will highlight the importance of open source in the digital revolution and how its growing impact is transforming many industries. IT businesses are in constant revolution and CIOs play a key role in keeping their companies in the game. We’ve taken stock of the six key challenges awaiting them in the next few months – or years.

1. Rethinking about internal clients

Some IT managers still don’t fully appreciate the importance of giving internal users the same smooth and user-friendly experience with enterprise software as with general public applications. Yet, if employees think that an application isn’t easy to use, they’ll find a way around it. This is known as Shadow IT, i.e. people using IT systems and software without the IT department’s approval. This is a true nightmare and may endanger security, reliability and simply efficiency.

As far as internal tools are concerned, CIOs tend to prefer a range of functionalities rather than ergonomics or user-friendliness. But this shining Swiss army knife-like software, with all its bells and whistles and a thousand-page user guide won’t be used to its full potential if employees are having trouble finding its features.

Although UX and UI – User eXperience and User Interface – are on everyone’s lips during the design of products for outside clients, it is barely on IT people’s radar when it comes to internal clients. Why the sudden interest? The growing use of mobile devices and new web applications have made CIOs more aware of the value of simple and user-friendly UIs. They can see how easy it is for employees to carry out a wide range of processes with a few taps on a smartphone or tablet.

Still, making software user-friendly isn’t just about creating a mobile version. Its entire uses must be reconsidered. One of the key challenges for CIOs in the next few years is to view internal clients as clients in their own right and adapt to fast-changing technologies.

2. Managing change

In addition to providing efficient IT organisation, CIOs must also help employees change how they behave, in particular when it comes to intra and inter-department collaboration.

Technology may facilitate change, but ultimately, successful change comes down to whether employees embrace or reject the change. You may change technologies very quickly with the right circumstances, but changing how employees view their role, the company and its culture doesn’t happen overnight. The time required for mindsets to adapt must be taken into account in your change management plan.

As the Prussian Field Marshall Helmuth von Moltke said in the 19th century: “No battle plan survives contact with the enemy”. This truism equally applies to change management. As your lead your organisation towards change, new and unexpected challenges will crop up.

On the one hand we may be hungry for change, in theory that is, and on the other we are creatures of habit.
Digital requires collaboration across traditional siloes, “But managers and employees tend to resist these changes, putting a damper on digital transformation”, according to a survey by Harvard Business Review quoted in the Wall Street Journal’s CIO Journal. InfoWorld argues that “Now that cloud computing is the new normal, it’s the company culture — not technology — holding back the cloud”.

The success of a change management initiative therefore depends on finding the right balance between the company’s activities and technology. The desire for change is most often driven by the company’s needs, and the CIO is involved in defining objectives to ensure that the proposed solution is realistic and scalable. If operational needs and the technology that supports them are not aligned, the organisation ends up with fragmented information and ill-adapted objectives.
“You need to implement coaching skills, processes and planning while listening to users so that they can embrace the new technologies we bring them.” (Business et Marchés).

3. Towards unified communications

Helping company teams better collaborate will be another big challenge for 2019. Today, 70% of online time is accounted for by smartphones. “Mobility isn’t optional any more. These figures highlight the importance of readjusting communication processes and show a real need for flexibility if you want to stay competitive. As a result, companies must implement comprehensive Unified Communications (UC) systems if they want to ensure their future and stay strong against competition.” (Les Echos, April 2018)

Interfering with how employees interact is often hazardous. Deploying unified communications tools can carry more risks than deploying other enterprise software, as it affects employees’ entrenched habits on their most commonly used tool. Good change management makes more sense than ever: a project’s success can only be assessed based on how the new tools have been appropriated.

Email is the most sensitive application. It is the cornerstone of all businesses: any, even minor, service interruption can bring the company’s activities to a standstill and have serious consequences. All organisations must learn to manage their email efficiently, particularly as bad user practices can have a major impact on productivity.

CIOs and IT managers are best positioned to lead, not only technology adoption, but also the organisational change required to make the most of new technologies.

4. Security and sovereignty: closely connected

You cannot talk about the challenges facing CIOs in 2019 without mentioning security. With massive data breaches regularly reported around the world, saying that it is a priority would be redundant. The true challenge lies in securing data without interfering with company activity or making it difficult to access.
Privacy protection and data hosting laws vary from one country to the next, some being stricter than others. Finding your way through this legal maze is time consuming and requires a certain amount of expertise.

The question of security automatically leads to the question of data sovereignty. Who owns the data, who has access to it? But the notion of sovereignty is going to keep CIOs busy as its scope widens in the next few years. What is at stake is setting themselves free from the domination of American solutions on the digital market.

With the US president chanting “America First” to the west and China making fast progress to the east, France – and more widely Europe – must find a way to impose itself or risk seeing entire industries being completely locked-in. It’s already the case for front-end applications: email, internet browsers, office applications… There are proven alternatives, and CIOs need to step out of the box to integrate them and regain their independence.

Finally, there is also the issue of open-source v. proprietary solutions and the idea – although waning – that data is more secure when it is hidden away — “security by obscurity”. Your CIO may be more comfortable with proprietary software for critical applications, but this mindset is increasingly out-of-date. Email is the perfect example of a critical application – imagine what would happen if it were out for 48 hours! – where open source is being widely accepted and whose security is no longer disputed.

5. The powerful rise of open source

Open-source enterprise solutions are playing an increasingly greater role in how companies and government organisations modernise their IT infrastructure, in particular when migrating to the cloud. Enterprise open-source software has many benefits as it offers companies options and capabilities they would be unable to secure with proprietary software.

In addition, IT departments are never locked into a single supplier’s solution as the capabilities open source offers are ubiquitous and constantly evolving. Open-source solutions make new solutions easy to integrate, allowing IT professionals to improve existing infrastructure more efficiently than if they continued to work with proprietary solution providers.

For many IT managers, this doesn’t make changing over to open-source bricks any less tricky. If there’s no sales contact, who will I turn to if there’s a major breakdown? (source) (source) A reminder about the key role of software publishers: they must offer a truly lasting solution including support, scalable maintenance and a whole array of services. Open-source publishers create value by turning source code into a usable solution for clients.
Open source is unanimously recognised as a formidable driver of digital transformation. Recent news bears witness to its growing significance and how it will likely affect IT departments in the future – re. Microsoft’s acquisition of GitHub and more recently IBM’s takeover of Red Hat which is in fact being dubbed “the most significant technology acquisition of the year”.

6. Innovate all the time

CIOs and IT managers must be the drivers of constant and sound innovation. Coming up with one innovation and resting on their laurels no longer is an option. In today’s environment, you must constantly adapt to change. IT managers are expected to implement platforms that facilitate the fast development of solutions. More than ever, those companies that prove agile will succeed.

CIOs must lay out ambitious and innovative roadmaps quickly. The trick is not to give in to buzzwords or instant attractions while being aware of their environment, being agile and always ready to swivel in a different direction.

Innovating is also about predicting the future compatibility of all the platforms you’re setting up. Open source is a particularly powerful facilitator of innovation in that respect.

“In terms of application development, ‘open source first’ has become the rule for all CIOs. Any new project must rely on this option by default” Alain Voiment, Deputy CTO and Champion for Groupe Société Générale’s open source strategy and VP Major User at Paris Open Source Summit 2017. You can watch his talk here (in French).

One word before we go…

We hope to see you at the Paris Open Source Summit, Europe’s premier open source event, on 5-6 December 2018 to discuss these topics. 5,000 visitors are expected at this year’s edition, with 500 industry professionals addressing the programme’s main themes: Tech / Solutions / Ecosystem.

We are looking forward to unveiling the new version of our email solution. After five years’ work, we are able to offer 100% connector-less Outlook compatibility. By allowing organisations to keep the Outlook client with no loss of functionality or to use other clients such as Thunderbird, the web or mobile devices in a feature-rich, collaborative way, the BlueMind solution offers an open, cheaper European alternative for email and paves the way for an open-source front end.

Find out all about it at our conference talk “Finally, 100% Outlook-compatible open-source email”, Wednesday 5 December from 9.15am. By Sylvain Garcia.

More information and sign-up here.

DevOps and Continuous Integration: a look at BlueMind’s quality approach

The term DevOps is rather recent on the global IT landscape, but it’s already risen to the top among the most effective industry practices. According to the Gartner IT consultancy, in 2015, 25% of 2,000 biggest world corporations were moving towards a DevOps approach. More than a working method, it is above all a cultural change that aims, as its name suggests, to bring development and operations closer together. DevOps has a twofold objective: to speed up update deployment and ensure high quality levels.

Its secret lies in cooperation and sharing: developers and system operations managers work together to provide continuous software delivery. Development cycles are shorter, quality assessed throughout the project and deployments more frequent.
“DevOps is an understood set of practices and cultural values that has been proven to help organizations of all sizes improve their software release cycles, software quality, security, and ability to get rapid feedback on product development.”Puppet Labs, “2017 State of DevOps” report.

BlueMind has chosen to implement a DevOps approach through a process of continuous integration. Let’s have a look at what this entails.

A new paradigm

Traditionally, developers didn’t share their work with the rest of the team and would go off on their own for long periods of time. They’d only integrate code modifications when their work was done. Developers didn’t actually know what the true impact of an update had over the whole application. As a result, issues were only identified down the line and they were difficult to pinpoint, thereby delaying delivery.
As for operations departments, they sometimes had to wait several months for testing and deployment to satisfactorily respond to user needs, which by then had probably changed. Both teams – development and operations — didn’t have the same objectives and therefore didn’t have the same priorities.

On paper, software requirements are clear, set in advance and static. Developers work on the code, and operations teams work on implementing it on the company’s systems. On paper, that is.
In the real world, IT evolves so quickly that it is impossible for project specifications to stay the same throughout. For software publishers, the “project” never ends! Software must be released as quickly as possible, but it must also evolve constantly. Adding new functionalities must as easy as possible and bugs must be identified so that they can be fixed. New features must not disrupt what already exists and take into account all possible configurations and situations. There’s no D-day for product deliveries like in the past.

DevOps practices – including continuous innovation – aim to put an end to the conflict between Dev and Ops – and find a balance between innovation and stability.

DevOps: improved dialogue between teams

The DevOps approach is about setting up an overarching process involving everyone concerned, whatever their initial role. No more isolated and hyper-specialised individuals, development and operations teams work together throughout the entire life cycle of an application, from design and testing to deployment and operation.

Teams share many responsibilities and combine workflows. This limits efficiency losses and saves time.

“At BlueMind, no one is moving forward by themselves. We encourage collaboration and sharing to promote operational efficiency. We have a common objective and a plan – defended by the product or feature owner – we work towards together. The whole team can keep up with projects, ideas and everyone’s stumbling blocks”.

Dominique Eav – Quality Bandmaster at BlueMind

The time spent sharing know-how, ideas and knowledge should largely be made profitable by the efficiency gained in delivery quality, anticipated issues/errors and faster troubleshooting.

Continuous integration

Put simply, integration consists in putting together pieces of code and getting them to work together. This often takes great dedication! Integration often involves multiple projects and environments, each environment involving organising the module concerned differently as well as construction, testing, validation and deployment phases. Continuous integration solves these problems by involving all stakeholders in a project from development to operation.

Continuous integration is the set of practices that allow developers to integrate code changes into a centralised repository regularly, automatically create and run testing sessions, and then deploy build results if all lights are green. This process makes it quicker to detect and fix bugs, helps improve quality and reduce update validation and release time.

Test results history.
For any given test, you can see what’s happening now and in the past. A “failed” on a test that passed before points to a regression

Every time the source code is modified, the result is checked for regressions or defects in the untouched parts of the application. Bugs are identified more quickly and therefore fixed more quickly. Validation and release time are reduced and, obviously, final quality is improved.

“We largely use the principle of pull requests. This mechanism allows developers to share and validate their work whether it’s finished or not. The developer may submit a pull request at any time for review by the people involved. It’s a lot more than mere validation – it’s a genuine discussion about the technical choices for the functionality under review. That way, we make sure that the whole team stays up to date with technical evolutions and choice integrity”

— Dominique Eav Quality Manager at BlueMind.

Dashboard on the build of a (master) branch
This diagram shows the test results for the different build stages and earlier builds

Automation: the cornerstone of continuous integration

Compilation, one-off and operational tests, product validation, performance tests… all are key but time-consuming activities, not to mention susceptible to human error, which is always a possibility. The principle of continuous integration relies on test automation to save time and ensure maximum quality levels.

When a developer writes code, the tool automatically checks that it complies with common rules set for the whole team. This procedure ensures the quality of the newly-written code and its stability over time as it complies with development best practices.

This code analysis tool shows the test coverage on the code. You must seek the highest coverage possible.

BlueMind uses Jenkins to drive its continuous integration chain. This software tests and reports changes made to a large base of code in real time to detect problems quickly.
We use Jenkins to build and test our development branches (features or corrections) whose changes continuously integrate our release branches (3.0, 3.5, 4.0), on all supported Linux distributions (8 for BlueMind 3.5.9). The BlueMind core comprises more than 500 modules and interacts with many AddOns you can find at the Marketplace. These have also been built, tested and deployed through our continuous integration chain and are subject to the same compatibility and quality constraints. More than 3,000 tests are carried out on every build. Such a degree of complexity would be impossible to manage manually! What’s so clever about continuous integration is that tasks automatically run one after the other as we aim for process industrialisation.

“Our approach is consensual and pragmatic. We implement and improve our processes to make our team members’ lives easier, as opposed to complying with an imposed set of project specifications. The resulting automation allows us to be fast and helps potential problems to surface as early as possible. Each brick in our continuous integration chain is a safety belt.”
— Dominique Eav Quality Manager at BlueMind.

This static code analysis tool assesses classes: it measures technical debt, i.e. the time required to fix problems found in some part of the code.

In addition to eliminating tedious tasks, automation makes the deployment process more reliable while increasing delivery frequency. Teams can then concentrate on improving existing features or quality control rather than performing tests manually.

Specific benefits

With continuous integration, development teams save a huge amount of time as each software modification is immediately tested. By compiling code regularly, software modifications that cause trouble are quickly identified. Developers have a quick overview of the regression they’ve caused. Conflicts between the software and the ecosystem it will be operating in are detected early on.
Throughout the development and deployment process, the entire team works very closely towards a common goal: the success of the project as a whole, not just their own part.

When the whole project team is agile, a new functionality or a bug correction can be released quickly – or cancelled as the case may be. A working version of the software is always available and there’s no need to wait for the software to be released to find out whether it works. With BlueMind, we first release new features or software patches internally. This process is called “eating your own dog food“, which means that we are the first ones to use our solution.

On the client side, continuous integration makes deliveries faster with more frequent updates while ensuring the best quality levels possible.

In conclusion

Installing a scheduler like Jenkins isn’t enough to implement continuous integration. One of the Manifesto for Agile Software Development’s statements is that individuals and interactions are valued over processes and tools. A DevOps approach is about involving everyone’s responsibility. The DevOps culture implies adopting a transparent approach based on communication and collaboration between IT/Operations and development teams. It is a great approach for constantly-innovating businesses!

BlueMind was built on these principles from the start to ensure the best quality levels in a complex environment. The agility this gives us enables us to deliver first-class, stable products by industrialising processes between operations and development.

BlueMind manages your email signatures!

Email signatures are a powerful marketing tool but they can be a source of headaches for businesses as they often rely on end-users to be applied.

Getting instructions through or having them set up on the wide range of tools used – which are increasingly numerous (third-party software, multiple mobile devices, etc.) – means that rolling out email signatures is a true challenge. Updates are rarely or partially applied, making the overall management of the company’s brand image frustrating for marketing and communication departments.

Luckily, BlueMind 3.5.8 is here!

With a new natively-integrated application, BlueMind enables you to manage and unify user signatures and, when needed, apply changes (new logo, new address, etc.) just once.

The application allows advanced signature management:

  • sender-specific: company-wide or group-specific signatures (management, sales, technical, etc.) or signatures excluding specific groups (“everyone except management”)
  • recipient-specific: a simple signature for in-house recipients and a more PR-centred one for outside recipients
  • date-specific: a scheduled and/or temporary signature for one-off communications.

Another key feature of BlueMind’s email signatures is customisation. You can add a signature with a company-wide style but customised with sender details :

In addition to signatures, this new BlueMind application allows you to add a disclaimer to messages. Typically, disclaimers include liability and confidentiality information, but they may also contain legal information, sales slogans, etc. Disclaimer options are deliberately more limited, their purpose simply being to be included in all outgoing messages. The only restriction that may be applied is whether it is included in messages to internal or external users.

With BlueMind, consistent email signature templates will be automatically applied to employee messages with no need for user intervention.

Why is data sovereignty so important?

Time’s up! The much talked-about GDPR is in force and most businesses are frantically trying to get compliant. But with recent scandals involving Facebook, the Swedish Transport Agency, Prism or the earthshattering Ashley Madison hacking, you might be worried about what actually happens to your data when it is sent to the mysterious “cloud”.

Time’s up! The much talked-about GDPR is in force and most businesses are frantically trying to get compliant. The GDPR revolves around three key principles:

  • Express consent: individuals must explicitly consent to the processing of their personal data.
  • Transparency: all information and communications related to personal data must be easily accessible, easy to understand and expressed in plain and simple terms.
  • Responsibility: companies are required to take the necessary steps to comply with the law and must be able to provide proof of said compliance at all times.

But with recent scandals involving Facebook, the Swedish Transport Agency, Prism or the earthshattering Ashley Madison hacking, you might be worried about what actually happens to your data when it is sent to the mysterious “cloud”.

Are GAFAMs true data vacuums?

What the giants Google, Amazon, Facebook, Apple and Microsoft behind this acronym have in common is being American and probably knowing more about you than your own parents. They know all your internet aliases, your location, they know who you like and who you hate. They know what you like to do to relax, what you like to eat, how you spend your week-ends and the kind of clothes you wear. Sometimes, they even know how you vote for in the privacy of the polling booth.

VK18

Of course, there’s confidentiality policies. But are they actually useful? An eye-opening showcase by Dima Yarovinsky entitled “I agree” highlights the length of the terms of service of major US internet platforms (from left to right, WhatsApp, Google, Tinder, Twitter, Facebook, Snapchat and Instagram).

The moral of the story is: no one takes the time to read the small print, everyone just clicks “I agree” within a few seconds and GAFAMs greedily gobble up your information.

What does data sovereignty actually mean?

We’re coming to the – possibly belated — realisation that we need to rely less on non-European internet infrastructure, platforms and access points. The need for us to have a sovereign cloud is acute”. Fleur Pellerin, French government Minister in charge of the digital economy, 2013.

Data sovereignty simply means that digital data is subject to the laws of the country it is found in. Privacy data is governed by national laws, but also by European law, namely the GDPR. This also applies to the data circulating within our borders. When the data leaves Europe, it is subject to foreign national laws.

But did you know that, although US giants have built data centres in France or Europe, according to US law, the American government may use the data held by US companies, regardless of its physical location?

So, what can you do?

First, you can choose a European publisher that hosts its data locally. You can also opt for an open source solution, which ensures transparency and complete control over the software.

BlueMind is French software publisher that offers an open source solution designed to respond to users’ expectations while safekeeping European data sovereignty. How? We offer Outlook (Microsoft) users the same features as Exchange, in particular in terms of collaboration. In a nutshell, you can continue using all the current features of Outlook’s mail solution. You won’t tell the difference, but your data will be where you want it to be, within a controlled process and with no unwanted data processing.

This unique innovation makes BlueMind the only alternative solution to Exchange that offers connector-free Outlook use and with no visible difference to users. But BlueMind also provides advanced support for other mail clients such as Thunderbird or mobile devices.

We therefore offer businesses a cheaper, sovereign alternative that is equally effective as American giants’.

Breaking away from Uncle Sam

Anyone who might be concerned about their communications being intercepted should then use cloud services that do not go through American servers.” Hans-Peter Friedrich, German Interior Minister, 2013.

To meet these requirements, IT departments must turn to a sovereign cloud so that data is stored and processed in Europe and complies with both national and supra-national law (GDRP).

Contrary to common belief, France does have the infrastructure, the means and above all the desire to break away from American giants.

Listen to Pierre Baudracco (in French), CEO of BlueMind, on this topic:

 

Suggestion Box – a new approach to deal with new features

Our job as a software publisher is to listen to our users’ expectations and enhance our product to meet them.

Being open source is what makes BlueMind unique. Yet openness can sometimes be detrimental to its development.

As a result of our product’s success, we’ve had enormous amounts technical and functional feedback and we’ve had to organise ourselves in order to process it.

Business model

Before moving on to the thick of things, we should explain what our job as a software publisher means, our business model and its impact on our organisation.

As software publishers, we focus on software development, product enhancement and technological partnerships. Our target market isn’t country or business-specific. Today, everyone needs email, and BlueMind responds to this need whether you are an SME or a multinational corporation.

To achieve global coverage, we work with a distribution network made up of partners who implement the projects for our clients and/or set up SAAS platforms.

Our network of partners enables us reach a must greater number of potential clients.

This has two consequences:

  • most clients come through our partners, which means we don’t know all of them
  • our number of clients is going to keep growing

As a result, we must set up a series of tools and methods to collect our clients’ feedback and requests in order to process them as best we can.

Organising Development

In the DevOps sense, as shown in this chart by our Normation colleagues, in the process from application development to production implementation, two parts are involved: BUILD and RUN.

The job of a software publisher is to BUILD, i.e. to take business requirements to create “application binaries”. In the Agile sense, business requirements can take different forms (stories, epics, etc.)

BlueMind’s R&D team has been using agile methods since the product’s early days. This has allowed us to develop features quickly, within a specific context. A whole series of automations and tests allow us to deliver new versions with new features quickly.

This article looks at the issue of handling large amounts of business requirements: how can we process them and incorporate them into our R&D appropriately?

Managing business requirements

Why manage them? People ask for things and we do them!

If only things were that simple. We’d need endless resources and all requests would have to be consistent, among themselves and with our vision. In the meantime, we have had to sort through requests and select them to feed a roadmap with a set of features that go into a Backlog.

The backlog contains a number of features which have to be sorted through and validated by a Product Owner. The features at the top of the backlog are processed by our R&D team first.

A simple qualification process

We had set up the following simple and comprehensive feature qualification process (as the young Padawans we were!).

  1. Understand the request
  2. Validate or reject the request
  3. Search for duplicates (who knows whether other users may have made the exact – or not so exact – same request!)
  4. Create a story for the backlog
  5. Place it in the backlog according to its priority status set by the Product Owner
  6. Link it to an Epic, if the story is too big

In theory, this process had 6 steps “only”.

This seems straightforward enough, but it becomes infinitely more complicated when you’re dealing with a large inflow of requests (entered by people who must be clients, but whom you don’t know, much less do you know their vocabulary and their expectations which tend to be too vague). As a result, your backlog becomes, well, backlogged. Looking for duplicates can be time consuming when you’re dealing with a hundred features or so.

In our case, requests come from various sources:

  • end clients
  • our partners
  • internally (developers, sales people, pre-sales people, etc.)
  • the software user community

This adds up to huge amounts of people potentially sending feedback and requests.

people

Most people believe that their requirements are generic, but in most cases they aren’t. Requests aren’t always expressed in the most straightforward manner and everyone thinks their feature is indispensable to their everyday software uses!

Our backlog: on hold

As at January 2015, this was our backlog’s status:

  • 140 features not sorted
  • 470 stories in the backlog

Among these stories:

  • some were important (implementation of a major, structuring feature)
  • others were less important (e.g. evolution of an existing feature)
  • others were small but legitimate (being able to sort by column: feasible, interesting, but high-priority?)
  • others were irrelevant, and possibly clutter (with all due respect to our users “the button would be better in yellow”)

The main issue isn’t so much the flow of feature requests but rather the way they were created and we processed them.

As for all IT projects, we’d set up a bug tracker. In most bug trackers — if not all, as far as we know –, bugs and features are essentially processed in the same way (by default). Typically, the request form is almost identical and a drop-down menu allows users to set the request as “issue”, “bug” or “new feature”.

7-differences

This is where the trouble is: a bug isn’t a feature! They are two distinct processes with different objectives!

Unfortunately, in bug trackers, the difference between a bug and a feature isn’t clear enough.

A feature ends up having the same level of time constraint — and possibly requirement — as a bug, which shouldn’t be the case.

A bug:

  • must have a resolution time-frame and depending on the type of service offered, must follow an SLA
  • must be corrected. It is a fault that must be entered into a correction cycle.
  • a specific workflow must follow its progress (open, pending feedback, corrected, deployed, “won’t fix”, etc.)
  • is critical
  • significantly impacts users, who must be informed of its progress.

A feature:

  • is a request for an enhancement
  • does not have a deadline (contractually)
  • is not critical (contractually)
  • does not require feedback to users
  • can be considered and accepted…  or not

This means that by nature, bugs and features are processed in a dramatically different way.

The Suggestion Boxlogo-sb

This is why we’ve decided to work differently, to reconsider how we handle features completely. First, we won’t call them “new features” or functionalities, from now on we’ll call them suggestions.

As a result of our analysis, we’ve concluded that to optimise how “suggestion requests” are processed, it is important for the requirement to be described as well as possible by the submitters themselves.

This isn’t a technical issue! But how can we get submitters to be more proactive? The vocabulary we use is important, and it is a first step in conditioning users:

  • users will “suggest” rather than “request”!
  • “I want” becomes “I suggest that”, “at some point, I’d like”

This is how the Suggestion Box was created. This dedicated UI is principally designed to browse through existing suggestions.

Credit and discipline

The Suggestion Box must encourage users to ask themselves several questions before they submit their suggestion:

Functional questions:

  • What is the use of my proposed feature and what will it do?
  • What will be its impacts on the BlueMind software as a whole?

Planning questions:

  • Has another user already made this suggestion?
  • Is there a similar existing suggestion?

If a suggestion can be created immediately, it doesn’t encourage users to think about their expectations. Therefore, each requirement turns into a request, with no prior analysis. And it will have to be analysed before the feature is turned into a story (how it is broken down).

This is exactly what used to happen when we allowed the creation of a “new feature” in our bug tracker: “all I have to do is select from a drop-down list and fill in a title”…

We must therefore guide our users through the process, via a suggestion self-service: the Suggestion Box!

Comment

The Suggestion Box was created with the following specifications which are deliberately basic in order to keep the procedure simple:

blueprint-suggestionbox

  • Search

The search is important as the UI’s purpose is to go through existing suggestions. We therefore need a powerful search tool.

  • Suggestion not created if no prior search

To encourage users to search for a similar request, suggestions cannot be created from the home page. A suggestion can be added only if a search doesn’t produce any relevant results.

  • Category

Still in an attempt to get as much information as possible, suggestions must be categorised to help group requests logically and facilitate searches.

  • Votes

Votes are designed to help rank requests. They will help identify the most popular requests.

  • Comments

If a request is similar to an existing suggestion, comments allow users to give another view on the suggestion and provide new arguments rather than create a new one. Adding to existing demands rather than creating a new one is more useful and it allows a suggestion to collect more votes.

  • No status

The point is to allow suggestions to evolve with the community of users and let them become more specific, better-defined and respond to the expectations of as many people as possible. Anyone can add a comment and enhance their vision at any time. BlueMind takes it over at the appropriate time and sets it as “accepted” to draw up the final specifications and carry out the suggestion.

How does BlueMind use the Suggestion Box?

Designing a software RoadMap is a publisher’s job. The Suggestion Box is a component that contributes to the RoadMap among many others. The Suggestion Box is not the absolute basis for the RoadMap, but it will serve to complement the feedback and planned internal projects.

The number of votes for a suggestion tells us how popular a request is. However, BlueMind may decide not to give priority to a suggestion with a large number of votes and prefer a less popular suggestion.

This is because for technical, planning, consistency or strategic reasons, the Product Owner is the one who makes the final decision on a sprint R&D.

Moreover, “internal” tasks, not requested by users (change in API, development library, etc.) may be given priority in order to plan for the possible development of an advanced feature at a later time.

When we decide to upgrade a component (calendar, administration, contacts, etc.), the Suggestion Box is used to find out our users’ expectations and what improvements can be made given a variety of constraints.

Categorising the Suggestion Box allows us to restrict the analysis of suggestions to the module we have chosen to upgrade.

Bottom line

Two years after the Suggestion Box was launched, feedback is extremely positive.

Today our backlog includes 78 stories broken down into 22 EPIC while previously, we were struggling with 470 stories in backlog and another 170 non-analysed features.

The Suggestion Box includes 224 suggestions, 662 votes have been made  on 134 suggestions. 50 suggestions have been carried out, some with many votes (up to 46), some with fewer votes but that were considered high-priority.

Additional Information

You can find BlueMind’s Suggestion Box at https://community.bluemind.net/suggestions/

Our development is OpenSource and you can find everything you need to know about this project at http://www.suggestion-box.io

The Suggestion Box is the result of a lot of in-house discussion and reflection, in particular with Dominique Eav, our quality manager and developer of the Suggestion Box.

And, as we keep updating the Suggestion Box, you’re welcome to create a suggestion for the Suggestion Box!

Enregistrer

Enregistrer

Integrate your Doodle events to BlueMind effortlessly!

BlueMind v3.5 allows users to create several calendars to organise their activities.

Calendars can be managed manually but they can also come from external calendar sources such as Doodle or Gmail.

Here are 4 common uses for this new feature:

  • Display your Doodle events in your calendar
  • Retrieve your BlueMind availabilities in Doodle applications
  • Display an external calendar in BlueMind without it affecting your availabilities
  • Create a shared calendar with an external calendar feed (e.g. for school holidays)

This article addresses the first two points.

Continue reading “Integrate your Doodle events to BlueMind effortlessly!”

Memorise calendar views with BlueMind!

Congratulations, you’re finally equipped with an innovative mail solution and you’ve convinced your teams, employees and colleagues to use its collaborative features:

  • business calendars are shared,
  • resources (rooms, vehicles, etc.) are now included and can be managed and booked in BlueMind,
  • you’ve created several personal calendars to keep track of your activities (business, official, personal, family) — this is new in version 3.5.

Whether you’re a director, a project manager, an operations manager, an office manager, a personal assistant or a resource manager, BlueMind’s exclusive feature — views — is going to make your life much easier!

You often switch from one calendar view to another, from an overview to your business calendar, and next to your teams’ or your employees’ calendars or those of the resources you manage? With BlueMind, you can use views!

Views are as easy to create as they are to use. Simply save a calendar view as you’ve set it: employees, resources, organisational or personal calendar in daily, weekly, monthly or list view. This view is saved and can be called up in just two clicks!

Here is how you can optimise your activities with BlueMind!

Continue reading “Memorise calendar views with BlueMind!”

Tutorial: writing a BlueMind add-on

So here you are with your shiny BlueMind setup. You’ve heard about our grand architecture plans, extension points, p2 platform, REST API, but you find it hard to get started. Rejoice! This article has been written just for you.

You need to know some java, and be more or less familiar with maven.

Your goal: a dummy scheduled job

Let’s say your BlueMind add-on will be a scheduled job. You can view the BlueMind scheduler as an internal CRON that will execute jobs when planned, which is pretty handy to assist you in administrating your server.

This scheduled job will log some dummy stats – basically what we’ll do is just a placeholder to demonstrate how to glue the REST API bricks together. Doing something more meaningful will be left as an exercise to the reader 🙂

Your scheduled job will list all mobile devices for all users for all domains of your BlueMind server. Just because you can. We’ll call it MobileDevicesListingJob.

A word of caution

Don’t forget that when you’re using the REST API with a BlueMind server, you’re dealing with real users data and it’s pretty easy to make mistakes, since everything you can do in BlueMind can be done using the REST API. There won’t be a confirmation screen like we do in the Administration Console: when in doubt, just don’t. Or better: do your API tests on a sandbox server. We won’t be modifying data in this tutorial, so you should be safe, but you’ve been warned.

Bootstrapping a maven project

If you take a peep into BlueMind internals, it’s OSGi bundles all over the place. Since we want to build a BlueMind add-on, we depend on BlueMind target platform.

This target platform is published as a p2 repository, and you can find it at http://pkg.blue-mind.net/p2/latest/

As the URL implies, this is the latest and greatest BlueMind target platform. It will get updated every time we publish a new BlueMind release – and hopefully upgrading won’t break your work.

We’ll be using Tycho, which makes it easy to build your bundles with maven. Here is the simplest project_structure. Download it and extract it somewhere.

This project is restricted to the bare minimum. I won’t delve into the details of the configuration files since they are not BlueMind specific, but I want to emphasize two points:

  • pom.xml declares where to find the BlueMind target platform
  • plugin.xml declares what extension point we’ll be using, namely scheduledjob_provider, along with the name of our soon-to-be-written java class: org.example.mobiledeviceslistingjob.MobileDevicesListingJob

The rest is just boilerplate configuration.

Alternatively, you could also use our maven archetype to bootstrap your project. Or clone bluemind-samples to find an existing add-on to adapt. There are more than one way to skin a cat. Or a duck. Well…

In the project directory, you can run:

mvn install

Et voilà! You’ve built your project, but it won’t work yet: there’s no code.

Eclipse to the rescue

You may just go ahead and write the java code using your favorite editor, but here is how you’ll do with Eclipse:

  1. Import your maven project into your workspace
  2. Tell eclipse about the BlueMind target platform: go to Preferences, search for “Target Platform”, and add a new target platform definition. You need to start with an empty target definition, pick up some name (for instance “BM target platform”), then add the URL above as a new Software Site location:

screenshot-from-2017-03-29-17-43-39

Select all (the “Uncategorized” checkbox in the previous screenshot), click on Finish and you’re done. Careful, you need to select the target platform we’ve just defined before you close the Preferences window.

Setting up the dependencies

We need to declare what parts of the BlueMind target platform we’ll actually use in the MANIFEST.MF. Our REST API online documentation for will help you to cherry-pick the parts you’ll need. If you’ve installed the optional bm-docs package and given the Api docs permission to your user, this documentation should be available right in the BlueMind UI:

screenshot-from-2017-03-30-09-36-52

Icing on the cake: this inline documentation is interactive, so you can execute calls using the javascript client. Beware, the previous caution notes also apply! (the harm you’ll be able to do depends on your logged-in user’s rights)

The BlueMind source code is also be a good place to find inspiration.

Here are the dependencies we’ll need, just add these lines at the end of the MANIFEST.MF:

Require-Bundle: net.bluemind.domain.api,
 net.bluemind.user.api,
 net.bluemind.device.api,
 net.bluemind.scheduledjob.scheduler,
 net.bluemind.core.rest,
 net.bluemind.slf4j
  • net.bluemind.*.api : the REST apis we’ll need to explore domains, users and mobile devices
  • net.bluemind.scheduledjob.scheduler: to make use of the extension point
  • net.bluemind.core.rest: to setup authentication to the REST API
  • net.bluemind.slf4j: logging classes – since we won’t do much more than log some information at the end of the day

Have fun with the REST API

So go ahead and create the class we’ve declared in plugin.xml: org.example.mobiledeviceslistingjob.MobileDevicesListingJob. It has to implement IScheduledJob for scheduledjob_provider to be able to plug it in. Here is the complete code. I will only include here the actual business logic:

// logger will write in bm core logs (/var/log/bm/core.log)
logger.info("Executing MobileDevicesListingJob");
// sched will write in the execution report, that you can send by mail in the Job setup UI
sched.info(slot, "en", "Collecting mobile devices data for all users...\n");
// write header row for the data to come
sched.info(slot, "en", "device; isWipe; lastSync; user; domain");
// initialize client for domain service
IDomains domainService = ServerSideServiceProvider.getProvider(SecurityContext.SYSTEM)
    .instance(IDomains.class);
// loop on all domains
domainService.all().stream().forEach(domain -> {
  // initialize client for user service
  IUser userService = ServerSideServiceProvider.getProvider(SecurityContext.SYSTEM)
      .instance(IUser.class, domain.uid);
  // loop on all users
  userService.allUids().stream().forEach(userUID -> {
    // grab full details for user
    ItemValue<User> user = userService.getComplete(userUID);				
    // initialize device service for each user
    try {
      IDevice deviceService = ServerSideServiceProvider.getProvider(SecurityContext.SYSTEM)
          .instance(IDevice.class, userUID);
      // loop on all devices
      deviceService.list().values.stream().forEach(device -> {
        // collect info for this device
        List<String> deviceInfo = new ArrayList<>();
        deviceInfo.add(device.displayName);
        deviceInfo.add(Boolean.toString(device.value.isWipe));
        deviceInfo.add(device.value.lastSync.toString());
        deviceInfo.add(user.displayName);
        deviceInfo.add(domain.displayName);
        // write a line in the report					
        sched.info(slot, "en", String.join("; ", deviceInfo));
      });;
    } catch (ServerFault exception){
      // Skipping this user since she doesn't have a "device" container
    }
  });
});

 

Deploy to your BlueMind server

You can compile this code with

mvn clean install

Then drop the resulting jar (target/org.example.mobiledeviceslistingjob-1.0.0-SNAPSHOT.jar) in the folder /usr/share/bm-core/extensions of your BlueMind server. Then you can restart bm-core

/etc/init.d/bm-core restart

And your job should appear among the Scheduled Jobs in the Administration console. You can then execute it, schedule it, send the report to your best friend, it’s all yours.

Caveat: if you need to recompile/redeploy your extension, you may need to delete bm-core’s cache to be sure the fresh jar is picked up:

rm -Rf /var/lib/bm-core

Talking REST from the outside world

You’ve noticed we’ve used a ServerSideServiceProvider to initialize the REST API services, but you can of course talk REST from the outside world, for instance by using our python client. You need a BlueMind API key to do so.

Share your work!

Don’t bother sharing your MobileDevicesListingJob, but once you’ve done something useful you may want to share it on BlueMind Marketplace. We’ll be looking forward to your contributions!

BlueMind turns Thunderbird into a true collaborative client!

bluemind-thunderbirdA frequent obstacle to the adoption of an Open Source mail server is the predominance of Outlook as a thick client because Outlook always works differently – and therefore more or less smoothly – with severs other than Exchange… until BlueMind’s soon-to-come innovation which will bring native Outlook support!
This is a matter of user habit, but this is also due to a virtually inexistent offering of good open source, multi-platform email clients (for email and collaboration).

The most popular open source email client is Mozilla’s Thunderbird which runs on Windows, Mac, Linux and others.

But although Thunderbird is a good email client, it is a poor collaborative client. Its calendar feature is provided by an extension – Lightning – which has never been entirely satisfactory for enterprise use (in terms of ergonomics, performance, etc.): users fail to understand having to use two different interfaces with different ergonomics and features depending on how they access it (web or thick client).

BlueMind offers comprehensive, user-driven Thunderbird management, which precisely addresses these issues.

Discover Thunderbird as BlueMind’s natural thick client!

Continue reading “BlueMind turns Thunderbird into a true collaborative client!”