Cofomo

0
79

.bmc18-nav,
.bmc18-nav–row,
.bmc18-nav–item {
display: block;
font-family: sans-serif;
line-height: 1em;
}
.bmc18-nav {
margin-bottom: 1em;
}
.bmc18-banner–main {
display: block;
width: 100%;
border-bottom: solid 0.25em #fff;
}
.bmc18-nav–item {
text-align: center;
padding: 0.5em;
font-weight: bold;
text-decoration: none;
background-color: #ec3b9a;
color: #fff;
border-bottom: solid 0.25em #fff;
transition-property: background-color;
transition-duration: 0.2s;
}
.bmc18-nav–item:hover {
background-color: #39b54a;
color: #fff;
}
@media screen and (min-width: 480px) {
.bmc18-nav {
display: table;
width: 100%;
table-layout: fixed;
}
.bmc18-banner–main {
/*border-bottom: solid 0.5em #fff;*/
}
.bmc18-nav–row {
display: table-row;
}
.bmc18-nav–item {
display: table-cell;
vertical-align: middle;
border: solid 0.5em #fff;
}
.bmc18-nav–row > .bmc18-nav–item:first-child {
border-left: 0;
}
.bmc18-nav–row > .bmc18-nav–item:last-child {
border-right: 0;
}
}

When Régis Desjardins acquired Cofomo in 2002, he had a clear aim in mind: to turn the seven-year-old business and technology consulting firm, founded in Montreal by a group of IT specialists, into a major player. In less than two decades, he accomplished just that. What was a 15-person, two-client shop has grown to include more than 2,000 employees and 200 large-business clients, as well as additional offices in Quebec City and Ottawa, and project-based satellites in Chicago and Melbourne, Fla.

Currently, Cofomo sits at the intersection of two sweeping trends—digital transformation and the demand for skilled labour—and has built up two main pillars: talent management, and strategy and technology. On one hand, the company provides businesses with staff to implement digital transformation by developing a plan for talent acquisition, recruiting candidates and implementing workforce management systems, for example. On the other, Cofomo employees help their clients achieve new objectives through the leveraging of technological innovation. That can include evaluating new technologies to gauge their relevance, project management or establishing a cybersecurity strategy.

What ultimately sets the firm apart from competitors is how closely it collaborates with clients (both private and public) to ensure that talent management and digital integration can occur without disrupting daily operations or the advancement of projects.

So how is this accomplished? In a word, agency. Effective top-down communication within Cofomo has always been a priority, but—in a bid to guarantee synchronicity—so has a bottom-up approach. “Everyone is invested with responsibility,” says Desjardins. “Rather than have departments, we have innovation groups. We view each employee and each group as their own small business with their own vision, their own objectives. Our company DNA is anchored in the principle that we don’t control our employees—as long as they have a well-thought-out plan, they have carte blanche to see it through.”

Desjardins provides overarching goals for the innovation groups to achieve, and it’s up to the employees to demonstrate how those benchmarks can be accomplished within their individual ecosystems. Once a plan has been established, teams then see how it can be applied horizontally to ensure a unique offering.

This level of across-the-board accountability is key to Cofomo’s success. Rather than swoop in to save organizations or simply focus on staffing, its model involves active partnership with clients over the long term. In order to engage at that level, Cofomo staffers must have competencies that enable them to fully understand an issue, and that help them guide companies through an evolution. That’s only possible if employees have appropriate training and experience, whether they came into the position with it (many staffers are former IT vice-presidents) or gain it on the job. Capitalizing on internal strengths in digital innovation allows the company to suggest innovative solutions adapted to current realities.

Cofomo has never lost a client, says Desjardins, for the same reasons that Cofomo itself is successful. “We have grown with our clients and employees, and they with us. We improved models of skill acquisition and expertise development in technology, in addition to putting in place practices for talent acquisition that lean heavily on career development and favour retention.”

Ultimately, the company’s slogan, “Partner. Progress,” applies to the needs of employees as much as it does to those of clients. For example, the firm has continued to advance by refining internal processes through the implementation of an applicant tracking system and Power BI (a business analytics and data visualization software). Constant improvement is the objective—while never forgetting the human element at the heart of each initiative.

“I grew up in the Gaspé Peninsula,” says Desjardins. “When you come from a small place, community is very important. And if you’re going to be putting in long hours at work, enjoying the time you spend there is crucial.” Social clubs and holiday parties contribute to healthy morale, he adds, but they aren’t the crux of employee satisfaction. Cofomo focuses on developing a workplace culture centred around teamwork, skills development and mentorship.

According to Desjardins, most of the employees who leave Cofomo end up returning: “Job satisfaction here is tied to making ideas come to life and ensuring that both our employees and our clients are fulfilled over the long term.” The path to success isn’t always smooth, but that’s part of what makes his industry so exciting, he says. “I always tell clients that there will be problems. But I also tell them that we will be actively engaged in solving them. When you work in technology, what sets you apart is your ability to correct anomalies and move forward. Digital culture is a culture of change. It’s better to be imperfect than to remain stuck in the past.”

