Author Archives: Jean-Pierre FAYOLLE

About Jean-Pierre FAYOLLE

Freelance consultant, blogger.

Happy New Year 2015

Happy New Year to all those who, year after year, contribute to the success of this blog Qualilogy.
2015 new year

Qualilogy2014-2In 2014, around 40 000 visitors, including more than 29 000 unique visitors, came to look at more than 70 000 pages.

I will soon do a review of statistics (by country, themes, etc.), but my PC died before Christmas and I am waiting for the next one to be delivered.

In Spain, the ‘Reyes Magos’ Melchior, Caspar and Balthazar are the ones who bring the gifts (no Santa Claus here), but either they are late for me, or I was not good enough during the past year 🙂

Best wishes for health, happiness and success in 2015

 

SonarQube upgrade

Upgrade SonarQubeIt’s been a long time since I updated my SonarQube environment. Six months or more, I’m still in version 4.2, while the latest version is a 4.5.1 LTS (Long Term Support). Therefore a good candidate for installation.

This article Walking the Tightrope: Balancing Agility and Stability on the blog SonarSource describes the aims and objectives of such a version. This 4.5.1 release not only offers corrections but also many changes and new features.

This is not the first post I write about a SonarQube upgrade, you will find them all together under this part SonarQube – Installation on my blog. This article will be more concise, with referrals to these previous and detailed posts, when needed. Continue reading

3 candles for Qualilogy

Qualiloty Analytics 2014Qualilogy is now 3 years old since last week, as I wrote the first post on November 21, 2011.

10 000 unique visitors in the first year, 36 000 after two years and nearly 100 000 page views. For this third anniversary, the line of the 65 000 visitors was crossed in 90 000 sessions and 165 000 page views.

Again, these numbers from Google Analytics are not absolutely precise, especially as it sometimes has gone on strike on my blog, but in any case, they are not overestimated. Continue reading

Legacy Application – Reengineering with SonarQube

Application Legacy - Réingenierie avec SonarQubeWe defined our reengineering project as rewriting our legacy application in a new language or migrating it to a new technology, as opposed to a refactoring which involves reorganizing the code and to correct certain defects in order to make it more maintainable and reduce its technical debt.

We saw different plans of refactoring more or less ambitious, with the help of SonarQube and the SQALE plugin, from the resolution of the most critical defects to a reduction of the technical debt to a ‘A’ level (SQALE rating ) .

However, for the same Legacy application, is it more interesting to carry out a reengineering project or ‘just’ refactoring?  Continue reading

Legacy Application – Objectives of a reengineering

Application Legacy - Objectifs d'un reengineeringA reengineering does not always mean in everyone’s mind, rewriting our Legacy application into another language generally more recent, but it is nevertheless the option we chose.

When it is ‘only’ about reorganizing the code to make it more maintainable, but without porting it onto a new hardware or software platform – such as migrating a Mainframe Cobol application to a Unix architecture – I prefer to talk of a refactoring.

I remind you that this blog has no academic ambitions, so I will not worry about meticulously exact definitions, which lead most often on quadripilotectomic (1) discussions from specialists who have nothing else to do than gossip on any comma. Continue reading

Legacy Application – Technical debt and ROI of a refactoring

Application Legacy - Techncal Debt et le ROI d'un RefactoringWhen it comes to calculating a ROI, I keep it simple: I assume that we will reduce maintenance costs in an amount equal to the reduction of the technical debt.

It is a hypothesis that can be found simplistic and therefore debatable, but our ambition is not in numbers of an absolute and exact precision – it would be pretentious and unrealistic – but to provide to the management the elements that will facilitate its decision.
And I think that managers prefer a simple and clear hypothesis, even if not completely accurate, rather than a complex formula that is not necessarily more realistic. Continue reading

Legacy Application – Refactoring with the SQALE plugin (II)

LegacyTechDebtRefactoring3As explained in the previous post, we have not customized the SonarQube Quality Profile and the SQALE model for our Legacy application, depending on its context, as it should be.

In fact, I use the results ‘out of the box’ in order to illustrate one possible approach to estimate the cost of refactoring this application, and present some ideas to the project team and management, for further actions – or eventually see them rejected.

In other words, it’s the process that interests us more than the results of our application, at least in the context of these articles.

What can we propose, based on the SQALE plugin? Continue reading

Legacy Application – Refactoring with the SQALE plugin (I)

Application Legacy - Refactoring Technical Debt with the plugin SQALE SonarQubeIn order to estimate the cost of refactoring our Legacy application, I will use the plugin SQALE of SonarQube, more usually employed to measure the technical debt.

We have already presented this plugin with a PL/SQL Legacy application. So just remember that the SQALE plugin is based on the SQALE quality model, and I will also add, on a method to adapt the model by aligning it with various business objectives, the technology or the contexte of the application. Continue reading

Legacy application – Refactoring or reengineering? (VII)

Qualilogy Legacy Application Refactoring ReengineeringWe have seen in the previous post how to use the SonarQube dashboard to estimate the effort of caracterization tests, recommended by Michael Feathers in his book ‘Working Effectively with Legacy Code’.

We categorized the various components of our Legacy application (Microsoft Word 1.1a) in different groups, the simplest functions with Cyclomatic Complexity (CC) of less than 20 points, the complex and very complex functions up to 200 points CC, and finally 6 ‘monster’ components.

We built a formula based on the Cyclomatic Complexity and a readability factor, in order to evaluate the testing effort on each of these groups. Continue reading