<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nicolas de Mauroy</title>
    <description>The latest articles on DEV Community by Nicolas de Mauroy (@openlowcode).</description>
    <link>https://dev.to/openlowcode</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F192545%2Fe63f1b3d-5229-4f99-904b-830be076a5bd.JPG</url>
      <title>DEV Community: Nicolas de Mauroy</title>
      <link>https://dev.to/openlowcode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/openlowcode"/>
    <language>en</language>
    <item>
      <title>My late and enthusiastic discovery of HTML5</title>
      <dc:creator>Nicolas de Mauroy</dc:creator>
      <pubDate>Thu, 15 Dec 2022 06:21:22 +0000</pubDate>
      <link>https://dev.to/openlowcode/my-late-and-enthusiastic-discovery-of-html5-41o1</link>
      <guid>https://dev.to/openlowcode/my-late-and-enthusiastic-discovery-of-html5-41o1</guid>
      <description>&lt;p&gt;I was 23 years old in 2000, and I missed the web revolution. Back then, I loved to write performant C code, nurturing my pointers with love. So I could only be dismissive the poor performance and inelegant design of Internet technologies, most of all Javascript (come on, can a serious language not be compiled ?). I do not like to think about opportunities I missed because of this.&lt;/p&gt;

&lt;p&gt;So in 2010, when I started thinking about designing software on my own, which later turned in the &lt;a href="https://github.com/openlowcode/Open-Lowcode"&gt;Open Lowcode&lt;/a&gt; project, I naturally went for a native client, using java JavaFX technology. I could actually develop what I wanted, but I had two problems.&lt;/p&gt;

&lt;p&gt;First, when I tried to promote my software, nobody was interested by a design using untrendy technology, even if it had some advantages, like stability and performance. &lt;/p&gt;

&lt;p&gt;Also, developing the interface I wanted in JavaFX turned out to be more complex than I thought. I think you can spend a lifetime in the Table widget not getting exactly the result you expect. With the technology now in maintenance mode, there are limited hopes it will get improved.&lt;/p&gt;

&lt;p&gt;So we are now in 2022, and I would like to have a go at developing another 'serious' software in parallel to my &lt;a href="https://store.steampowered.com/app/1620870/Outer_Space_Shack/"&gt;video game project&lt;/a&gt;. I have decided to use the most widespread trending technology this time.&lt;/p&gt;

&lt;p&gt;So I humbly went to &lt;a href="https://www.w3schools.com/html/"&gt;W3C Schools&lt;/a&gt;, and started to learn HTML5 last week-end. I am a few days into it, and long-story short, I completely love it. I can build good looking feature rich screens really easily. Modern browsers have super powerful debugging features. The DOM API in javascript allows to define really rich interactions. I think I can easily build spreadsheet-like features , the holy grail of any enterprise software, from mostly native HTML5 with a few snippets of javascripts here and there.&lt;/p&gt;

&lt;p&gt;Now, I need to figure out the server technology, both for the web server and the storage. I need something easily deployable on big cloud providers, trendy, and having good performance. Any recommendation ?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>Open Lowcode version 1 Released</title>
      <dc:creator>Nicolas de Mauroy</dc:creator>
      <pubDate>Thu, 02 Apr 2020 05:11:26 +0000</pubDate>
      <link>https://dev.to/openlowcode/open-lowcode-version-1-released-5hag</link>
      <guid>https://dev.to/openlowcode/open-lowcode-version-1-released-5hag</guid>
      <description>&lt;p&gt;I am glad to announce that after a few years of effort, &lt;a href="https://github.com/openlowcode/Open-Lowcode"&gt;Open Lowcode&lt;/a&gt; version 1 is released. Open Lowcode is a solution for enterprises and organisations to create good specific apps quickly and cheaply, and run it for years with rock-bottom costs.&lt;/p&gt;