a.bmc18-actionlink {
display: block;
text-align: center;
padding: .8em;
font-size: 1.2em;
font-family: sans-serif;
color: #fff;
background-color: #EC3B9A;
font-weight: 700;
text-decoration: none;
border-radius: 4px;
transition-property: background-color;
transition-duration: .2s
}

a.bmc18-actionlink:active,
a.bmc18-actionlink:hover {
background-color: #39b54a
}


Even more of Canada’s Best Managed Companies »

// API calls for recent posts to the ‘best-managed-companies’ tag. Grabs five of the given posts at random. NOTE: Post IDs are hard-coded below in `eligiblePosts`
‘use strict’;
var bodyClass = document.getElementsByTagName(‘body’)[0].getAttribute(‘class’);
var container = document.querySelector(‘#dynamicPosts’);
// tag id for ‘best-managed-companies’
// var tagID = 351657;
var postCount = 5;
var exclude = parseInt(( bodyClass.indexOf(‘postid’) >= 0 ? isolateID(bodyClass)[1] : 0));
var eligiblePosts = [1079843,1079845,1079849,1079851,1079853,1079855,1079857,1079859,1079861,1079863,1079865,1079867,1079869,1079873,1079875,1079877,1079879,1079881,1079885,1079887,1079889,1079891,1079893,1079895,1079897,1079899,1079901,1079903,1079905,1079907,1079909,1079911,1079913,1079915,1079917,1079919,1079921,1079925,1079923,1079927,1079929,1079931,1079933,1079935];
var chosenPosts = arrayRandomSubset(eligiblePosts, postCount, exclude); // subset of eligiblePosts, see function below
var endpoint = ‘http://www.canadianbusiness.com/wp-json/wp/v2/posts?’;
endpoint += ‘include=’ + chosenPosts.join(‘,’);
endpoint += ‘&_embed’;

fetch ( endpoint )
.then(function(response){
return response.json();
})
.then( function(data){
postsRender(data);
})
.catch(function( err ){
console.log(err);
});

function postsRender(data){

data.forEach(function(post){
// Define Post Elements
// post container
var thePost = document.createElement(‘div’);
thePost.classList.add(‘row’);
thePost.classList.add(‘bmc18-latest-post’);
// visual holder
var theVisual = document.createElement(‘div’);
theVisual.classList.add(‘col-xs-12’);
theVisual.classList.add(‘col-md-4’);
// visual link
var theImgLink = document.createElement(‘a’);
theImgLink.setAttribute(‘href’, post.link);
theVisual.appendChild(theImgLink);
// text holder
var theText = document.createElement(‘div’);
theText.classList.add(‘col-xs-12’);
theText.classList.add(‘col-md-8’);
theVisual.setAttribute(‘href’, post.link);
// the image
var theImage = document.createElement(‘img’);
theImage.setAttribute(‘src’, post._embedded[‘wp:featuredmedia’][0].source_url);
theImage.setAttribute(‘alt’, post._embedded[‘wp:featuredmedia’][0].alt_text);
theImgLink.appendChild(theImage);
// the headline
var theHed = document.createElement(‘h1’);
theHed.innerHTML = ‘‘ + post.title.rendered + ‘‘;
theText.appendChild(theHed);
// the dek
var theDek = document.createElement(‘div’);
theDek.innerHTML = post.excerpt.rendered;
theText.appendChild(theDek);
// the spacer
var theDivider = document.createElement(‘hr’);
//tack it all together
thePost.appendChild(theVisual);
thePost.appendChild(theText);
container.appendChild(thePost);
container.appendChild(theDivider);
});
}

// return the wordpress postID from the body class
function isolateID( string ){
var pattern = /postid-(d+)?/;
return string.match(pattern);
}

/**
* From a given array, provide a subset
* @param arr — the array from which to read the values
* @param n — the number of results required
* @param excl — a value to exclude from the results
*/

function arrayRandomSubset(arr, n, excl){
let out = [];
// for the specified count, loop over the given array, select values randomly, and add them to the output array, but only if they aren’t already included.
// NOTE: we temporarily increase the length of the loop to output an array of length n + 1. This is so that if there is an `excl` value provided
for ( var i = 0; i < n + 1; i++ ){
// select a random position in the array
let r = parseInt( Math.random() * arr.length );
// if the value at position `r` isn’t already in the output, add it
if ( out.indexOf(arr[r]) < 0 ) {
out.push(arr[r]);
// if the value IS already in the output, decrement the loop to try again.
} else {
i–;
}
}
// if the excluded value is not in the output, just trim to `n` results
if ( out.indexOf(excl) < 0 ) {
return out.splice(0, n);
// if it IS in the output, remove it.
} else {
let e = out.splice(out.indexOf(excl), 1);
return out;
}
}

The post Cofomo appeared first on Canadian Business – Your Source For Business News.

LEAVE A REPLY

Please enter your comment!
Please enter your name here