&lt;p&gt;Open Low-code magic sauce boils down to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Full open-source so customers will never experience vendor lock-in&lt;/li&gt;
&lt;li&gt;vertical integration providing performance, simplicity and almost no obsolescence&lt;/li&gt;
&lt;li&gt;All freedom to code the complex last 10%&lt;/li&gt;
&lt;li&gt;Ergonomics for real work, as close as possible from Office suites&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;if you want to know more about the reasonning behind this initiative, please have a look at the &lt;a href="https://openlowcode.com/tech-blog/"&gt;Tech Blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am actively looking for contributors, and highly welcome developers of all skills, especially if you come from an enterprise background. If you are stuck a few days at home in the last weeks, why not come and hack a little bit in a friendly environment ?&lt;/p&gt;

</description>
      <category>java</category>
      <category>lowcode</category>
      <category>enterprise</category>
    </item>
    <item>
      <title>Empower your teams with specific software</title>
      <dc:creator>Nicolas de Mauroy</dc:creator>
      <pubDate>Tue, 03 Dec 2019 21:53:04 +0000</pubDate>
      <link>https://dev.to/openlowcode/empower-your-teams-with-specific-software-1c4l</link>
      <guid>https://dev.to/openlowcode/empower-your-teams-with-specific-software-1c4l</guid>
      <description>&lt;p&gt;Large companies now understand that employee engagement is a key to success. I have seen countless examples of people increasing their productivity significantly when motivated to reach a goal, and feeling part of a team. We are not discussing here marginal improvement, sometimes, the productivity can vary by a factor of 2 or 3.  This certainly comes from working harder. However a different, proactive, attitude has an even greater influence on the final work. &lt;/p&gt;

&lt;h2&gt;
  
  
  Engagement is not just an HR topic
&lt;/h2&gt;

&lt;p&gt;HR departments go at great length to try and improve employee engagement. However, it can only go so far. Indeed, most of the employees experience come from their work tasks, not by the environment setup by HR. When making decisions on the work organization and processes, managers rarely take into account the impact on employees. Many trendy business decisions of the last decade have made work harder and less engaging: outsourcing and externalization, more and more formalized processes that leave no room for people judgment, matrix organizations that diffuse responsibility, to quote just a few. Not surprisingly, on the same period, employee engagement has lowered.&lt;/p&gt;

&lt;h2&gt;
  
  
  Digital is important
&lt;/h2&gt;

&lt;p&gt;One such area is the choice of business software. The automation of business processes promises significant improvements. Building this software can be a collective effort, with all people involved providing suggestions, and the best ones are implemented in the software. Ideally, you even have software flexible enough that you can try ideas, and rollback them after a few years if they end-up not working. &lt;/p&gt;

&lt;p&gt;If teams can have freedom to implement their own digital tools, benefits are two-folds. You are likely to implement the best process possible for your situation, as teams on the field usually know their daily job best. Also, teams will get motivated by this collective effort. The pride that an operational worker will get from having his suggestion implemented is worth ten thousands HR seminars on engagement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frustrations of packaged software
&lt;/h2&gt;

&lt;p&gt;Compared to this solution, the implementation of a packaged COTS solution generates many frustrations. The organization needs to change its processes, not for a business reason, but just to fit with the IT tool. Granted, this tool can provide best practices and powerful features, but, generally, the bottom line is negative. This is easily explained as the ideal process depends on the context, history, and also on an organization culture and size, factors that are almost never taken into account by the one-size fits all packaged software. &lt;/p&gt;

&lt;p&gt;The bottom line is even more negative taking into account the trauma of transition, and the unnecessary disturbances that will come every 3 to 5 years, when the software editor forces an upgrade.&lt;/p&gt;

&lt;h2&gt;
  
  
  The opportunity of low-code
&lt;/h2&gt;

&lt;p&gt;This is where low-code solutions can help. They provide a robust framework. It means your local team can develop scalable software without being high-skilled IT architects. And it also ensures your tool will still work in the years to come. Scalability and long-term resilience used to be the main concerns of the local developments, so you should be safe now.&lt;/p&gt;

&lt;p&gt;Lowcode tools of course provide all the freedom to actually implement what you need. With &lt;a href="https://openlowcode.com/"&gt;Open Lowcode&lt;/a&gt;, you define first your data, and build your application around it. 90% of the application is generated automatically, ensuring development costs are limited. And you have full freedom to develop what you actually need for the last 10% of requirements. The tool is fully open-source, ensuring you will have rock-bottom costs when you application has stabilized. &lt;/p&gt;

</description>
      <category>lowcode</category>
      <category>cto</category>
    </item>
    <item>
      <title>Software Package versus Specific Development</title>
      <dc:creator>Nicolas de Mauroy</dc:creator>
      <pubDate>Sat, 27 Jul 2019 04:58:36 +0000</pubDate>
      <link>https://dev.to/openlowcode/cots-solution-versus-specific-development-58of</link>
      <guid>https://dev.to/openlowcode/cots-solution-versus-specific-development-58of</guid>
      <description>&lt;p&gt;A company requires many IT systems to run its business, and typically spends a few percent of its revenue on building and operating those IT systems. A typical IT system will live for a decade and sometimes much more before being replaced. There are two strategies to deploy an IT system: software package or specific development. The choice will deeply shape the company for the life time of the system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software Package
&lt;/h2&gt;

&lt;p&gt;Software package provides directly a solution for a business process. For instance , an accounting software will provide you directly a solution to register your transactions, create invoices and file tax return. Additionally, software packages allow you, to some extent, to adapt them to your needs, but there is always going to be a limit. Very few packaged software vendors have developed quality plug-in frameworks to allow for extension, something other industries do better: wordpress or many video-games come to mind here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Specific Development
&lt;/h2&gt;

&lt;p&gt;On the other hand, in a specific development, you develop yourself the requested business logic. This is done on top of a generic IT infrastructure that does not know anything about your business process. One such infrastructure is a database that stored safely your data. Fortunately, there are great, stable, and open-source infrastructures for most of the basic technologies you need. In specific development, you implement directly, according to your own rules, the business logic, which is great if you have special needs or constraints.&lt;/p&gt;

&lt;p&gt;However, you also have to implement some infrastructure common to all business systems, such as security and access control, workflows, and application page layout. And this is where low-code platforms, such as &lt;a href="https://openlowcode.com/" rel="noopener noreferrer"&gt;Open Lowcode&lt;/a&gt; can help here, by providing those common bricks ready to assemble, and all flexibility to develop what you need on top (the mortar).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fopenlowcode.com%2Fwp-content%2Fuploads%2F2019%2F07%2Fpackagevsspecificrecipe-1024x1024.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fopenlowcode.com%2Fwp-content%2Fuploads%2F2019%2F07%2Fpackagevsspecificrecipe-1024x1024.jpg" alt="Package vs Specific"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, you have to create a new business system, or replace an old one, and you should choose which way to go, packaged software or specific. This post suggests a method to get to a decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Size and cost of the topic
&lt;/h2&gt;

&lt;p&gt;The first criteria to look at is the cost of developing the system. This should be seen in the context of your company IT budget, a typical few percents of your company revenue (for example, it may be 100M€ for a company with several B€ of revenue), and generally a standard ratio per industry.  Systems are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Huge&lt;/strong&gt; if they represent several years of IT budget.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Big&lt;/strong&gt; if their development and deployment cost represent around 1 year of IT budget
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Small&lt;/strong&gt; if their development and deployment cost represent far less that1 year of IT budget &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is a natural limit to how much you can invest in new systems. You will typically be able to undertake one big project every 3 to 5 years, and several small ones per year.&lt;/p&gt;

&lt;h2&gt;
  
  
  Business Impact
&lt;/h2&gt;

&lt;p&gt;IT systems fall in several categories depending on their business impact, and how standard the requirements are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;strategic&lt;/strong&gt; system is crucial to the competitive position of your company, and this is an area where you expect to be able to innovate. If your company focus is logistics, and you pretend to be the best in the world, you probably want to have your own supply chain software with all your proprietary innovations implemented quickly. &lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;normalized&lt;/strong&gt; system is implementing an enforced standard process. The quintessential standard process is accounting, where there are laws and norms the company absolutely has to follow. Legal standards are not the only one, and there are also industry or scientific standards that are really applied: steel alloys are really standardized across the industry, and their mechanical properties also are. Here, caution should be applied that there are some ISO norms that are more a marketing trick or a hobby than a really applied industry standard, it is always better to ask a few disconnected experts before making a judgment call. &lt;/li&gt;
&lt;li&gt;Many systems do not fall into this category, and are &lt;strong&gt;neither strategic nor normalized&lt;/strong&gt;. However, having good systems can be critical for the productivity of the company. Such systems include word processors and office suite, many industrial systems, HR systems... &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Insights
&lt;/h2&gt;

&lt;p&gt;So, based on those two criteria, it is possible to propose a strategy, considering the following facts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some commercial software is &lt;strong&gt;very expensive while providing little value&lt;/strong&gt;. While, in a perfect market, you would expect relatively simple software price to decrease, and also old technology to commoditize, enterprise software vendors are making a great effort at keeping price high in a market that includes mostly ad-hoc private transactions. So you should systematically challenge or reflect on the value a solution will provide and its cost. Just having the good title is not enough. &lt;/li&gt;
&lt;li&gt;Using commercial software, &lt;strong&gt;you are at the mercy of the editor roadmap&lt;/strong&gt;, and this includes, every few years, having to perform a potentially painful and costly upgrade. Specific software also suffers from obsolescence of the basic technologies used, but this is typically a fraction of the cost of an upgrade of packaged commercial software. To quote one, changing database version is no big deal. &lt;/li&gt;
&lt;li&gt;Extending commercial software to &lt;strong&gt;fit to your requirements is almost always going to be extremely painful&lt;/strong&gt;, as most commercial software does not have stable, powerful and properly documented APIs and customization points. First development is painful, but typically, the pain is felt mostly during an upgrade. Specific development of the same features is relatively easier. &lt;/li&gt;
&lt;li&gt;You are likely &lt;strong&gt;under-estimating the cost of developing new software&lt;/strong&gt;, or adapting existing software. Especially, there is a lot of work to stabilize a piece of software once it has been written, often an extra 30 to 100% of the original estimates. So keeping a working system, or using a widely spread packaged software as it is intended to be used, the stabilization work is already done &lt;/li&gt;
&lt;li&gt;There are some &lt;strong&gt;topics that are just too big for your company to do on its own&lt;/strong&gt;, and the smaller the company, the more there are such topics. This means that, in that case, you just have to make a smart purchasing decision, and go with whatever software exists. This may shape the strategy of your company, and prevent you from innovating in some areas. It is very important, and very rare, that all stakeholders recognize this, and adapt their strategy. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Finally, the decision matrix
&lt;/h2&gt;

&lt;p&gt;So taking all this into account, decisions become quite obvious.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fopenlowcode.com%2Fwp-content%2Fuploads%2F2019%2F07%2Fpackage-vs-specific-1-1024x1024.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fopenlowcode.com%2Fwp-content%2Fuploads%2F2019%2F07%2Fpackage-vs-specific-1-1024x1024.png" alt="Package vs Specific"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You should clearly buy software packages for any big or huge normalized topics. Examples of huge topics include a full accounting and tax suite, probably including payroll. &lt;/li&gt;
&lt;li&gt;You should also procure software packages for any huge topic that is neither strategic nor normalized, as you cannot afford to build your own. One example is a word processor or spreadsheet. As those are huge investments you cannot afford, you should just use an existing product and live with its limitations. &lt;/li&gt;
&lt;li&gt;If you have a need for a huge topic that is also really strategic, you have a problem. Your company considers it worth having a huge investment on this precise topic well beyond the normal IT budget. As an alternative, you create a real partnership with a software vendor to incorporate your requirements. As you will become highly dependent from the supplier, you probably want to limit the partnership to the minimum scope required &lt;/li&gt;
&lt;li&gt;If you have a need for a big or small strategic topic, then, you should definitely go the specific way. This will give you exactly what you want, and you will get more flexibility. &lt;a href="https://openlowcode.com" rel="noopener noreferrer"&gt;Open Lowcode&lt;/a&gt; is a very efficient way to do that
&lt;/li&gt;
&lt;li&gt;For simple normalized topics, and other topics simple or big, both packaged strategies or specific development may make sense. This  includes a big part of the famous ERP system. Companies typically customize their ERP to take into account their specifics. However, many companies do not consider supply chain as a differenciating factor, just something not to fail at.  One approach I could advocate is to get your local development team build a specific  prototype. You could invest 10% of the original development budget and see how far they go. Thus, you will get a good understanding of the complexity of the problem, and how skilled your local team is, a big factor in deciding if going the specific direction is a good decision. With  &lt;a href="https://openlowcode.com" rel="noopener noreferrer"&gt;Open Lowcode&lt;/a&gt;, you need less technical skills as the framework already provides a very good base, and will guide your developers. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  This is not exactly a fair game
&lt;/h2&gt;

&lt;p&gt;While your team develops specific solutions, external vendors sell software package. You will not compare the two approaches in fair conditions. Especially, the specific development solution will lack the powerful, professional, and self-interested advocates from the vendor companies. Whatever happens, they will be happy to get your money. And nobody may ever know that is would have been 3 times cheaper to go to another route. This is even before mentionning the famous "&lt;em&gt;Nobody has ever been fired to choose a big famous vendor&lt;/em&gt;" that will be common in your teams. So, to compensate this bias, you probably want to nudge slightly the decision into the specific development direction, and be the devil’s advocate when the packaged software case will be made. At least, you should run a few &lt;a href="https://openlowcode.com" rel="noopener noreferrer"&gt;hackathons&lt;/a&gt; and see what comes out of it.&lt;/p&gt;

</description>
      <category>architecture</category>
    </item>
    <item>
      <title>Is the web browser optimal for enterprise ?</title>
      <dc:creator>Nicolas de Mauroy</dc:creator>
      <pubDate>Thu, 11 Jul 2019 02:43:17 +0000</pubDate>
      <link>https://dev.to/openlowcode/is-web-client-optimal-for-enterprise-1o4j</link>
      <guid>https://dev.to/openlowcode/is-web-client-optimal-for-enterprise-1o4j</guid>
      <description>&lt;p&gt;Over 20 years building, maintaining and managing enterprise applications, I came to have strong opinions on many topics. To take one, I definitely favor strongly-typed languages, as they will ease maintenance, and allow typial developers to ramp-up faster. Using standard technology with an open-source solutions is also a no-brainer for the enterprise context. You want the application to still run in 10 years, when the current fad will be over, and not pay forever licenses. &lt;/p&gt;

&lt;p&gt;So when I started to build &lt;a href="https://openlowcode.com"&gt;Open Lowcode&lt;/a&gt;, an open-source low-code platform, many choices were obvious. The application would be written in java, and use SQL for persistence. It would use parsimoniously open-source libraries, most of them from Apache. You may find those choices bland, but bland is exactly what is needed here for the rough life of enterprise applications.&lt;/p&gt;

&lt;p&gt;Now, I had to make a decision on the client to use, and this one was the most difficult to take. To be sure, I wanted a thin client: enterprise applications are maintained very frequently, let's say a patch 2 times a month. I do not want to reinstall the client every time. The question was then: should I use the web client, or develop an alternative thin client ?&lt;/p&gt;

&lt;p&gt;Web client seems an obvious choice at first, huge amounts have been invested by internet giants on various frameworks and technologies. Nonetheless, I ended up taking a different route for a variety of reasons.&lt;/p&gt;

&lt;p&gt;I chose to develop a specific thin client (enterprise app) using &lt;a href="https://openjfx.io/"&gt;javafx&lt;/a&gt;. The client displays pages that are made of high-level primitives exactly suited for enterprise purpose. This includes the famous spreadsheet-like interface to manipulate data in table, which is the 'killer widget' of enterprise software. As far as I know, and my research may be incomplete, such widgets are not really available, or very costly to make with web technologies. &lt;/p&gt;

&lt;p&gt;Other benefits include possibility to limit data sent between client and server to a minimum, or to implement ad-hoc security tools when working in a military context. And I expect javafx to be stable in the next decades. One potential drawback is the installation of the software on the client computer, but this is adressed by making the client simple to install, and having an automatic updater.&lt;/p&gt;

&lt;p&gt;Still, this choice is the one I am still hesitating the most about, and I would like to hear your opinion. &lt;/p&gt;

</description>
      <category>java</category>
      <category>javafx</category>
      <category>lowcode</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
