Blog
Insights and Technology
Our story, vision and perspectives on technology, design and business solutions.

Featured Articles

News
5 min read
Announcement : Spiria is certified SOC 2 Type 2
<div><h2>What is the certification SOC 2 ?</h2><p>SOC 2 (Service Organization Control 2) certification is a standard developed by the American Institute of Certified Public Accountants (AICPA) that assesses an organization's ability to manage the risks associated with the security, availability, processing integrity, confidentiality and privacy of the data it processes on behalf of its customers.</p><p>SOC 2 certification is based on five principles, known as trust criteria, which define the minimum requirements an organization must meet to ensure the security and quality of its services. These criteria are as follows:</p><ul> <li><strong>Security</strong>: the organization protects data against unauthorized access, modification, disclosure, damage or loss.</li> <li><strong>Availability</strong>: the organization ensures the availability and continuous operation of its services in accordance with customer agreements.</li> <li><strong>Integrity of processing</strong>: the organization processes data in a complete, valid, accurate, timely and authorized manner.</li> <li><strong>Confidentiality</strong>: the organization respects confidentiality commitments and obligations towards its customers and third parties concerning the data it processes.</li> <li><strong>Privacy protection</strong>: the organization respects the privacy principles defined by the AICPA and the laws in application concerning the collection, use, storage, disclosure and disposal of personal data.</li></ul><p>« Obtaining and maintaining the SOC 2 certification is to me like an ultramarathon, rather than a 100-meter sprint. It's a first step in a long and continuously evolving process. Cybersecurity, as a whole, requires rigour and constant attention to detail, which our team is ready to invest in. »</p><p>– Vincent Huard, Vice President of Data Management and Analytics</p><p>To receive the SOC 2 certification, an organization must undergo an independent audit by a qualified accounting firm to ensure that it complies with the trust criteria applicable to its services. The audit covers the conception and effectiveness of the controls put in place by the organization to ensure compliance with the five trust criteria.</p><h2>What is the difference between SOC 2 Type 1 and Type 2 ?</h2><p>There are two types of SOC 2 certification. Among other things, it is the duration of the audit that distinguishes them. SOC 2 Type 2 is covered by a more extensive and rigorous audit.</p><ul> <li>SOC 2 Type 1 certification attests that the organization complies with trust criteria on a given date. It assesses the conception of controls, but not their effectiveness over time.</li> <li>SOC 2 Type 2 certification attests that the organization meets the trust criteria over a defined period of time, generally from three to twelve months. It assesses not only the conception but also the effectiveness of controls, taking into account their actual use and evolution.</li></ul><p>In other words, SOC 2 Type 2 certification meets more demanding and rigorous criteria, as it involves continuous monitoring and regular verification of controls. It offers greater assurance of the quality and security of the services provided by the organization.</p><h2>What are the benefits for our clients ?</h2><p>By obtaining the SOC 2 Type 2 certification, Spiria reaffirms its position as a trusted partner in the development of digital solutions for its customers.</p><p>Here are some of the main benefits that enable our customers to undertake large-scale projects with peace of mind:</p><ul> <li>The guarantee that we uphold the highest standards of data security.</li> <li>The guarantee that we protect our customers' data against internal and external threats.</li> <li>The confidence that we ensure the availability and performance of our services.</li> <li>The confidence that we are able to react quickly and effectively in the case of an incident.</li> <li>The certainty that we treat your data with integrity, while complying with validation, accuracy, traceability and authorization rules.</li> <li>The peace of mind that we respect your confidentiality obligations and do not disclose your data to unauthorized third parties.</li> <li>The security of knowing that we respect privacy principles and comply with applicable laws on personal data.</li></ul><p>SOC 2 Type 2 certification is a guarantee of trust and security for our clients, testifying to our commitment to delivering quality services and upholding industry best practices. It represents excellence in data security across industries, and is becoming increasingly sought after for software development projects. It was therefore only natural for Spiria to be one of the few expert firms in North America to be certified.</p><p>We are proud to be certified and to guarantee the excellence, reliability and rigor of our business practices.</p><p>Start a project with confidence : <a href="mailto:NewProject@spiria.com">NewProject@spiria.com</a>.</p></div>

Strategy
5 min read
Choosing Between a Time-and-Materials or a Fixed-Price Contract
<div><p>Spiria teams have thorough and extensive experience with both types of projects. In this blog, we’ll share what we have learned on the subject over the years and what criteria contribute to the success of each option.</p><p>But first, let’s go over those two types of projects:</p><h3>Time & Materials projects</h3><p>These are projects whose scope (activities, deliverables, inclusions and exclusions, etc.) are moderately well defined. The initial proposal provides an estimated price range for completing the project, after which costs are billed based on actual hours worked plus the required hardware and resource expenses (such as software licenses or cloud services). This approach is more flexible, as it allows both parties to adjust or change the specifications throughout the development process. This encourages agility and puts an emphasis on project management controls.</p><h3>Fixed-price contracts</h3><p>In contrast, the scope of this kind of project is usually well or very well defined. The initial cost estimate can be stated with confidence because it is based on more reliable information than in the T&M project. As the name suggests, costs are established at the outset, regardless of the actual hours worked and the materials and other resources expenses. Therefore, risk and profitability are critical considerations in opting with this type of contract. Any change to the initial specifications is policed by a change-request process and is billed as additional work.</p><p>Let’s imagine a first scenario in which a project has been previously defined. The client would opt for T&M or Fixed-price, a decision sometimes dictated by the organization’s internal requirements or even by industry regulations. This is often the case with calls-for-tender, which are mostly Fixed-price. Whenever possible, Spiria suggests an approach that leads to a better understanding of the project’s scope, thus mitigating risk. Spiria could recommend that the client invest in an initial discovery phase, whether in T&M or in Fixed-price mode, then propose the actual development and deployment phases as Fixed-cost. This helps the client assess whether it needs to change priorities or modify the scope as a result of the discovery phase. This flexibility allows us to negotiate the defined scope while amending the inclusions/exclusions, in order to remain within the agreed contractual Fixed-cost budget.</p><p style="text-align: center;"><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/process-en.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/process-en.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/process-en.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/11800/process-en.webp" style="width: 60%; border: none;" alt="A Typical Project Cycle." title="A Typical Project Cycle."></source></source></source></picture></p><p style="text-align: center; font-style: italic;">Figure 1. A Typical Project Cycle.</p><p>In a second case where the type of contract is not predetermined, we have more latitude to choose our strategy. A client schedules meetings with various suppliers for a Q&A session, followed by internal discussions to evaluate the factors leading to the best strategy. To help the teams decide, the table below presents a non-exhaustive list of criteria that are quantifiable (easily identifiable and measurable) or qualitative. The answers will depend on the information provided during the initial meetings and in the specifications, and on information obtained by asking the client directly. The symbols in the two right-hand columns suggest ways to weigh the answers relative to the two types of projects.</p><table cellpadding="0" cellspacing="0" style="width:100%"> <tbody> <tr> <td style="width:76%"><strong>Points</strong></td> <td style="width:12%"><strong>Fixed</strong></td> <td style="width:12%"><strong>T&M</strong></td> </tr> <tr> <td>The business plan, requirements, needs and expectations are clear.</td> <td>➕➕</td> <td>➕</td> </tr> <tr> <td>The business rules and processes are numerous and complex.</td> <td>➕</td> <td>➕➕</td> </tr> <tr> <td>The client’s budget is defined and budget planning is set.</td> <td>➕</td> <td>➖</td> </tr> <tr> <td>The schedule is tight or critical due to the client’s circumstances or business context.</td> <td>➕</td> <td>➖</td> </tr> <tr> <td>The required expertise is clearly defined.</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>The organizational and decision-making structure is large and complex.</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>The legal aspects are complex.</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>A past relationship already exists, or a mutual contact recommended us.</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>The risk, uncertainties and contingencies are high.</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>There is a high likelihood of scope-creep.</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>The client has staff or other internal capacity<br> (designer, development team, QA, etc).</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>The technological environment is familiar.</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>There are significant technological constraints (e.g. legacy system).</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>There are many and complex challenges to integrating the solution.</td> <td>➖</td> <td>➕</td> </tr> <tr> <td>The choice of technology is pre-established.</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>Data is available to reliably do quality assurance.</td> <td>➕</td> <td>➕</td> </tr> <tr> <td>The solution is subject to special certifications.</td> <td>➖</td> <td>➕</td> </tr> </tbody></table><p><br>This reflection can lead to different approaches, represented in the following diagram:</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/strategies-en.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/strategies-en.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11800/strategies-en.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/11800/strategies-en.png" style="width: 100%; border-style:solid; border-width:1px;" alt=" Possible strategies or approaches." title=" Possible strategies or approaches."></source></source></source></picture></p><p style="text-align: center; font-style: italic;">Figure 2. Possible strategies or approaches (click to enlarge).</p><p>The strategy selected dictates how the contract agreement is concluded and has implications for the entire life of the project and its final success. The relationship will start out on the right foot if our process is transparent and we can explain our reasoning to the client. Our ultimate objective is to deliver a project that respects our Spirian values and that provides the expected value to the client.</p></div>
All Articles
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Strategy
5 min read
How do I plan my software development project to have the quickest ROI?
<div><p>One important thing to consider before we dive in is “<i>what are you really trying to find out”</i>? There is a difference between a request for a plan, and a need for reassurance – both valid concerns.</p><p>Let’s take a closer look at planning for the quickest ROI.</p><h2>Hold On, Cowboy</h2><p>People love having their questions answered by another question (NOT!). Thus, the first step is to understand: <b>why quickest</b>?</p><p>The following follow-up questions are essential in understanding a prospective client’s objectives and concerns, above and beyond the immediate concerns shared and the three magic letters, ROI:</p><ul> <li>What is an acceptable timeframe for “quickest”?</li> <li>What are you sacrificing by getting quick ROI instead of planning for the medium or longer term?</li> <li>Who are the decision-makers behind the specification for quick ROI, and do you have the buy-in of the people at your company?</li></ul><p>This last question serves to understand whether this objective is something that will help your client company, or the individual representing your client company. Of course, we would prefer the former, but sometimes the latter is necessary in terms of getting the project approved.</p><h2>The Only Constant Is Change</h2><p>While planning for the quickest ROI at the beginning of a project is laudable, you need to determine what <b>factors of change</b> might affect the definition of both “quickest” and “ROI”. It is truly worthwhile to run these factors by your prospective client and see whether the definitions hold or shift. These factors may include:</p><ul> <li>Market</li> <li>Competition</li> <li>Corporate vision</li> <li>Internal pressure/project sponsors</li></ul><h2>Qualify and Quantify</h2><p>When it comes to ROI, you must move away from the term and its implications and challenge your prospective client to define what it truly means. How do you measure “quickest ROI”, and how do you determine whether the goal was achieved?</p><p>First, have your client project <b>the cost of doing nothing</b> over the stated timeframe. In other words, if the prospective client did not go ahead with the software development project, what would it cost them? This can be a direct cost, such as loss of revenue, or an indirect cost, such as loss of employee motivation and performance. For example, employees might be spending a significant part of their day doing tasks that do not leverage the skillset for which they were hired. This would include any time-consuming, manual data entry necessary for doing the data analysis they were hired to do. This can lead to frustration, lower performance and motivation, and lower employee retention.</p><p>Second, concentrate on the last letter of “ROI”: investment. Investment can be high upfront, lowering gradually over time, or it can be somewhat constant. Is the client looking to <b>recoup their investment</b> very quickly after go-live, or are they looking at a gradual return by phase or milestone? This information will help set milestones to measure this metric.</p><p>Finally, we often speak of <b><em>value</em> in software development</b>. This term gets bandied about, but it may mean different things to different roles. A software developer’s idea of value in a given functionality may differ from the client’s main stakeholders’ idea of it, especially if they don’t share the same criteria. A common scale to determine value will go a long way to empowering each member of the team to provide the value needed to reach a good ROI.</p><h2>Let the Experts Be Experts</h2><p>Often, clients describe the solution that they think will solve the problem, instead of describing the problem itself. This can have the perverse effect of channeling your expert onto a given track and validating biases. By describing their problem simply and succinctly, clients gain the advantage of letting the expert visualize a solution from their perspective.</p><p>The same applies to the “quickest ROI” issue. Earlier, we talked about defining and quantifying ROI – these are the guidelines that frame the objective on a macro level. If the objective is properly understood and communicated, and if buy-in is there, the experts can translate the macro objective on a micro level.</p><h2>How to Plan</h2><p>Putting it simply, here are some high-level points to consider when putting together a plan for quickest ROI:</p><ol> <li>Agree on definition of “quickest ROI”</li> <li>Understand reasons behind it</li> <li>Set quantifiable objectives</li> <li>Track and measure</li> <li>Adjust in light of changing factors</li> <li>Communicate</li></ol><p>To put it bluntly: “<i>be on the same page, everyone</i>”. Easier said than done, as business and technology do not always make good bedfellows. A good team – i.e. client and expert firm – shares expertise, maximizes the other partner’s strengths and minimizes their weaknesses. “ROI” may mean little to a software developer who, on the other hand, does care about value; does their definition of value translate to “ROI”, and vice-versa? Perhaps it does, or perhaps you’ll need to do some work to reconcile and map the different perspectives to achieve your common goal.</p></div>

Culture
5 min read
What does a Great Place to Work Canada® look like?
<div><h2>The <i>Great Place to Work Canada<sup>®</sup></i> certification</h2><p>This summer, the organization that issues the <i>Great Place to Work<sup>®</sup></i> certification surveyed our employees anonymously. We are very proud that 97% of Spirians described Spiria as an excellent place to work. This is all the more commendable because the average satisfaction rate in Canada is 60%. Moreover, Spiria earned the additional “Best Workplace for Professional Development” and “Best Workplace in Quebec” certifications.</p><p>Since today is the national celebration of the <i>Great Place to Work<sup>®</sup></i> certification, let’s talk about all the things that make Spiria a healthy and positive work environment according to our teams.</p><p>But before we get into the thick of things, it bears mentioning that management agrees on a key point: <strong>Spiria trusts its employees</strong>. Spiria hires professional, competent people who deserve all the tools they need to grow. This principle is apparent in the many initiatives put in place this year that not only make our jobs more flexible, but that also adapt to the reality of our teams’ lives.</p><h2>“Hours Useful to Get better” unlimited <i>and</i> paid</h2><p>Given all the unforeseens that crop up in our employees’ lives, which then call for unexpected time off, it just made a lot of sense to come up with a new, more flexible solution. To be truthful, making exceptions to the rule in order to accommodate each person had become the new rule, and it was time it was made official.</p><p>The result is HUG –<b> “</b>Hours Useful to Get better” – to which all employees are entitled. This unlimited time off can be used for mental or physical health days, or for a host of serious issues: grieving, dealing with acts of nature such as flooding, forest fires, storm damage, or even chronic pain such as menstruation, the hours are there for the taking.</p><h2>Professional development</h2><p>No matter their professional ambitions, Spiria employees get the support they need to build a multi-year personal-development plan. And with more than 150 people at Spiria, that’s more than 150 development plans in progress! We offer assistance in choosing from among several kinds of training, ranging from mentorship to learning or perfecting a language, and even postsecondary programs.</p><h2>A transparent payscale</h2><p>We are strongly committed to providing a fair and equitable work environment, which can’t be dissociated from remuneration. Obtuse criteria for payscale and for individual remuneration computations inevitably foster suspicions of inequity, but also give rise to a margin of error in a company. The way we see it, salary transparency, as practiced at Spiria, is a mighty weapon to fight systemic inequities, such as the wage gender gap. Statistics Canada figures for 2022 show that women’s average hourly pay is still a sizable 11.1% less than men’s. You can read further on this topic in our blog post, <i><a href="https://www.spiria.com/en/blog/working-environment/spiria-moves-toward-pay-transparency/">Spiria moves toward pay transparency</a></i>.</p><h2>Ritualized habits anchor transparency</h2><p>At each new quarter, our CEO Stéphane Rouleau sets off on a tour of Spiria’s offices that we call Broc ‘n Roll (🥦🎸 — don’t ask 😉). The C-suite presents the past quarter’s results in a totally transparent manner and announces what’s to come. The Buzz is another internal event where everyone is invited to ask the C-Suite anything, even if it’s a sensitive subject, anonymously as needed. These regular meetings play a key role in ensuring transparency at Spiria.</p><h2>Beaming in from everywhere</h2><p>For Spiria, it’s quite simple: we firmly believe that what you do is more important than where you’re doing it. You’re not required to come into the office any more than you’re obligated to stay at home. We all choose to work where we feel our best, no explanation needed. For the sake of a smoother workflow for our teams, international telecommuting is subject to some restrictions.</p><h2>Annual $250 flex allowance</h2><p>Every Spirian gets a yearly $250 Spiri-Flex allowance to cover expenses related to well-being, participation in sports activities, public transit, remote-workplace improvement, and much more besides.</p><p>To sum up, the national <i>Great Place to Work<sup>®</sup></i> certification day was the perfect occasion to celebrate Spiria’s work culture and the stuff its team is made of. We’re already thinking up other initiatives for next year that will make Spiria an even better workplace.</p><p style="text-align: right;">Isabelle Thériault, Vice-President, Culture & Talent</p></div>

Mobile Development
5 min read
What’s New with Progressive Web Applications (PWA) Nowadays?
<div><p>First of all, let’s recall that Google introduced PWAs in 2015, in response to web developers’ needs for a richer and more immersive user experience (UX) that could rival that of native applications. A key feature of PWAs is that the UX remains excellent no matter the quality of the browser, the hardware, or the network connection. The device adapts to the parameters of the hardware and software, hence the term “progressive.”</p><p>Progressive technology relies heavily on <a href="https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API">service workers</a> (SW), which are JavaScript files whose main task is to cache subcomponents so that the app will continue to work offline. Indeed, SWs carry out their tasks asynchronously from the primary script. They also manage background data synchronization, they centralize incoming data from the GPS and the gyroscope, they preload resources that the user will eventually need, etc.</p><p>More experienced Spiria clients often ask us if a PWA could be a cost-saving solution for their <a href="https://www.spiria.com/en/services/purpose-built-development/mobile-application-development/">mobile development needs</a>. As a digital solutions specialist, I am of the opinion that this is certainly a more affordable option than developing two native applications, one each for iOS and Android. Until now, however, we ruled out PWA when developing for the Apple platform because push notifications didn’t exist.</p><p>With this issue addressed, let’s do an overview of its current limitations and possibilities.</p><h2>PWA’s limitations</h2><p>Let’s set the record straight: PWAs were invented by Google. Therefore, they work quite smoothly on Android. That said, here are the three main challenges on both types of mobile platforms.</p><ul> <li><strong>Browser Dependence</strong>: Who says web application, says browser. We are therefore limited by its features -- and its bugs! On iOS, the developer must use Safari's <a href="https://webkit.org">WebKit</a>, which isn't very feature-rich.</li> <li><strong>Resources Access</strong>: A PWA cannot fully access all of the phone's hardware and software. Most important are contacts, calendar and call features (text message intercept, voice calls, sending text messages).</li> <li><strong>JavaScript</strong>: PWA remains, after all, just a web application composed of HTML, CSS and a lot of JavaScript. We’re talking about a single-thread language that doesn’t perform quite like a native application. This has an impact on battery life and on the UX.</li></ul><p>Besides push notifications, which are now resolved, we must mention three more limitations that are specific to iOS and iPadOS:</p><ul> <li><strong>Safari/WebKit specifically</strong>: The only browser permitted to support PWA on iOS, with the limited features and custom bugs this entails. </li> <li><strong>50MB limit</strong>: As long as an Android phone has room, you can install an application no matter its size. An iOS phone, on the other hand, has a 50MB limit for data storage. This precludes a large-scale application and requires the script to be as efficient and optimized as humanly possible.</li> <li><strong>Absent on the App Store</strong>: Installing a PWA is not possible from the App Store, which inhibits brands’ important need for visibility.</li></ul><h2>Advantages of PWA</h2><p>So what are their advantages?</p><ul> <li>Development costs: PWA’s most-touted advantage is its single code base for all platforms, be they mobile devices, tablets, laptops or desktops, which greatly reduces costs.</li> <li>Always up to date: As with all web applications, users do not have to make updates. No customer is ever marooned on an older version.</li> <li>Usage statistics: All marketing and statistical tools are ours for the taking to analyze user data and monitor the life of our application.</li></ul><p>The SWOT analysis (strengths, weaknesses, opportunities, and threats) summarizes all of the above.</p><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11651/swot_en-1.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11651/swot_en-1.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11651/swot_en-1.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/11651/swot_en-1.webp" style="width: 100%; border-style:solid; border-width:1px;" alt="SWOT analysis (strengths, weaknesses, opportunities, and threats)." title="SWOT analysis (strengths, weaknesses, opportunities, and threats)."></source></source></source></picture></p><p>To wrap up, when looking into the suitability of a PWA, we need to answer “yes” to the following: Is the budget limited? Are we dealing with a small application such as an MVP (minimum viable product)? Are there fewer users? Are the desired features straightforward (no calling or photo taking, for example)? All sum told, its application is still quite restricted.</p></div>

Culture
5 min read
Working Remotely? An HR Professional’s Tips for Mental Health
<div><p>Don’t get me wrong, I love working from home. I get to wear sweatpants around the house, I start the dishwasher between two meetings, and I drop by my local farmer’s market to grab my produce basket every Friday. With so many dreamy benefits to working remotely, I can’t imagine ever going back to the office daily.</p><p>And yet … despite the comfort and practicality of working from home (WFH), I’ve found that remote work has a negative effect on my already fragile mental health. I let this go on for quite a while, until I decided to address it as I would for an employee coming to me for help: with empathy, some research, and trial-and-error. Here are a few tips and tricks I’ve come across in this process, highlighting the ones that worked best for me.</p><h3>Don’t skip lunch</h3><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-01.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-01.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-01.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/11594/image-01.webp" style="width: 100%; border-style:solid; border-width:1px;" alt=" " title=" "></source></source></source></picture></p><p>I know, I KNOW you still get e-mails, messages and urgent requests during lunch, especially if your workplace has a flexible schedule like mine.</p><p>Not everyone gets hungry or eats at the same time, so they might not think to wait until after lunch break to send you that message. In fact, no matter whether you eat earlier or later than the usual lunchtime, PLEASE take some time to walk away from your computer, give your body some nourishment and perhaps move around if you can fit it into your break!</p><p>I can’t say I’m infallible at this, and sometimes I compromise because things get too busy. Well, let me tell you, both my body and my mind talk back if I’ve abused their kindness on days when I don’t take a proper lunch break.</p><p>And no, eating in front of your computer, whether you keep working or not, does not count as a real break. You’re still hunched in the same posture and setting in which you spend your entire workday. I can assure you that eight or nine hours in the same position will feel worse than two 4-hour stints.</p><h3>Work-life boundaries</h3><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-02.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-02.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-02.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/11594/image-02.webp" style="width: 100%; border-style:solid; border-width:1px;" alt=" " title=" "></source></source></source></picture></p><p>This one’s tricky because different people do better with different patterns.</p><p>You’ve probably heard it said that you should go for a walk, a bike ride or whatever type of transportation you prefer before and after work to <a href="https://www.cnn.com/2021/01/18/success/fake-commute-meaning-benefits-pandemic-wellness/index.html">simulate a commute</a>. This advice helps you prepare for the workday you’re about to tackle, and helps calm you and process the day’s events on your way out.</p><p>Fortunately, this seems to apply to indoor activities as well, such as meditation, yoga, reading, listening to music or spoken-word entertainment … the list goes on!</p><p>Personally, I’ve started the habit of preparing a nice breakfast and cup of coffee for myself, and having a chat with my boyfriend, reading, or journaling, depending on my mood.</p><p>I’ll admit that I still have to work on the afternoon commute “back from work,” but for now I call it a win when I faceplant into bed or the sofa and just rest a few minutes before tackling any chores, hobbies or other personal tasks.</p><h3>Watch out for presenteeism</h3><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-03.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-03.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-03.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/11594/image-03.webp" style="width: 100%; border-style:solid; border-width:1px;" alt=" " title=" "></source></source></source></picture></p><p>Because I can work in pajamas and occasionally press pause to rest when working from home, I’ve found that I’m much more likely to just *show up* to work even when I’m not feeling well.</p><p>Now, your first thought is probably “Oh great, you don’t have to call in sick as often.” WRONG. Let me introduce you to <a href="https://hbr.org/2004/10/presenteeism-at-work-but-out-of-it"><em>presenteeism</em></a>. This is a concept born from the valiant efforts that companies put forth in the late ’90s and early 2000s to curb absenteeism—reducing employee absence rates. Instead, employees found merit in, and indeed were praised for, “pushing through” their ailments such as cold or flu symptoms, brain fog, mental health struggles, family-related worries, and so on.</p><p>The concept of presenteeism is that you’re <strong>present</strong> but significantly less productive than usual. You know what I mean: you wake up with a migraine but, since you’re home, you decide to “do your best” and (s)log onto your work computer, ready to somehow tackle your tasks. About 45 minutes into it, you snap out of a migraine-induced brain fog, only to realize you’ve been staring at a wall or at the corner of your laptop screen the whole time.</p><p>The lesson here is that though presenteeism might be well regarded at work for some strange reason, not only is it unhealthy, it’s also mostly worthless to your employer and of no help to your workload. If you feel unwell and incapable of working efficiently, call in sick. Of course, this is not to excuse every work impediment, or else your manager might be less likely to trust you next time you need to take a day off.</p><p>In fact, at Spiria, we’re currently conducting a pilot project to allow unlimited time off when employees are sick, struggling with mental health or going through difficult personal situations. We’ve called this project <em>Hours Useful to Get better</em> (AKA HUG—we really love our acronyms, don’t we?). This program aims to offer Spirians even more flexibility and to address presenteeism.</p><p>By now, you might have realized that while the article’s title mentions mental health specifically, the advice offered above touches on all aspects of health. Because to maintain our mental health, we must act holistically. Far from operating in a vacuum, our brain depends on and interacts with our whole body. This brings me to the fourth and final tip:</p><h3>Invest in your health, at home and at work</h3><p><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-04.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-04.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11594/image-04.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/11594/image-04.webp" style="width: 100%; border-style:solid; border-width:1px;" alt=" " title=" "></source></source></source></picture></p><p>If you work from home, you must make sure that your workstation meets <a href="https://www.bu.edu/articles/2020/10-ergonomics-dos-and-donts-for-those-now-working-from-home/">ergonomic guidelines</a>. Some of us are extremely lucky to have a company allowance to improve our WFH setup. If you don’t, please look up these guidelines and strive for a good posture during the workday.</p><p>Similarly, once work is over, invest in your health by choosing nutritious food, practicing joyful movement, and setting healthy boundaries with family and friends when it comes to your mental health needs. Professional support such as therapy or medical advice can be such a game-changer when it comes to your mental health. When in doubt, I highly recommend you consider either!</p><p>Here’s to hoping you learned something or gained inspiration from my little sermon. Go forth and enjoy a healthy and balanced WFH life!</p></div>

Custom Development
5 min read
The seven stages of software development
<div><p> Subject-matter specialists, academics and even companies have successively redefined, regrouped or renamed the stages of development, putting their own stamp on some version of the cycle. What hasn’t changed is that the software development cycle is still a process that brings a software solution to life, from ideation through conceptualisation to final achievement. The software development cycle is not so much a recipe as an organic and agile process capable of adapting to changes, surprises and new requirements.</p><p>Software development companies must educate their clients on their development cycle. They just can’t assume that their clients know what it is, or that it even exists. Our clients and partners are diverse: lone visionaries, seasoned entrepreneurs or well-established companies of all sizes. What they do have in common is that when their path crosses or merges with Spiria’s, it means that they want to see the accomplishment of a project or the fulfillment of their idea. Explaining the cycle to our clients shows them that our work is grounded in a solid process and methodology.</p><p style="text-align: center;"><picture><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11567/phases_dev.400x0.webp" media="(max-width: 599px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11567/phases_dev.760x0.webp" media="(max-width: 999px)"><source type="image/webp" srcset="https://mirror.spiria.com/site/assets/files/11567/phases_dev.1039x0.webp" media="(min-width: 1000px)"><img src="https://mirror.spiria.com/site/assets/files/11567/phases_dev.png" style="width:280px" alt="Planning" title="Planning"></source></source></source></picture></p><p>The literature about the software development cycle is endless, but here is a basic breakdown of the basic stages:</p><h2>1. Planning</h2><p>This initial phase sets the stage for estimating the cost and duration of the project based on a high-level understanding of client needs and objectives. Various aspects of the project are addressed with the client during exploratory meetings and analysis, for example, the client’s business context, their technological transition process, their internal and external users. All this information yields a better understanding of the risks and issues at stake, and a more reliable assessment of the costs and requirements of the project.</p><h2>2. Requirements</h2><p>This stage is another, more advanced version of the Planning stage, with added detail and specifications, to obtain a comprehensive list of needs and objectives. These needs and objectives translate into features that are prioritized by the team in software design and development “sprints”.</p><h2>3. Design and prototyping</h2><p>Once the requirements are defined, the solution architecture can be mapped out. It can take various forms. For example, it can be based on the technological architecture (hardware and software), on the various interfaces that interact with different services or applications, or on data sources. Or, a User Experience (UX) assessment can be used to build wireframes to validate the User Interface (UI), user-friendliness and efficiency of navigation within the software. Various proofs of concept can lead to prototypes, which can be validated and tested on the front-end before tackling the next stage.</p><h2>4. Software Development</h2><p>As the name says, this is the stage when developers code the solution (front-end and back-end) and connect the interfaces to reach defined objectives. Under the Agile methodology, this is an iterative process. Clients can monitor, test and approve the existing, coded and future features. This allows the team to deliver an operational solution based on the needs prioritized in the sprints.</p><h2>5. Testing and quality assurance</h2><p>Throughout the development phase, the solution undergoes various tests to validate its behaviour and features. The teams and the client follow test plans and examine test results. All this takes place in a testing, or “staging” environment, which is a separate environment from the one in which the final solution is deployed. During this phase, there is a constant feedback loop between quality assurance and developers to eliminate problems, or bugs. At implementation time, the deployment phase is already underway.</p><h2>6. Deployment</h2><p>Deployment is the final stage, when software development and testing is complete. At this stage, the solution is migrated to the client environment or to the production environment. Alert and control features are implemented in view of the maintenance phase.</p><h2>7. Maintenance</h2><p>Typically, at this stage, the solution is handed over to a new team. This new team is like a post-implementation customer service team. After a period of software monitoring and stabilisation, the support and maintenance team remains attuned to client requests. Any changes or enhancement requests are addressed based on their scope and the terms of service set out in the Service Level Agreement. If the level of effort of any change requests effectively constitutes a whole new project, the software development cycle can start from the beginning.</p><p style="text-align: right;">Carlo Rossi.</p></div>

Custom Development
5 min read
Software development done right
<div><h3>Defining business goals</h3><p>Do you seek to boost productivity? cut costs? improve customer satisfaction? increase sales? retain clients? Clearly defined business goals will guide the development team in formulating a delivery strategy, prioritizing requests, setting the criteria for success and creating a roadmap for the long-term. Defining your business goals will also make it possible to evaluate the worth of a project’s various components and assess the project’s return on investment (ROI).</p><h3>Drawing up your budget</h3><p>The wider the gap between what you want and what you can spend, the lower the chances of success – and we all know that resources are always scarce. That is why it is important to know a project’s ROI before setting the budget. When funds are scarce but the net ROI of your software project is positive, one option is to seek bank financing. <a href="https://www.spiria.com/en/blog/strategy/how-do-i-plan-my-software-development-project-to-have-the-quickest-roi/">ROI calculations</a> should be automatic for every project: without it, it is impossible to decide whether an investment is worth it. Remember to be as <a href="https://www.spiria.com/en/blog/method-and-best-practices/it-investments-how-avoid-financial-disaster/">realistic</a> as possible when calculating the ROI.</p><p>Ideally, you should have a preliminary budget in hand when you contact your technology partner. Your partner will be able to tell you, very quickly, whether your expectations are realistic or not, based on how much you can invest. Your technology partner may also suggest alternative approaches. If the budget is set in stone, there will be choices to make. Is software that is within budget but only meets 80% of needs acceptable? Only you can decide that.</p><p><img src="https://mirror.spiria.com/site/assets/files/11574/software_development_done_right.svg" style="width:380px;" alt="Spelling out your expectations" title="Spelling out your expectations"></p><h3>Spelling out your expectations</h3><p>Stating your expectations is one of the most critical steps in a software project. There can be no glossing over or jumping to conclusions. Each point should be discussed and analyzed in detail with everyone involved. The goal here is to develop specific and detailed specifications for the application. In “Waterfall” mode, setting things out precisely is of the utmost importance. In “<a href="https://www.spiria.com/en/blog/method-and-best-practices/agile-less-recipes-more-state-of-mind/">Agile</a>” mode, it is the vision of the project that is detailed, which saves time, as goals are not meticulously defined in advance only to fall by the wayside later.</p><p>This is also the step at which you separate the “must have” from the “would be nice”. Expectations are also prioritized according to business goals, to determine what the minimum viable product (MVP) would be.</p><p>Expectations can be set with your technology partner. In fact, it’s a good idea to involve your technology partner at this step, to ensure you share a common understanding as early on in the process as possible, agree on a strategy, and lay the groundwork for the kind of high quality cooperation needed to ensure that the project goes smoothly. </p><h3>Choosing your development partner</h3><p>Price matters, but choosing the lowest bidder is rarely a good idea. Price is only one of the important factors involved in <a href="https://www.spiria.com/en/resources/identify-the-right-software-development-partner/">choosing the right technology partner</a>. Major price gaps between different bids for a given project generally mean that at least one of the bidders does not truly grasp the technical challenges or development work involved. Ask bidders to explain price differences. Do not hesitate to ask specific questions to test the credibility of a bid and to make sure that all bidders really understand what you are asking for.</p><p>You should also make sure that your technology partner shares your values, and that your companies have compatible business cultures. Strong affinity and a common philosophy are the cornerstone of high quality cooperation between your team and your partner’s team. In fact, this compatibility is essential if you want to create a hybrid team that is made up of developers from your company and your technology partner’s company. In this scenario, working with a local team can be a real asset, especially when it comes to good communication.</p><p>Finally, unless you have very specific technical choices in mind, it is recommended that you lean toward an “agnostic” partner, one who will not lock you into a single technology and who will be able to suggest various different solutions.</p><h3>Lump sum or hourly rate</h3><p>Information technology development projects tend to be billed by the hour. If you want to pay a lump sum, your functionality specifications must be perfectly set out to the last detail, and you must plan on making few or no changes down the road. Since uncertainty must be kept to a minimum, make sure your project does not involve new or somewhat experimental technology. Proven, time-tested technology will give you a clearer picture of overall costs.</p><p>Building software is like building a house. If you have sufficiently detailed blueprints, you can make accurate cost estimates from the outset. If you change your mind along the way, you will inevitably incur ‘extra’ costs. However, when it comes to software development, rarely does a project not evolve over time. And the greater the scope of the project, the greater the chance of changes. That is why billing tends to be by the hour. This also prevents potential differences of opinion about what should and should not be covered by the lump sum, which can create tension during project execution. By-the-hour billing is particularly well suited to projects with iterative development cycles, as long as costs are monitored closely.</p><p>There is also a third possibility: a project can have some carefully defined stages that are covered by a lump sum, and other stages that are billed by the hour. This approach makes it possible to nail down part of the budget while leaving room to adapt to any needs that may arise along the way.</p><h3>Identifying constraints and managing risk</h3><p>It is easier to take precautions or choose the right approach when you know what <a href="https://www.spiria.com/en/blog/method-and-best-practices/the-top-three-problems-that-plague-development-projects/">pitfalls to avoid</a>. It is important to have a healthy awareness of a project’s limitations, regardless of their source: be it the people, equipment or technology involved, or the available time and <a href="https://www.spiria.com/en/blog/method-and-best-practices/it-investments-how-avoid-financial-disaster/">money</a>. The biggest constraints are usually created by dependence on external systems, none of which should be overlooked, and all of which must be identified properly.</p><p>Every project has risks. Taking stock of those risks from the outset, as the project is being defined, will help you devise a strategy to mitigate them. Since clients are the experts when it comes to their business, having them present at all key stages of the project is a sure-fire way of avoiding most problems.</p><h3>Choosing iterative development</h3><p>It’s a fact: large-scale software projects evolve constantly during development. In order to carry out such projects successfully, your technology partner will have to keep adapting to changing priorities. Priorities can shift due to external causes such as a changing market or new needs. The project development method must therefore leave room for a pragmatic and flexible approach. Larger-scale projects should ideally be carried out in iterative mode, with deliverables at set intervals. Deliveries should be an opportunity to meet with your technology partner, see how the work is progressing, and check to make sure that your expectations are being met. Obtaining deliverables early on can considerably reduce the risk of ending up with software that does not really meet your needs. Short delivery cycles also enable you to make adjustments immediately, and even change the direction of your project to deal with unforeseen developments.</p><h3>Using best practices</h3><p>If your technological partner uses best practices, your software project will be less likely to fail or to be found lacking. Best practices are a kind of insurance against the inherent risks of the industry. Malfunctions, service interruptions and breaches can carry a heavy price. Higher quality always means better performance.</p><p><strong><i>Putting users first.</i></strong> <a href="/en/services/smart-customer-experience/customer-research/">User experience</a> is vital to the success of your application. Consistent design and intuitive interfaces will give users the results they want, generate greater commitment, and guarantee good uptake of the tool, which will in turn increase productivity and user satisfaction. Best practices include <a href="https://www.spiria.com/en/blog/method-and-best-practices/first-step-creating-user-friendly-software/">keeping the end user in mind</a> throughout the development process.</p><p><strong><i>Controlling technical debt.</i></strong> At the beginning of a project, it can be tempting to sacrifice ironclad code quality to obtain quick deliveries. Non-negotiable delivery deadlines can also force developers to take temporary shortcuts. This creates “<a href="https://www.spiria.com/en/blog/method-and-best-practices/technical-debt-what-it-and-how-control-it/">debt</a>” that will have to be repaid eventually. Like financial debt, the longer you wait to repay technical debt, the bigger it gets. With large-scale projects, it is of the utmost importance to continuously monitor technical debt, and to have a clear strategy to rein it in. A number of different methods can be used to control technical debt, such as having debt-specific Sprints, or devoting some project-development time to continuous improvement, for example.</p><p><strong><i>Focusing on quality…</i></strong> Everyone agrees that identifying a bug during the development process is far less costly than having it appear later, during user acceptance testing or, even worse, at software launch. Continuous integration techniques and proper code review will help identify problems that, if corrected promptly, will save you huge amounts of time, money and energy. You must therefore make sure that your technology partner has all of the standard quality assurance tools required to ensure your project’s success: unit tests, integration tests, <a href="https://www.spiria.com/en/blog/quality-assurance/the-evolving-role-and-skills-related-to-quality-assurance/">continuous integration test</a>s, interface tests, function tests, etc.</p><p><strong><i>And Security.</i></strong> Finally, always keep <a href="https://www.spiria.com/en/blog/method-and-best-practices/10-best-practices-protect-your-companys-digital-security/">security considerations</a> foremost in mind and never try to cheap out on security. Security onboarding at every step of the project is part of overall quality assurance.</p><h3>Handover</h3><p>The successful implementation of a new software solution, and its uptake by users, usually requires training to ensure that the handover goes quickly and smoothly. It is important to make decisions early on about the necessary training, expected user documentation and responsibilities on the part of the development team and everyone else involved. Your technology partner must be able to provide this service. As a rule of thumb, the greater the complexity of the software solution, the more support its users will need, both from people who master the new tool, and in the form of clear documentation.</p><h3>Maintenance</h3><p>Software must be maintained throughout its life. It is important to have a partner that can offer post-launch maintenance and support services. Your technology partner must also be proactive about foreseeable problems, like those caused by a new version of your operating system. It makes sense to plan for maintenance costs from the outset of a project, add them to the software-development costs, and factor them into the ROI calculation.</p></div>

Custom Development
5 min read
What are the lifecycle phases of a software?
<div><p> However, agility in the development of a software solution is key to maximizing its longevity. Companies must be on constant technological watch and adapt their technological plan either to equip their internal teams with the right tools, or to offer software that meets the needs of their clients. In other cases, companies innovate in their approach to the market. The bell-shaped curve often used to depict the lifecycle of things reflects the following phases: Development, Introduction, Growth, Maturity (or stabilisation), Decline. But this shape can be altered to stretch out the Growth or Maturity phases of the solution through technological vision, agility and constant reassessment.</p><p><img src="https://mirror.spiria.com/site/assets/files/11572/phases-integration.svg" style="width:380px" alt="lifecycle phases of a software" title="lifecycle phases of a software"></p><p>Eventually, the curve will go into decline, but companies can be proactive to redesign their software and bounce back, reducing risks for themselves and their clients. Whether you’re enhancing an existing software or starting from scratch, here are some questions you should be asking yourself: </p><ul> <li>Does the solution still meet immediate or imminent needs?</li> <li>When was the last time clients, or their users, were consulted about this solution? </li> <li>What is the competition offering as a more innovative solution?</li> <li>Does the technological platform of the solution (hardware and software architecture, programming language, expertise, etc.) still support potential enhancements?</li> <li>What is the availability of upgrades for peripheral applications connected to the application, or used by the solution (plug-ins, third-party solutions, etc.)? Has there been an end-of-life announcement for their maintenance?</li> <li>Could integration or interface needs with other solutions extend the life of the solution?</li> <li>Etc.<br> </li></ul><p>In short, here are the phases of a software lifecycle:</p><h3>1. Development</h3><p>At this stage, an entrepreneur’s or a visionary’s software idea meets a need, serves a specific market or opens up new opportunities. The entrepreneur or visionary will try to buy the solution off-the-shelf or, better yet, ask a company like Spiria to specifically develop it. The software could serve the internal needs of the company, or those of their clients. The software development cycle is started.</p><h3>2. Introduction</h3><p>This is the beginning of the digital transformation of most clients, users or specific groups. Processes, roles and responsibilities must be reassessed pre-deployment to support the success of the new software. In a competitive market, it will be crucial to achieve the right balance between reducing time to market or use, on the one hand, and including patches and must-haves, on the other hand. Feedback is critical at this stage, to assess adoption rates and challenges met. Version updates are frequent at this stage.</p><h3>3. Growth</h3><p>The software solution is fully implemented, and take-up rates are high. Users make it their own and its added value is clearly or progressively demonstrated at this phase. Gains are quantifiable and optimisation increases internal productivity or clients’ productivity. Version updates and upgrades are regular, as new needs emerge. “Nice-to-haves” that had been put on the back burner are reassessed and perhaps implemented.</p><h3>4. Maturity (or stabilisation)</h3><p>The consolidation of the previous steps standardizes the software solution. Requests are slowing to a trickle and adoption rates are plateauing. This is a critical period for the reassessments listed above. This period can vary in length depending on the speed of transformation and change in the industry or activity sector.</p><h3>5. Decline</h3><p>Due to lack of vision or adaptation to contextual changes, to consumption patterns or to digital and market transformation, the software gradually becomes obsolete, no longer meeting the needs of clients or users. As a result, they will seek out new technological solutions to continue progressing and obtaining optimisation gains.</p><p style="text-align: right;">Carlo Rossi, Spiria.</p></div>

Best Practices
5 min read
How to develop a robust project charter
<div><p style="text-align: center;"><img src="https://mirror.spiria.com/site/assets/files/11549/screen_1-1.svg" style="width: 100%;max-width: 600px;" alt="A project charter" title="A project charter"></p><p>A project charter is an essential document that is part and parcel of project management best practices. It provides an overarching view of the project, starting it on the right foot.</p><p>A robust project management</p><p>culture provides companies with a rigorous process supported by document templates for every step of the “project life cycle”. As a reminder, the phases of the project life cycle are the following: Initiation, Planning, Implementation and Closing, including a project-level feedback loop.</p><p>The project charter is a deliverable of the Initiation phase. In fact, it is the bridge between the Initiation and Planning phases, the point at which an informed decision can be made as to whether to continue with the project or scrap it.</p><p>The more detailed the project charter is, the better the various stakeholders will understand the background, the goals, and the challenges they’ll face at the various stages of the project. The concepts of this article are taken from the Project Management Institute (PMI) standards.</p><p>Below is an annotated list of standard information that any project charter should contain.</p><div><table border="1" cellpadding="1" cellspacing="1" style="border:0;width:100%;"> <tbody> <tr> <th style="text-align: left;"> <p>Charter Section</p> </th> <th style="text-align: left;">Notes</th> </tr> <tr> <td>Title page</td> <td>Name of project, name of project manager, name of project sponsor (client company, section or department), name of client’s representative (project representative), date, version.</td> </tr> <tr> <td>Summary</td> <td>A few sentences providing a high-level summary of the project (Executive Summary).</td> </tr> <tr> <td>Background</td> <td>Why are we doing this project? What problems or strategic objectives does it address?</td> </tr> <tr> <td>Goal</td> <td>What is the final deliverable of the project (a short sentence including an action verb and a single deliverable).</td> </tr> <tr> <td>Objectives</td> <td>A list of tangible results and benefits the project sponsor hopes to attain. These statements must be “SMART”: Specific, Measurable, Attainable, Realistic, Time-limited.</td> </tr> <tr> <td>Description, Inclusions/Exclusions</td> <td>A paragraph describing the project, followed by any specific project inclusions and exclusions.</td> </tr> <tr> <td>Critical Assumptions and Constraints</td> <td>A table of any restrictions or limitations, internal or external to the project, affecting the performance of the project. For example: delivery deadline, budget limit, availability of resources, etc. Any assumption that is critical to the success of the project. (Factors believed to be true, real or certain, but not yet confirmed. These assumptions will be validated at the planning stage).</td> </tr> <tr> <td>Implementation Strategies</td> <td>An analytical table assessing the relevance and the risk related to the various implementation strategies, whether internal, external (outsourcing) or joint (in partnership, using joint internal-external resources), if applicable.</td> </tr> <tr> <td>Impact of Project on Environment</td> <td>A table assessing the project’s impacts of all types: technological, sociocultural, organisational, political, legal, economic, infrastructural, etc.</td> </tr> <tr> <td>Stakeholder Analysis</td> <td>A table assessing the power and interest of the various project stakeholders. Persons or organisations involved in, or affected or influenced by, the project.</td> </tr> <tr> <td>Risks and Opportunities</td> <td>An assessment of the various risks based on probabilities, and preventative or mitigation measures taken.</td> </tr> <tr> <td>Preliminary Budget</td> <td>A phase-by-phase assessment of the effort and costs relating to the project at each one of its stages (or deliverables).</td> </tr> <tr> <td>Preliminary Schedule</td> <td>A preliminary project calendar broken down by phases and stages.</td> </tr> <tr> <td>Operating Costs</td> <td>Recurrent, yearly expenses related to the project post-implementation.</td> </tr> <tr> <td>Added Value</td> <td>A table comparing the current situation and the expected situation post-implementation. This assessment is based on strategic objectives (economic, technological, client, organisational, others).</td> </tr> <tr> <td>References</td> <td>Sources of information that went into developing the charter.</td> </tr> <tr> <td>Recommendation of the Project Manager</td> <td>Recommendation on the approval, rejection of conditional approval of the project.</td> </tr> <tr> <td>Signatures</td> <td>Signatures of the project manager and of the client sponsor.</td> </tr> </tbody></table></div>

Mobile Development
5 min read
Everything you need to know about mobile application development
<h2>What exactly is a mobile application?</h2> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11547/mobile_app_spiria.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/mobile_app_spiria.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/mobile_app_spiria.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="What exactly is a mobile application" src="https://mirror.spiria.com/site/assets/files/11547/mobile_app_spiria.webp" alt="What exactly is a mobile application" /></picture></p> <p>A mobile application is any software specifically developed to work on any mobile peripheral with a touchscreen interface. Writ large, this definition includes tablets and smart watches. But unless you specify this, “mobile application” will be understood to mean an application developed specifically for smart phones.</p> <p>Oftentimes, a mobile application developed for telephones can also work on tablets, since tablets usually run on operating systems derived from those developed for telephones. In the Apple ecosystem, you can even run an iOS application on a Mac, if it has at least version 11 of macOS. But this is still experimental and telephone-specific interfaces are poorly suited to a non-touch environment.</p> <h3>Which applications come for mobile phones?</h3> <p>There is a myriad of mobile applications, both for Android telephones and for iPhones. The operating system that comes built-in with a new telephone already has an assortment of basic applications, like a Web browser, email software, an agenda, a contacts manager, a viewfinding application for the camera(s), etc. You can then add to this built-in collection of applications by downloading complementary applications from Apple’s <a href="https://www.apple.com/ca/app-store/" target="_blank" rel="noreferrer noopener">App Store</a> or from the <a href="https://play.google.com/store" target="_blank" rel="noreferrer noopener">Google Play Store</a> (formerly called Android Market). Some applications are free, while others are paying.</p> <p>All applications come in three basic categories, depending on the technological choices made to develop them: native applications, cross-platform applications and Web applications.</p> <h3>Native applications</h3> <p>Applications developed specifically for any given mobile platform are known as “native applications”. They are based on the technology provided by the operating system (<a href="https://en.wikipedia.org/wiki/Android_(operating_system)" target="_blank" rel="noreferrer noopener">Android</a> or <a href="https://en.wikipedia.org/wiki/IOS" target="_blank" rel="noreferrer noopener">iOS</a>) and on the hardware platform. In theory, they provide the best performance and the most features. Native iOS applications are generally written in the <a href="https://swift.org" target="_blank" rel="noreferrer noopener">Swift</a> or <a href="https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html" target="_blank" rel="noreferrer noopener">Objective-C</a> language, while native Android applications are written in <a href="https://www.java.com/" target="_blank" rel="noreferrer noopener">Java</a> or in <a href="https://kotlinlang.org" target="_blank" rel="noreferrer noopener">Kotlin</a>. The downside of purely native applications is that those specifically developed for Apple devices won’t work on Android devices, and vice-versa.</p> <h3>Cross-platform applications</h3> <p>If you want to develop a single application for both iOS and Android, there are alternatives to developing two separate, technically distinct applications. Development teams have the more economic option of using a common codebase to produce the two different versions, thanks to tools like <a href="https://dotnet.microsoft.com/apps/xamarin" target="_blank" rel="noreferrer noopener">Xamarin</a> and <a href="https://flutter.dev" target="_blank" rel="noreferrer noopener">Flutter</a>. At the end of the line, you end up with two separate applications, each one compiled specifically for its own platform, but overall you’ll have spent less time developing. However, these applications do have some limitations and are often more demanding in terms of storage, processing power and RAM than purely native applications.</p> <h3>Web applications</h3> <p>Web applications are implemented through Web technology, i.e. <a href="https://en.wikipedia.org/wiki/HTML" target="_blank" rel="noreferrer noopener">HTML</a>, <a href="https://en.wikipedia.org/wiki/CSS" target="_blank" rel="noreferrer noopener">CSS</a> and <a href="https://en.wikipedia.org/wiki/JavaScript" target="_blank" rel="noreferrer noopener">JavaScript</a>. These applications can run locally or require Internet access to work. User data is often stored in the cloud. These applications are generally slower than native and cross-platform applications. Also, they often provide fewer features and have limited access to native <a href="https://en.wikipedia.org/wiki/API" target="_blank" rel="noreferrer noopener">API</a>s, i.e. device features. The main advantage ascribed to them is their lower development cost relative to native and cross-platform apps, but this is not always true.</p> <p>There are different formats of Web applications. Among the most common are the <strong>hybrid applications</strong> encapsulated in a native, Web-viewing application (<a href="https://developer.apple.com/documentation/uikit/uiwebview" target="_blank" rel="noreferrer noopener">UIWebView</a> on iOS and <a href="https://developer.android.com/guide/webapps/webview" target="_blank" rel="noreferrer noopener">WebView</a> on Android), and <strong><a href="https://en.wikipedia.org/wiki/Progressive_web_application" target="_blank" rel="noreferrer noopener">Progressive Web Apps</a></strong>, an on-line application format pushed by Google.</p> <h2>Why do we develop mobile applications?</h2> <p>Of course, the first question to ask is whether you should develop a mobile application in the first place. Do you even need a mobile application for your concept? If you’re reading this, you probably have a pretty good idea of why you need an application specifically for smart phones.</p> <p>According to a <a href="https://www.pewresearch.org/internet/fact-sheet/mobile/" target="_blank" rel="noreferrer noopener">2021 poll by the Pew Research Center</a>, 97% of adults in North America own a mobile phone and 85% have a smart phone. And these figures are even higher among the younger cohorts, where penetration rates for smart phones reach 89% for the 13-19-year-olds in the United States, according to a <a href="https://www.prnewswire.com/news-releases/common-sense-research-reveals-everything-you-need-to-know-about-teens-use-of-social-media-in-2018-300709161.html" target="_blank" rel="noreferrer noopener">Common Sense poll from 2018</a>. Further, as early as 11, over half of all children own a smart phone (53%, according to the same poll).</p> <p>So, smart phones have become a pervasive communications tool, reaching deep into just about all sociodemographic categories. In fact, for many, smart phones are their only access to the Internet, making them the best medium to reach the widest audience possible and to access millions of potential new customers. However, to achieve this, you’ll have to develop an efficient application that will fulfill one or more existing needs.</p> <p>There are three main types of mobile applications:</p> <p><strong>Product applications</strong>: This is when the application is the product itself, and it is generally what is sold to the user. It can be a consumer application or a professional application. It must fulfill an existing need, and the way it does this will determine its success. The application can even be free for the end-user by being self-financed, for example through advertising or a subscription model that provides access to additional features.</p> <p><strong>Service applications</strong>: Service applications are usually free and provided by companies as a complement to their offer of services. Service applications are a powerful marketing tool, as they allow companies to maintain a relationship with their clients and show them new offers. Typical examples of this marketing tool include the banking applications that all banks offer today. These applications provide many different services to customers, such as looking up their bank statements, transferring money and managing various financial products. Top-notch banking management applications can actually attract clients (for example, through personal recommendations) and definitely contribute to retaining them, since these applications nowadays constitute the main interface between clients and their bank.</p> <p><strong>Sales applications</strong>: Sales applications support the sale of physical products; however, they can come with services to foster customer loyalty. Sales applications are a de facto “on-line store” that facilitate ordering, but also serve as a powerful tool for marketing and advertising. Companies use sales applications to increase sales, stay in touch with their clients, support brand loyalty and reach new audiences in a multi-channel strategy.</p> <h2>Questions to ask before taking the plunge</h2> <p>After the initial idea, many questions need to be asked: how can I create a competitive advantage for my future users? What problems would they like to resolve? How can my mobile application change their lives for the better? What would they find attractive? What features will my application provide? Is this project truly useful and worthwhile? What does the competition offer? Does a similar application already exist? If so, how can I demonstrate that my project will provide a net gain for investors? What marketing strategy should I use?... and so on.</p> <p>Answering all these questions ahead of time is crucial if you want to succeed and avoid making mistakes along the way. And if you’ll need external financing to develop your project, having answers to these questions is nothing less than a duty, since investors will ask them.</p> <p>You should examine three basic questions from every angle: <strong>What is it? Who is it for? How to achieve it?</strong></p> <p><strong>What is it</strong>: What is the basic idea behind the application, and what need does it fulfill? What added value does it provide over the current market offering? Why now? What basic minimum features should it include in the short term? In the medium term?</p> <p>You must have a clear picture of what kind of application you hope to create. You don’t need to nail it down to every last detail, but have a basic idea of what need the application will fulfill. How is it different from existing applications? And if it isn’t, why reinvent the wheel? In order to attract the maximum number of clients, you’ll need to differentiate yourself from the competition.</p> <p><strong>Who is it for</strong>: Who is your target market? Individuals? Companies? If so, employees or management? Depending on your application’s target market, your sales, marketing and communications tactics will be very different. The contents of your application must be tailored to your public, hence the need to define ahead of time, as specifically as possible, who the “final product” will serve.</p> <p><strong>How to achieve it</strong>: What is your budget? What kind of revenue do you expect? Who are your investors? Which peripherals must be compatible with it? Who will be developing the application? How will the application pay its way and generate income? What is your communications and marketing plan?</p> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11547/building.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/building.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/building.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Building a mobile app" src="https://mirror.spiria.com/site/assets/files/11547/building.webp" alt="Building a mobile app" /></picture></p> <p><em>Budget</em>: How do you figure out how much your mobile application project will cost? That is a good question! First of all, ask yourself what benefits and impacts you expect from this project: is it a financial gain, a qualitative gain, or both? Does the application allow you to automate processes or generate an additional stream of income? All of these considerations will enable you to better assess how much you are willing to invest upfront.</p> <p><em>Partners</em>: Make sure you surround yourself with real professionals to develop your application. Making the wrong choice can jeopardize your entire project. Do your homework thoroughly before starting. Look for a real partner, as opposed to just a supplier of services; a true partner will involve you throughout the development process, reducing the risks inherent to any project.</p> <p><em>Application format</em>: Native, hybrid, or Web application? Which platforms should be targeted? You should answer these questions and other relevant considerations as early as possible and choose the format and technology accordingly, bearing in mind your long-term vision; your partners will be able to guide you at this stage. If you don’t have the budget to do it all at once, you can always prioritize your features and execute your project in stages, for example one version or platform at a time.</p> <p><em>Communications and/or marketing plan</em>: Do not neglect your communications plan, especially if you’ll need to seek financing; in fact, it’s one of the most important aspects of your preparation. Your communications or marketing plans will attract investors, or not, when it comes time to sell your project. The clearer your plan, the more structured it is, the more convincing it will be.</p> <p><em>When</em>: What’s your timeline? On what date would you like to see your first version? It’s always best to be a little early than a little late. This keeps you from making snap decisions, which often prove to be wrong decisions.</p> <h2>The process of developing a mobile application</h2> <p><strong>1. Planning</strong></p> <p>At the planning phase, you should have answers to all the questions raised in the previous chapter. Planning is fundamental to application development, and is based on exploratory meetings and analysis with the multidisciplinary team in charge of development. At the planning phase, you put in place all your risk abatement measures to start off on the right foot. Do not rush it or worse, dodge it, as your planning is a good predictor of your project’s success or failure. At this stage, you define the concept, set the basic outline of the product, identify the target market and assess the relevance of each one of your projected features.</p> <p><strong>2. Requirements</strong></p> <p>This step takes up the work you did in the planning stage while adding a new layer of detail. You seek to comprehensively and accurately capture the needs and objectives of the mobile application. You’ll end up with a complete list of the application features that each team will prioritize (in “sprints”) for design and development purposes. The completion of this stage should yield all the information you need to assess the cost of your project.</p> <p><strong>3. Design and prototyping</strong></p> <p>Once you’ve defined your requirements, the architecture of the application is sketched out in this phase. It can take one of several forms. For example, it can describe the technological architecture (hardware and software), or the interfaces exposed to different services or data sources.</p> <p>At this stage, an analysis of the <a href="https://www.spiria.com/en/services/human-centered-design/user-experience-design/">User Experience</a> (UX) helps build a functional mock-up (Wireframe) to validate the visuals (<a href="https://www.spiria.com/en/services/human-centered-design/user-interface-design/">User Interface</a>), the usability and the efficiency of browsing within the application. The goal of UX/UI for a mobile application is to provide excellent user experiences through interfaces that are interactive, intuitive, fluid, efficient and user-friendly. The success of a mobile application rides on the quality of its design, which will dictate whether users adopt and use all of its features.</p> <p>Different proofs of concept can give rise to different functional prototypes. These proofs of concept are validated and tested on the Front-End with representative users of the target market, before launching into the next step.</p> <p>Spiria provides a service called “<a href="https://www.spiria.com/en/services/growth-driven-strategy/discovery-process/">Discovery Process</a>”, which includes and covers these first three phases. The goal is to plan out any future software product and to provide you with functional prototypes and a clear, comprehensive roadmap.</p> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11547/process.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/process.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/process.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Process" src="https://mirror.spiria.com/site/assets/files/11547/process.webp" alt="Process" /></picture></p> <p><strong>4. Software Development</strong></p> <p>As its name indicates, this is the stage when developers write the actual code for the application (Front-End and Back-End) and connect the interfaces to achieve the defined objectives. Depending on the platform (iOS or Android) and the type of application, developers will use various programming languages and software tools. All this is explained in detail in the “<a href="#h2_04">Technology Stacks</a>” section below.</p> <p>As we work with the <a href="https://en.wikipedia.org/wiki/Scrum_(software_development)" target="_blank" rel="noreferrer noopener">Agile-Scrum</a> methodology, this is an iterative process. This means that the client can monitor, test and approve the features as they get coded, and that an operational solution can be delivered progressively, according to the needs prioritized by development cycles (the “<a href="https://en.wikipedia.org/wiki/Scrum_Sprint" target="_blank" rel="noreferrer noopener">sprints</a>”).</p> <p><strong>5. Tests and quality assurance</strong></p> <p>Throughout the development phase, various tests put the application through its paces with a view to validating its behaviour, security, performance and operation on various telephone models (real or virtual). Several aspects of the program get validated: do the interfaces display correctly on all screens, regardless of their format and orientation, and are they reactive enough? Does the application use up too much battery power? Does it properly manage network bandwidth when trying to connect? Are the details of user accounts stored safely? And so on.</p> <p>The teams execute test plans and the results are parsed. During this <a href="https://www.spiria.com/en/services/purpose-built-development/quality-assurance-test-automation/">quality assurance</a> (QA) work, a continuous feedback loop between quality analysts and developers serves to eliminate any malfunction, error or unexpected result. When all the problems identified by the quality analysts are addressed, the application is ready for release.</p> <p>In-depth quality assurance tests at the development stage are the only way to ensure that the mobile application will be stable, usable and secure from day one.</p> <p><strong>6. Release</strong></p> <p>Application release marks the end of development and testing of your mobile application, and is your cue to start cooling a good bottle of Champagne. For most mobile applications, this phase is topped off with the release of the application on a distribution platform such as Apple’s App Store for iOS applications, or Google Play for Android applications.</p> <p>The iOS procedure is the most complex. First, you must submit the application, along with its attendant metadata (description, category, keywords, launch icon, privacy statement, etc.), to the App Store. Then, you undergo a validation process, which can take anywhere from days to weeks. The time it takes depends on the quality of your app, its level of complexity and degree of compliance with Apple’s iOS development guidelines. If your application requires users to connect, you’ll have to provide Apple with a test user account.</p> <p>As regards Android applications, since Google does not have a validation process, things go much faster. Your application becomes available for download from the Play Store in just a few hours.</p> <p>Note that starting in 2022, following in the steps of Apple, Google Play will require all applications to provide details on the data they collect, as well as other information on privacy and security practices.</p> <p>Both platforms provide statistical tools to measure the success of your application. As soon as you notice the first user downloads, it’s time to pop the cork!</p> <p><strong>7. Maintenance</strong></p> <p>This is the phase where, typically, a new team takes over. This new team is a post-release, after-sales client service team. Following a stabilisation period for the solution after its release, the <a href="https://www.spiria.com/en/services/purpose-built-development/support-maintenance/">support and maintenance team</a> monitors client requests, crash reports and any problems flagged by end-users. This team also ensures that the application remains compatible with new generations of mobile devices and new versions of operating systems.</p> <p>Note that swift assistance for end-users and frequent updates to fix and improve the application are essential to retain user engagement. Also, do encourage your users to provide you with comments and suggestions on your application. They can be a great source of ideas for application enhancement.</p> <h2>Popular technology stacks for mobile development applications</h2> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11547/tech-stack.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/tech-stack.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/tech-stack.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Tech Stack" src="https://mirror.spiria.com/site/assets/files/11547/tech-stack.webp" alt="Tech Stack" /></picture></p> <p>A technology stack is an array of development tools that use programming languages and software aids available for any given platform (iOS, Android or cross-platform) to support efficient application development. The right choice of stacks depends on the platform and the characteristics of the project; indeed, certain features or expected outcomes may impose a certain language. Though there is no good or bad stack per se, one will be best suited to the requirements of your project. The following is a list of the most common components of a tech stack, by platform:</p> <h3>Components of a tech stack for iOS applications</h3> <h4><em>Programming languages</em></h4> <p>Two main programming languages are commonly used for iOS application development: <a href="https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html" target="_blank" rel="noreferrer noopener">Objective-C</a> and <a href="https://swift.org" target="_blank" rel="noreferrer noopener">Swift</a>.</p> <p>Since the inception of Mac OS X, <strong>Objective-C</strong> has been Apple’s preferred programming language for writing software for both the Macintosh and the iPhone. It is a superset of the C programming language, which offers object-oriented capabilities and a dynamic runtime. Objective-C is quite popular, especially in the area of complex product development where it still predominates.</p> <p>In 2014, Apple introduced <strong>Swift</strong>, a language dedicated to its ecosystem. As it is more modern, readable and straightforward than Objective-C, it quickly gained app programmers’ support. With an updated syntax and programming models, it prevents the most common errors and makes developers’ work easier. Yet it is also interoperable with Objective-C. By using the Objective-C runtime library, it allows C, Objective-C and Swift code to coexist in a single application.</p> <h4><em>Development tools</em></h4> <p>The most popular integrated development environments (IDE) are <a href="https://developer.apple.com/xcode/" target="_blank" rel="noreferrer noopener">Xcode</a> and <a href="https://www.jetbrains.com/objc/" target="_blank" rel="noreferrer noopener">Appcode</a>. Both are powerful and user-friendly.</p> <p><strong>Xcode</strong>, developed by Apple, provides access to all the features that are essential to create a native iOS mobile application and for UI design, coding and testing. Tightly integrated with the Cocoa and Cocoa Touch frameworks, Xcode is an incredibly efficient environment for building apps for the Mac, iPhone and iPad, and it is free.</p> <p><strong>Appcode</strong> is an integrated development environment for Swift, Objective-C, C, C++ and JavaScript built on the IntelliJ IDEA platform from JetBrains. It offers many features that greatly increase developer productivity. Unlike Xcode, Appcode requires users to buy an annual license.</p> <h4><em>Interface creation tools</em></h4> <p>To build user interfaces, developers commonly use <a href="https://getuikit.com" target="_blank" rel="noreferrer noopener">UIKit</a> and <a href="https://developer.apple.com/xcode/swiftui/" target="_blank" rel="noreferrer noopener">SwiftUI</a>.</p> <p><strong>UIKit</strong> is Apple’s core framework for building and managing graphical components in applications for iOS (iPhone), tvOS (Apple TV) and watchOS (Apple Watch).</p> <p><strong>SwiftUI</strong> is a more modern and sophisticated set of tools whose different approach does not yet offer all the features of UIKit, the framework that has gone hand in hand with the iPhone since nearly the beginning. Its adoption is still limited, but SwiftUI certainly has a bright future as it matures every year.</p> <h3>omponents of a tech stack for Android applications</h3> <h4><em>Programming languages</em></h4> <p>Application developers for Android phones rely heavily on two programming languages: <a href="https://www.java.com/" target="_blank" rel="noreferrer noopener">Java</a> and <a href="https://kotlinlang.org" target="_blank" rel="noreferrer noopener">Kotlin</a>. Note that development in C# and C++ is also possible.</p> <p><strong>Java</strong> is an object-oriented language introduced at the end of the last century along with the Web. Originally developed by Sun Microsystems, it is now owned by Oracle. Inherently portable and cross-platform, it quickly found its place on Android (which is based on a Linux kernel) and has long been the favored language for this platform.</p> <p><strong>Kotlin</strong> is lighter and less verbose than Java, and was created by the company JetBrains. Widely adopted by developers then endorsed in 2019 by Google, it has become the most popular language on the platform. Kotlin is not limited to this platform however, as it also supports development for Linux, iOS, macOS, watchOS and tvOS. With the <a href="https://kotlinlang.org/lp/mobile/" target="_blank" rel="noreferrer noopener">Kotlin Multiplatform Mobile SDK</a> (KMM), you can use a single code base for the business logic of iOS and Android applications. You only need to write platform-specific code when necessary, such as to implement a native UI or when working with platform-specific APIs.</p> <h4><em>Development tools</em></h4> <p><a href="https://developer.android.com/studio" target="_blank" rel="noreferrer noopener">Android Studio</a> is the official IDE for the Android operating system. Built on the IntelliJ IDEA platform from JetBrains, it runs on Windows, macOS, Chrome OS and Linux. While its main function is to edit Java, Kotlin or C# code as well as XML configuration files for an Android application, you can also build the application’s interface with it. Android Studio comes with a Software Development Kit (SDK) that contains a variety of tools needed by developers, including a compiler, debugger, <a href="https://www.qemu.org" target="_blank" rel="noreferrer noopener">QEMU</a>-based emulator, code samples, libraries, utilities and more. As the SDK also supports previous versions of the Android platform, our developers use it to fix and improve older or outdated applications.</p> <h4><em>Interface creation tools</em></h4> <p><a href="https://developer.android.com/jetpack/compose" target="_blank" rel="noreferrer noopener">Jetpack Compose</a> is a new, modern toolkit that simplifies and speeds up native UI development. Based on the Kotlin language, it offers a powerful declarative programming model: just describe the UI, and Compose does the rest.</p> <h3>Tools for cross-platform development</h3> <p>In most cases, smartphone apps come in two flavors: iOS and Android. This choice covers the entire smartphone market and avoids stranding customers no matter their platform. On the other hand, this means developing and maintaining, at significant cost, two native applications in parallel. Though the two versions seem similar and offer identical functionalities, they each have in fact their own architecture and code that are not very portable.</p> <p>This problem gave rise to the idea of designing tools with a code base common to both apps, necessitating just one development team. The two best-known tools for cross-platform mobile development are <a href="https://dotnet.microsoft.com/apps/xamarin" target="_blank" rel="noreferrer noopener">Xamarin</a> and <a href="https://reactnative.dev" target="_blank" rel="noreferrer noopener">React Native</a>, in addition to the very attractive new option that Google introduced in 2019: the open-source <a href="https://flutter.dev" target="_blank" rel="noreferrer noopener">Flutter</a> SDK.</p> <p><strong>Xamarin</strong> is a cross-platform development solution offered by Microsoft that allows you to reuse most of the same C# code on several platforms such as Android and iOS, but also tvOS, watchOS, macOS and Windows. However, you still have to write a layer of code specific to each platform using the native APIs. Because Xamarin integrates seamlessly with Visual Studio, C# developers stay in familiar territory. It produces compiled applications whose performance is close to that of native applications.</p> <p><strong>React Native</strong> is an open source framework by Facebook using JavaScript or <a href="https://www.typescriptlang.org" target="_blank" rel="noreferrer noopener">TypeScript</a> to create mobile applications. It allows accelerated development and provides the benefits of a large community of programmers. React Native uses a system’s interface components, giving applications a completely native appearance. However, this framework is not recommended for applications that use computing power intensively or have certain latency requirements.</p> <p>Flutter is based on the <a href="https://dart.dev" target="_blank" rel="noreferrer noopener">Dart</a> programming language launched by Google in 2011 and was designed from the start for mobile development. What sets this SDK apart is that it includes a graphical rendering engine in the mobile application; the display of the interface does not depend on the system components. One of the Flutter application’s advantages is that it offers a true 32/64-bit compilation for ARM processors, and therefore excellent performance.</p> <h3>Tools for developing hybrid Web applications</h3> <p>Because they are cross-platform in nature and generally quick to develop (tools allow prototypes to be built in record time), hybrid applications can do a lot -- but they can’t do everything, especially when it comes to performance. In most cases though, they are a perfectly acceptable choice, so no need to deploy the heavy artillery when a quick and tested solution exists. These applications are based on Web technologies, namely HTML5, CSS3 and JavaScript, with more or less limited access to native APIs via plug-ins (Cordova, Capacitor, Native Ionic). They are a kind of local Web application that is encapsulated in a native Web viewing application (UIWebView on iOS and WebView on Android).</p> <p><strong><a href="https://cordova.apache.org" target="_blank" rel="noreferrer noopener">Apache Cordova</a></strong> (formerly Phone Gap) is an open-source framework that runs applications based on HTML/CSS for the visual aspect and on JavaScript for the logic, and can access some hardware functions such as location (GPS), the accelerometer, the camera, etc.</p> <p><strong><a href="https://ionicframework.com" target="_blank" rel="noreferrer noopener">Ionic</a></strong>, based on Apache Cordova and the AngularJS framework, is also open-source. It offers additional features for hybrid application developers, as well as UI components (Mobile UI Toolkit), which make the application look native.</p> <h3>Tools for developing Progressive Web Apps</h3> <p>There are no tools specific to the development of <a href="https://en.wikipedia.org/wiki/Progressive_web_application" target="_blank" rel="noreferrer noopener">Progressive Web Apps</a>. Programmers have a wide choice of editors to write the necessary HTML, CSS, JavaScript and JSON files. A PWA relies on Web APIs (web application programming interfaces) for access to hardware features, which is very limited as a result and varies between environments, as not all browsers are equal.</p> <h2>How much does it cost to develop a mobile application?</h2> <p>The cost of developing a mobile application can vary hugely. No two applications are the same, and much depends on how many specific needs they have to meet, and how simple or complex those needs are.</p> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11547/cost.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/cost.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/cost.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Tech Stack" src="https://mirror.spiria.com/site/assets/files/11547/cost.webp" alt="Tech Stack" /></picture></p> <h3>Scope and complexity of the project</h3> <p>The real answer to the question of the cost of development is as prosaic as it is disappointing: it depends. While many variables come into play, the main ones are the scope and the complexity of the project, which impact development time, which, in turn, translates into dollars and cents. While the simplest applications can be developed for just 20,000$, more complex applications that fulfill many different functions and handle sensitive information can cost 500,000$ or more and require a year’s development time.</p> <p>The more features the application has, the longer it takes to develop and the more expensive it will be. This said, in our experience, most mobile application projects tend to amount to 120,000$-200,000$ for an initial version, with 4 to 6 months’ development time.</p> <p>If you don’t have that kind of budget, your best bet is to restrict your application’s scope and complexity. Start by defining your <a href="https://www.spiria.com/en/blog/custom-development/mvps-your-most-valuable-plan-to-hit-the-market-swiftly/">minimum viable product</a> (MVP), i.e. the application that will meet your users’ basic needs, with features that are only strictly necessary or whose usefulness is established beyond a doubt.</p> <p>There are many advantages to going for an MVP:</p> <ul> <li>By sending your MVP to market quickly and inexpensively, you start generating revenue that will finance future development.</li> <li>A functional application that is actually in use attracts investors more readily.</li> <li>VAn MVP allows you to capitalize on your early users’ comments, suggestions and expressed needs to improve your application iteratively, instead of wasting money on features that will never actually be used.</li> </ul> <h3>Choosing your developers</h3> <p>our choice of developers is another important factor in the overall cost of a project. Your options are as numerous as they are varied, and each comes with its own advantages and drawbacks, which is the topic for a different day. You could choose a general application development company like Spiria, a company that specializes in mobile development, or even a free-lance developer. In certain specific circumstances, you could hire staff developers to perform the work in-house, which can be an interesting option. And, to make things even more complex, you must weigh the caliber of the developer(s) working on your project, i.e. their skills and experience. A senior developer may cost 130-150$ per hour, but may accomplish in one hour what might take five hours for a more junior developer at 40$ per hour. Which developer will save you time and headaches in the long run? Also, the market is globalized. You can hire local developers, or offshore your development to Australia, Ukraine, Indonesia, India, or anywhere else in the world, except for the Antarctic.</p> <p>Each of these options carries its own price tag, the bulk of which consists in the developers’ hourly rate. Developers in India are paid a fraction of what North American developers make, which of course works out cheaper. At the end of the day, the question you should ask yourself is the following: Am I going to get my money’s worth? And as is the case for any other product or service, the right answer often is not the cheapest, or the lowest bidder.</p> <p>Keep in mind that any application is a “living thing”, and that it’ll continue costing money throughout its lifecycle. The expense does not end on launch day: have you thought of the cost of maintenance, updates, upgrades, data storage, software licensing, or other external services, to name a few?</p> <h2>Common mistakes in mobile development</h2> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11547/error.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/error.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/error.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Error" src="https://mirror.spiria.com/site/assets/files/11547/error.webp" alt="Error" /></picture></p> <h3>Lack of planning and strategy</h3> <p>Two of the main reasons for the prompt failure of a mobile application on the market is poor planning and a lack of strategy. To build an awesome app, you must have a well-developed concept and a robust development strategy right from the get-go. Have a look at the previous chapter, “Questions to ask before taking the plunge”.</p> <p>Straying down a rabbit-hole during the development process will cost you valuable time as well as money. To avoid going hopelessly astray, you must have precise and detailed answers to the following questions: What, Who and How. The answers to these questions will provide you with a detailed roadmap and a solid foundation to ensure success and minimize risks.</p> <h3>Lack of client analysis</h3> <p>Do some market research related to your application. Don’t go it on a hunch. Analyze the needs, motivation, and current and future behaviours of your clients. Otherwise, you’ll waste a lot of time on an application that doesn’t meet user needs nor address an actual issue. Unless your application provides a crystal-clear benefit, it won’t matter that the most awesome design, the best interface and flawless development went into it. Your application will be considered irrelevant and meet with failure.</p> <p><a href="https://www.spiria.com/en/services/smart-customer-experience/customer-research/">Customer research</a> is what allows you to design and develop every aspect of the application based on real client needs and motivations, which in turn supports client engagement and loyalty every step of the way. Measuring expectations, uncovering new ones and knowing the strength of each makes it a cinch to prioritize development initiatives and concentrate on essential features -- the ones that guarantee success.</p> <h3>Inferior interface = disappointed users</h3> <p>Users expect mobile applications to provide simple, fluid and efficient interactions. They don’t want to have to figure it out. Sometimes, in a bid to be original and different, we’d be tempted to develop interfaces whose behaviour is different from what users expect, or from what they have been accustomed to from other applications. This would be a mistake; it just leads to frustration and irritation on the users’ part.</p> <p>You definitely can’t afford to alienate your clients or risk losing them. Make sure to give them a positive experience based on an easy-to-understand hierarchy of information and predictable design elements, so they can easily browse through your application. That’s when the usability tests come into their own; they reveal potential friction points and ensure that the interface engages its target market.</p> <h3>Poor technological choices</h3> <p>Poor technological choices are a serious pitfall with costly consequences. They are also an insidious problem, since their ramifications can remain hidden long after the initial production launch of the application. For example, they can come to light only when you try to upgrade your application, port it to an initially unplanned system, or scale it up. In the worst case, you’ll have to start over from scratch. Since technological choices are made when you’re still on the starting-blocks, before a single line of code is written, you should think about them long and hard; otherwise, it may be too late to backtrack subsequently. Take the time to ask all the right questions about future and potential developments.</p> <h3>Poor execution</h3> <p>Your mobile application target market will not give you a second chance to make a first impression. Confusing interfaces, unruly application behaviour, bugs, crashes, and the likes, are so many reasons why your application could be dropped and deleted from users’ phones. The best way to thrill your clients and users is to provide them with a well-thought-out application developed by interface professionals who design according to the rules of the art, and by seasoned programmers whose output quality has been verified by a battery of tests. Skimping on other aspects of your application such as planning or quality assurance is never the solution. Sometimes, you’re better off waiting until the moment is right than releasing a flawed, poorly-executed application; it’ll save you a lot of money!</p> <h2>Ready to take the leap?</h2> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11547/mobile-app-success.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/mobile-app-success.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11547/mobile-app-success.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Mobile app success" src="https://mirror.spiria.com/site/assets/files/11547/mobile-app-success.webp" alt="Mobile app success" /></picture></p> <p>Do you have a mobile application project in mind? Spiria can help you turn it into a product that will find its audience. We have wide-ranging experience in mobile development, multidisciplinary teams, and a mastery of every step, from fleshing out your initial idea to supporting the finished application. Still have questions? Don’t hesitate to <a href="https://www.spiria.com/en/contact">contact our development team</a>.</p>

Strategy
5 min read
Understanding the digital transformation
<h2>What is the framework of digital transformation?</h2> <p>A company embarking on a digital transformation project must above all define <strong>clear</strong> and <strong>specific</strong> objectives. It might scrutinize practices related to customer service experience, operational efficiency, organizational culture, staff expertise, and technology infrastructure in order to stay competitive, for example. Throughout the process, the company focuses on the <strong>long-term</strong> rather than the short-term outlook.</p> <p>During this journey, the company will identify:</p> <ul> <li>which processes could be improved,</li> <li>which outdated technologies need to be replaced,</li> <li>which data could help it become more effective,</li> <li>which skills it needs on its staff,</li> <li>which digital tools are likely to increase its performance.</li> </ul> <p>A dedicated team of experts can lead this digital shift, or barring that, an external partner can advise the company. Because this investment varies widely according to the size of the business and its industry, the digital transformation priorities are weighed against the budget allocated to the project. The expense doesn’t end with the purchase of the tech tools, but also includes its operation and upkeep. The company should set a timetable based on defined goals and available resources, and resist the temptation to run several projects concurrently.</p> <h3>What is driving digital transformation?</h3> <p>A company sets off on a digital transformation because, above all else, it wants to <strong>improve productivity</strong> and <strong>increase profits</strong>.</p> <p>Sometimes, it may also seek to retain talent on its workforce while attracting new skills, by offering its teams the tools and equipment to make their work simpler and to let them innovate.</p> <p>It may also want to enhance functional efficiency, especially if it operates in a very competitive market. To do so, it gathers data that shows which processes need burnishing, and which ones waste time and resources. This might reveal how it stacks up to its competitors.</p> <p>Or, the company may want to upgrade the quality of its products and services to more quickly meet even its most demanding clients’ needs, with a view to fostering loyalty. And sometimes, it has to communicate with clients instantly, for example when an update is released or when a product part has to be replaced.</p> <h3>The benefits and risks of a digital transformation for an organization</h3> <p>Digitizing a company means that it can <strong>automate its activities</strong> electronically, document them through data production, signal gaps and <strong>anticipate problems</strong>. As a result, it becomes more efficient and its production costs decrease.</p> <p>More concretely, a company embarking on a digital shift can aim to:</p> <ul> <li>streamline its processes;</li> <li>evaluate its staff performance;</li> <li>offer customized products and services;</li> <li>better support innovation;</li> <li>gain visibility;</li> <li>promote communication with its teams, partners and customer base;</li> <li>predict disruptions in its industry;</li> <li>keep up with the digital evolution.</li> </ul> <p>For example, a manufacturer could use technology to monitor its production line, systematically control the quality of its products and services, and improve it as needed. It could implement technological solutions (the <em>Internet of Things</em>) to inspect its equipment in real time and check for breakdowns or required maintenance. The collected data helps managers assess the company’s performance and make the required adjustments.</p> <p>Setting off on a digital transformation is not without risk. The company has to get everyone on board, then secure its infrastructure, and ensure compliance with legislation on the protection of personal data. We’ll get back to that.</p> <h2>The role of security in digital transformation</h2> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11538/security.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/security.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/security.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Security in digital transformation" src="https://mirror.spiria.com/site/assets/files/11538/security.webp" alt="Security in digital transformation" /></picture></p> <h3>What are the risks related to digital transformation?</h3> <p>Digital tools have become so indispensable that any company that hesitates to digitize jeopardizes its relevance, and ultimately, its very existence. That said, it’s up to the company to make sure that staff understands and accepts the upcoming changes that a digital transformation brings, so that they embrace it. Otherwise, they will become demotivated and lose interest, compromising the chances of the project’s success.</p> <p>Carrying out such a project bears some risk. A company launching into this adventure can’t lose sight of its strategic objectives. By sticking to the set order of priorities, the project will meet the most critical of its goals without getting scattered.</p> <p>Another risk of digitizing is that companies expose themselves to <strong>threats of cyberattack</strong>, as hackers’ schemes evolve at the same speed as technology. On a different note, legislation specific to the protection of personal data is becoming more stringent. It’s important to closely follow new legislation.</p> <h3>Regulatory risks: taking into account data’s regulatory constraints</h3> <p>As the company works on its digital transformation, it has to stay current on the regulations and legislation that govern data protection, in Canada and internationally. These laws set out the parameters of personal data collection and, depending on the use the company wants to make of the information, the type of consent it has to obtain from data holders. Breaking the rules entails heavy fines.</p> <p>In Canada, the <em>Personal Information Protection and Electronic Documents Act</em> (<a href="https://www.priv.gc.ca/en/privacy-topics/privacy-laws-in-canada/the-personal-information-protection-and-electronic-documents-act-pipeda/">PIPEDA</a>) defines general rules for the collection, use and disclosure of personal information by private businesses under federal jurisdiction, and by most companies that are not under federal jurisdiction (with the exception of private companies in Quebec, Alberta and British Columbia). PIPEDA applies to personal customer data but also to the employees of affected businesses.</p> <p>Furthermore, elected officials in the House of Commons in Ottawa are studying <a href="https://parl.ca/DocumentViewer/en/43-2/bill/C-11/first-reading">Bill C-11</a><em>(An Act to enact the Consumer Privacy Protection Act and the Personal Information and Data Protection Tribunal Act and to make consequential and related amendments to other Acts)</em>. Once adopted, this law will impose new obligations on companies.</p> <p>In Quebec, companies are subject to a law similar to PIPEDA: the <em>Act respecting the protection of personal information in the private sector</em>. Companies in Alberta and British Columbia must comply with the provisions of the <em>Personal Information Protection Act</em> (PIPA). What’s more, Quebec is studying <a href="http://m.assnat.qc.ca/fr/travaux-parlementaires/projets-loi/projet-loi-64-42-1.html">Bill 64</a> (<em>An Act to modernize legislative provisions as regards the protection of personal information)</em>, which would detail the obligations of private organizations and public institutions.</p> <p>Federal and provincial laws state the “bare minimum” for companies doing business in Canada. However, most companies that sell products or services outside Canada should keep abreast of the regulatory frameworks abroad. For example, the European Union ratified the <em>General Data Protection Regulation</em> (<a href="https://gdpr-info.eu">GDPR</a>), which entered into force in 2018. The GDPR is strict on violations, with penalties that can amount to 4% of the company’s annual global revenue.</p> <p>In the United States, California ratified, also in 2018, the <em>California Consumer Protection Act</em>. Note also the <em>Freedom Act</em>, adopted in 2015, to which was added the <em>CLOUD Act</em><em>(Clarifying Lawful Overseas Use of Data Act)</em> in 2018. These laws differ from the European and Canadian laws in that they are primarily intended to enable US intelligence services to obtain information on private individuals for the purpose of national security and defense.</p> <h3>Security risks: securing data and tools</h3> <p>A company has to take all the necessary precautions to secure its data and infrastructure. The first priority is to examine the assets vital to sustaining activities, followed by an assessment of the company’s ability to manage the risks they entail. This methodology helps prioritize efforts.</p> <p>It must then review its procedures, set up new controls, and implement necessary updates and backups. Depending on its circumstances, it could acquire security tools and equipment such as firewalls, anti-virus software, spam filters, an administrator-privilege management system, or an information segmenting system.</p> <p>Training the staff in cybersecurity to adopt safer habits is a good practice, since that is often where the fault line shows up. Thereafter, the company needs to stay vigilant. A periodic analysis of cybersecurity measures can only help deter cyberattacks.</p> <h3>Risks associated with change management: the evolution of HR systems</h3> <p>Because businesses rely on their teams’ cooperation to get through the digital transformation, teams must be engaged from the start to get their commitment to the project. Setting up a committee that includes rank-and-file, team leaders, managers and executives keeps the lines of communication open during the project. Members discuss next steps, obstacles to overcome and solutions to mobilizing teams.</p> <p>Likewise, the company should keep all staff informed of the upcoming changes. Managers who know how to listen to employees who raise concerns can help them through their misgivings. Training sessions help teams become more comfortable with new tech tools, support their compliance with new procedures, and possibly even help them become more effective.</p> <h2>Who are the actors in a digital transition?</h2> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11538/transition_actors.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/transition_actors.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/transition_actors.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Actors in a digital transition" src="https://mirror.spiria.com/site/assets/files/11538/transition_actors.webp" alt="Actors in a digital transition" /></picture></p> <h3>Digital transformation has implications for the entire company</h3> <p>Digital transformation extends beyond just an IT project: people are at the heart of it. A company embarking on an endeavor of this kind has to recognize that all its team members are affected by the changes that new technology and new work methodologies bring in their wake.</p> <p>New technology means that staff can work anywhere, anytime, ushering a culture of immediacy. It is incumbent on the company to put guidelines in place for a healthy work environment by defining the hours within which it is acceptable to communicate with other team members, for example.</p> <p>What’s more, digital transformation paves the way for innovation. First, the automation that comes with the technological shift exempts employees from some repetitive and time-consuming tasks. Then, teams use this time to come up with new project ideas and question existing procedures. This causes the skills required of staff to evolve, hence the need for ongoing training. Then, as new technology is adopted, the skills sought to fill vacant jobs also change.</p> <p>Along the same lines, the digital shift pushes the company to constantly adapt to its clients’ needs, to limit risk, or to keep up with technological trends. There again, the employees are on the front lines. They have the potential to take the company to new heights.</p> <h3>Digital transformation: the whole organization has to own it</h3> <p>Management sets in motion the vast project that is digital transformation, but all employees contribute to its realization to ensure its success. Communication is essential. Team members must be informed of the reasons behind the changes that are to come..</p> <p>Employees should be trained to identify risks and find solutions, to appropriate, master, and adapt the new tools so they can better manage data, be proactive when a problem arises, and possibly even increase their productivity. They should also be able to convey new ideas, to experiment, and to innovate in order to optimize business operations. The organizational culture should encourage such initiative… and should give people permission to make mistakes!</p> <p>Taking down silos creates a synergy between multidisciplinary teams and promotes the emergence of collaborative cells. Decision-making grows to include all the company’s activities as well as customer needs, an approach that relies on continuous process improvement.</p> <h3>Preparing the teams and planning a successful digital transformation</h3> <p>A digital shift should not be rushed. It challenges all business processes, which can cause anxiety and even fear among staff. Taking it step by step leads to better decision-making, avoids jarring the teams, and leads to the desired transformations in the end. Managers who are aware of this and available to listen to these concerns can better support their teams.</p> <p>To get through this, it helps to explain to employees the extent of the digital transformation and the reasons behind it. Staff will better understand its relevance and will be more inclined to get involved. Training sessions help staff keep their skills up-to-date, stay engaged and keep motivated to bring this to a successful conclusion.</p> <h3>Digital transformation is also a cultural transformation</h3> <p>With any digital transformation comes a change in the organizational culture as new ways of thinking and acting are adopted. A top-down style of decision-making, hallmark of a strict hierarchy, gives way to a corporate culture based on accountability, cooperation, continuous improvement, and innovation.</p> <p>Investing in collective intelligence to improve effectiveness has long been a good practice. A company engages teams in a sustained way when it empowers them, and they in turn become more motivated and show greater interest in the company’s performance.</p> <p>Ways to do this include professional development and initiatives that foster the emergence of creative ideas and collaboration between teams. This can take the form of a suggestion box, or assembling a team dedicated to innovation and to presenting the results of performance indicators. The birth of a workable idea should be celebrated, and the team rewarded for this key contribution. Job descriptions would then mention the need for initiative in the workplace.</p> <h3>A company changes when its leaders change</h3> <p>Sitting on the sidelines doesn’t get the project over the finish line. Managers participate in this big project as real agents of change. They might need to reconsider their approach, and base it on trust rather than on micromanagement. When they mobilize staff to try out new things, teams feel invested in the company and get in the habit of questioning the status quo.</p> <p>When a company digitizes, recruiting practices also change. Candidates that are open to new ideas and collaboration are more likely to quickly get up the learning curve. Properly supported, these recruits actively participate in an organizational culture of accountability, continuous improvement, and innovation.</p> <h2>Teleworking and digitization: results so far?</h2> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11538/teleworking.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/teleworking.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/teleworking.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Teleworking" src="https://mirror.spiria.com/site/assets/files/11538/teleworking.webp" alt="Teleworking" /></picture></p> <p>Operational needs and industrial sector permitting, digitization has given teams the tools to work away from the office and become more autonomous. Their productivity has increased and, when they share a relationship of trust with management, they have suggested innovative ideas. Team cohesion fosters collaboration, which is key to digitization.</p> <p>For hackers, on the other hand, telecommuters are a prime gateway to get at a company’s infrastructure. It’s essential to not only deploy all necessary cybersecurity tools, but also to hold cybersecurity training and to regularly remind personnel of basic security guidelines.</p> <h3>Telecommuting: a way to accelerate digital transformation?</h3> <p>Teleworking accelerated the digital shift as it became clear that people could accomplish as much work, if not more, from home. No fewer than 90% of workers relegated to their homes during the COVID-19 pandemic state that they were “at least as productive” as in the office, according to a <a href="https://www150.statcan.gc.ca/n1/pub/45-28-0001/2021001/article/00012-eng.htm">Statistics Canada survey</a> in April 2021.</p> <p>74% of SME leaders are considering letting their staff continue to work remotely after the health pandemic, as indicated in a winter 2021 <a href="https://www.newswire.ca/news-releases/remote-work-is-here-to-stay-bdc-study-862777721.html">study by Business Development Bank of Canada</a> that surveyed 700 Canadian companies. When planning their digital shift, companies should keep in mind that businesses are now revisiting the need to lease or buy space, and opting to just set up unassigned workstations in their remaining offices.</p> <h3>Structural and organizational challenges of teleworking</h3> <p>Digitization lets staff get its work done whether they are in the office, at home, in a café or even on a client’s premises, full time or part time. Team leaders might think about modifying their management style, for example managing by results, in addition to doing regular check-ins through individual discussions and department meetings.</p> <p>Procedures and devices keep data secure, while policies create a better work/life balance by establishing a time window when team members should keep an eye on their inbox, and by letting them specify which communication methods they prefer or when they are not reachable.</p> <p>For a smooth telework experience, the company has to make the appropriate tools and equipment available to its team members (computer, headset, mouse, etc), in addition to setting up the necessary infrastructure (cloud computing, remote access network, communication and collaborative work platform, etc).</p> <h2>Putting digital transformation into practice</h2> <h3>Is your team ready to innovate?</h3> <p>Staff called upon to innovate has to be highly motivated, enthusiastic about the project, empowered to take risks and, consequently, to make mistakes. As a conversation develops between staff and managers, staff feels valued enough to share their ideas and question the status quo. Managers must be open to these new suggestions and be frank about their potential. A relationship of trust between managers and staff benefits everyone, while micromanagement tactics just slow everyone down.</p> <p>A company that wants to make room for innovation begins with incremental steps so that staff notices the developing climate of openness. To foster innovation, the company can give staff the time and opportunity to learn about the latest technology trends, or it can institute a mentoring program. A company-wide brainstorming session can bear fruit, and job descriptions could mention the need to be innovative.</p> <h3>Improving customer experience</h3> <p>A priority of digital transformation is improving customer experience throughout their journey. This encompasses brand exposure, the quality of the products or services, their usefulness and post-purchase customer service.</p> <p>By going digital, a company becomes able to:</p> <ul> <li>measure traffic on its digital platforms;</li> <li>gauge the effectiveness of its digital marketing campaigns;</li> <li>identify the most popular products and services;</li> <li>determine the buy and drop rates of online shopping carts;</li> <li>evaluate customer loyalty;</li> <li>assess satisfaction levels;</li> <li>calculate the average time to solve customer-service issues.</li> </ul> <p>With such data on hand, the company can adapt its business processes to be more customer centric, find areas for improvement and implement new ideas.</p> <h3>Optimizing processes</h3> <p>Digital transformation optimizes business processes. Digital tools have the advantage of being able to detect quality issues and wastes of time and resources. Not all operations need to be rewritten, but the ones with loopholes can finally be addressed. Problem processes are eliminated if they are unnecessary, automated if they are merely repetitive, or enhanced and adapted to new technology. Processes that show promise from the start can simply be digitized.</p> <p>Throughout a process review, indicators are used to continuously evaluate performance across the company. Introducing new tools and breaking down silos presents a chance to clarify and modify the responsibilities of all staff roles and promote teamwork.</p> <h3>Digitizing outputs</h3> <p>As the name suggests, digital transformation means moving from analog to digital. If the required expertise is not available in-house, the services of a specialized firm can be retained to help with the transition.</p> <p>Tech tools and online storage reduce the reliance on paper files. Depending on needs and resources, content to be digitized gets first consideration (invoices, forms, reference documents, archives, etc), and can be automatically transferred to the desired format (PDF, Word, Excel, JPEG, etc). This requires digital storage space and a document management system. Cloud solutions are popular as they give staff access to documents anytime, anywhere, in addition to running updates in real time. Departments can designate some files as restricted-access.</p> <p>In the next stage, procedures and processes are evaluated for digitization. Mapping them reveals which could be improved or eliminated. In the final stage, new tools take care of resupplying, production tracking, accounts receivable, etc. Digitization can also imply automation or robotization, such as immediately issuing an invoice when a client places an order.</p> <h3>The use of big data in digital transformation</h3> <p>Digitization generates a large volume of data which paints a picture of the company, forecasts the possible course of events, and guides decision-making. A company can seek to leverage big data by considering its volume, variety, accuracy, value and speed at which it is generated. Tools are available to store, extract, process, analyze and compare all this information.</p> <p>To make sense of all this, new roles are defined: data manager, data scientist, or data analysis coordinator. A data management policy governs the creation, treatment, use, transmission and lifespan of the data, which a data expert oversees. This prevents conflicts and ethical issues.</p> <p>The key point to remember is that data should support business processes, and not the other way around.</p> <h2>Measuring digital transformation</h2> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11538/measuring.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/measuring.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/measuring.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Measuring digital transformation" src="https://mirror.spiria.com/site/assets/files/11538/measuring.webp" alt="Measuring digital transformation" /></picture></p> <h3>How do you measure the effectiveness of your digitization project?</h3> <p>This large project doesn’t merely consist in acquiring new technology, but in fundamentally transforming company processes. Certain performance indicators help assess the extent of the digitization project’s success. They apply to all departments, given the disruption that they all went through.</p> <p>The strategic objectives that were initially established must be top of mind. Companies can correct their course by making small adjustments, by changing their direction entirely, or by reallocating its budget. Another option: staying the course.</p> <h3>Which indicators are tracked during digital transformation</h3> <p>A subset of performance indicators evaluates the success of a digital transformation. It depends on the industry and the strategic objectives, and can vary from one company to another, and from one project to another. Above all, these indicators must be specific, inclusive, measurable, and backed by reliable data.</p> <p>The following are some of the relevant performance indicators:</p> <p><strong>Employee engagement</strong></p> <ul> <li>New tool adoption rate,</li> <li>Number of tech support requests,</li> <li>Satisfaction rate,</li> <li>Number of complaints,</li> <li>Level of collaboration,</li> <li>Productivity.</li> </ul> <p><strong>Impact on business activities</strong></p> <ul> <li>Traffic on social media platforms,</li> <li>Conversion rate,</li> <li>Number of sales,</li> <li>Average shopping-cart dollar value,</li> <li>Profit increase attributable to digital activities,</li> <li>Number of customer complaints,</li> <li>Digital marketing campaign results.</li> </ul> <p><strong>Impact on operations</strong></p> <ul> <li>Time elapsed between submitting an order and providing the service,</li> <li>Total hours worked,</li> <li>Production costs,</li> <li>Number of issues that came up in the production chain,</li> <li>Percentage of activities carried out digitally.</li> </ul> <p> </p> <h3>Return on invested capital</h3> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11538/roi.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/roi.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/roi.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Return on invested capital" src="https://mirror.spiria.com/site/assets/files/11538/roi.webp" alt="Return on invested capital" /></picture></p> <p>Laying out clear and specific objectives at the beginning of the digital transformation is crucial for measuring the ROI. Without this, the contribution that the new technology makes to the initiative is hard to evaluate.</p> <p>Depending on the objectives defined in the preparatory stage, the company may track the following:</p> <ul> <li>Increase in revenue;</li> <li>Decrease in operating cost;</li> <li>Job elimination;</li> <li>Reduction in the number of errors or issues in the production line.</li> </ul> <p>Qualitative data such as this also comes into play:</p> <ul> <li>New skills learned;</li> <li>New expertise acquired;</li> <li>Customer and employee satisfaction;</li> <li>Staff retention rate.</li> </ul> <p>Calculating the return of invested capital takes place over the long run, after the company has had a chance to build up its data, to analyze it and to assess the extent to which its investments have been profitable.</p> <h2>Digital transformation: three case studies</h2> <h3>Fabrique Arhoma</h3> <p>Based in Montreal, <a href="https://www.spiria.com/en/our-work/arhoma/">Fabrique Arhoma</a> supplies bread and pastries to restaurants, hotels, caterers and shops on a daily basis. It wanted to move away from printed forms in favor of an app that would closely track orders and reduce the number of errors. Unfortunately, no existing digital tool met its needs.</p> <p>After an analysis of its internal processes, Spiria came up with a custom application for the bakery that records orders in addition to managing production, billing and delivery.</p> <p>This new tool is so efficient and user-friendly that the training time for new users has gone down by 60%. Customer service has 30% more available time to take phone orders, and the number of errors when taking orders has decreased. Finally, La Fabrique Arhoma is now better able to accurately calculate the amount of dough that it needs to produce each day, thus reducing its costs.</p> <h3>Evenko</h3> <p>The shows and large events produced by <a href="https://www.spiria.com/en/our-work/evenko/">Evenko</a> in Canada and in the eastern United States generate large quantities of data, but various outdated systems handled it inefficiently. The producer wanted to group all its data on one common, collaborative management platform to improve its operations.</p> <p>Entrusted with supporting Evenko, Spiria created the Nucleus web application with the help of Microsoft’s .Net framework. This app was ergonomically conceived to enhance the production teams’ operational efficiency. Nucleus drafts and edits contractual agreements, in addition to providing access to past agreements.</p> <p>Evenko can add users, new functions and procedures, as needed. With this new tool, executives base their decisions on the full picture of business data and plan live performances even more tightly.</p> <h3>ALLPharma</h3> <p><a href="https://www.spiria.com/en/our-work/allpharma/">Pharmacie Luong et Leclerc</a> wanted to offer its Montreal customers digital options to order medication online by taking a photo of their prescription, and to web-conference with their pharmacist. After a review of all available technological tools, it called on Spiria to commission a mobile app.</p> <p>Spiria experts first analysed pharmacists’ needs and drew a list of required features, given available resources. The simple and accessible ALLPharma tool was created to overcome health professionals’ and patients’ reluctance. The former can manage orders online, while the latter have access to a user-friendly mobile app to order their medications and ask questions.</p> <p>This digital transformation was a success. Originally conceived for Apple iOS, the app was adapted to Android devices. The pharmacy was able to differentiate itself from its competitors and improve its customer satisfaction rate.</p> <h2>Ready to take the leap?</h2> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11538/conclusion.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/conclusion.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11538/conclusion.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Spiria" src="https://mirror.spiria.com/site/assets/files/11538/conclusion.webp" alt="Spiria" /></picture></p> <p>A digital shift entails monumental changes. Both management and personnel are called on to think and react in new ways, with a focus on continuous improvement and innovation. The entire company culture has to evolve.</p> <p>Digital transformation is one of the important milestones in the life of an organization. As we’ve seen, to be successful, it has to be meticulously planned. This means establishing clear and specific objectives from the start. Staff are involved in discussions early on to obtain their buy-in. Cybersecurity gets extra attention to safeguard the organization’s assets.</p> <p>This type of project requires a customized approach. The experts at Spiria have the necessary <a href="https://www.spiria.com/en/services/growth-driven-strategy/digital-transformation/">competences</a> to guide organizations in this gripping adventure. They advise companies and develop tailor-made applications to improve processes and secure their growth.</p> <p>After all, nothing less than the company’s very sustainability is at stake.</p>

Custom Development
5 min read
Everything you need to know about web application development
<h2>What exactly is a web application?</h2> <p>Web applications are most often client-server-type applications whose user interface and interaction rely on web technology, making them accessible through a standard web browser (Google Chrome, Firefox, Microsoft Edge, Opera, Vivaldi, etc.) Some of the better-known web applications are the Google Workspace and Microsoft 365 application suites. </p> <p>Web applications are different from traditional websites in that they are more interactive and allow users to manipulate data and accomplish tasks that can be very complex. In terms of functionality, they are often similar to traditional applications, while often differing in appearance, user experience and sometimes ease of use. If you’ve had a chance to use both Microsoft Office’s desktop application and its web application version, Office 365, you’ll know what we mean.</p> <p>The user interface of a web application can also be encapsulated in a web viewing application, which allows to build both mobile applications (thanks to UIWebView on iOS and WebView on Android) and desktop applications (by using the Electron framework for example, which includes the Chromium web rendering engine). Web viewing applications are in fact pared-down web browsers with no browsing interface, that only provide access to a single online application. Popular applications like WhatsApp, Twitch, Microsoft Teams and Slack are based on this technology. </p> <p>Web applications provide many advantages:</p> <ul> <li>The client-side execution, performed in a web browser, requires no complex installation for users. As far as the user is concerned, they are plug-and-play.</li> <li>They dispense users from performing updates, since they are always up-to-date by definition.</li> <li>They don’t require much client-side horsepower (disk space, computing power).</li> <li>By their very nature, they run on all desktop platforms (Windows, Mac, Linux), as do web applications that are optimized for mobile devices (iOS and Android).</li> <li>Any such application, as well as connected data, can easily be accessed from several different devices, for example work and personal computers, which can be useful for teleworking.</li> <li>Data stored remotely facilitates collaboration (for example, several users can work on and modify the same document simultaneously).</li> <li>And the list goes on.</li> </ul> <h2>What are the various types of web applications?</h2> <h3>Static web applications</h3> <p>Instead of fetching content through server-side processes and then sending this content to users, static web applications rely entirely on the client’s web browser to manage their interaction with layout and content. In other words, static web applications don’t rely on a server to provide dynamic content, using instead a standard web server to deliver static files. As it relies entirely on web technologies, it is made up of files in HTML, CSS or JavaScript, as well as images (GIF, JPEG, SVG). Graphics manipulation (HTML+CSS) is handled within the web browser, through JavaScript. </p> <p>One of the advantages of static web applications is their frugal use of server-side resources, since they’re just files stored on a plain old web server (HTTP) and sent “as is” to end-users. No need to manage an infrastructure robust enough to ramp-up to handle multiple active processes as the number of users increases. Also, you can produce applications that can function off-line. That being said, their field of application is quite limited.</p> <h3>Dynamic web applications</h3> <p>Dynamic web applications rely on a web server to serve files to the web browser client (Apache, Nginx, Lighttpd, etc.) and on an application server to produce the content requested by the client. Application server technologies can come in several different programming languages, as we’ll see later.</p> <p>The downside to these dynamic applications is that they need a permanent connection to the server executing the application instance. Plus, said connection must have the bandwidth to support complex applications; otherwise, users experience slow, error-plagued service. And when the Internet connection fails, so does the application. Finally, the more users there are, the more robust the server-side infrastructure should be, to support peak usage.</p> <h3>Hybrid web applications</h3> <p>We’re just touching on these for the sake of theoretical thoroughness, and because you will come across this terminology. “Hybrid” applications execute some of their functions locally, within the web browser, on JavaScript, and the balance of their functions on a remote server. In other words, they’re both static and dynamic. In practice, most dynamic web applications are actually hybrid, insofar as they call on locally-executed JavaScript scripts, if only to inject content in the client’s HTML using Ajax, a technique based on JavaScript.</p> <h3>Progressive Web Applications</h3> <p>Progressive web applications (PWAs) are a method of developing web applications specifically for mobile phones that prioritizes quality of user experience, regardless of the device used or the quality of the Internet connection. It’s an unofficial standard supported by Google, specifically for its Android platform. You can assess the level of compliance of an application to the PWA “standard”. Practically speaking, it’s a static web application (see above).</p> <h2>Some examples of web applications</h2> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11534/mobile_app.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11534/mobile_app.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11534/mobile_app.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="web applications" src="https://mirror.spiria.com/site/assets/files/11534/mobile_app.webp" alt="web applications" /></picture></p> <p>Web applications rule the Internet. All transactional sites are in fact web applications. They are increasingly common as “software as a service”, or SaaS. These applications, available for free or by subscription, are accessible through a web browser and can be almost as sophisticated as native desktop applications. The Office 365 suite is an example of such a SaaS; more recently, Adobe launched a very decent web application version of its flagship software, Photoshop. It goes to show how versatile and powerful web applications can be.</p> <p>Web applications can also be so discreet that most users don’t even know they’re using one. This is the case with encapsulated web applications, which look just like a standard desktop application and don’t need a web browser. These applications are developed using frameworks, like Electron, which combine the Chromium rendering engine (the graphics engine underpinning the Chrome web browser) and the runtime Node.js.</p> <h3>On-line commerce platforms</h3> <p>Online commerce sites are in fact web applications that can handle many different tasks, from order processing to inventory management. Large businesses, like Amazon, develop their own applications to meet their specific needs. Small and medium-sized businesses, on the other hand, tend to use SaaS solutions, like Shopify. This kind of platform provides all the tools needed to create and launch electronic commerce sites, including product and supply chain management, and payment systems.</p> <h3>Customer relationship management solutions</h3> <p>Customer relationship management (or CRM) software is a tool designed to help companies offer their clients a unique experience and maintain their relations with them in order to develop sales. CRMs provide a complete picture of every interaction with every customer and offer sophisticated sales tracking tools. CRMs support collaborative work among different teams, like Sales and Marketing, for example. Some examples of popular customer relationship management solutions are the Salesforce and HubSpot platforms.</p> <h3>Enterprise Resource Planning software</h3> <p>Enterprise Resource Planning (or ERP) software is the backbone of many companies; it centralizes several essential functions, like human resources management, accounting, finances, decision-making support, etc. This crucial software is increasingly being offered as a SaaS, i.e. as a subscription-based web application. Some of these online solutions include Microsoft Dynamics 365, Oracle NetSuite ERP, Sage X3 ERP, SAP Business ByDesign, Plex Manufacturing Cloud, and others.</p> <h3>Content Management Systems (CMS)</h3> <p>There are two ways of managing online content, in other words, of building a website. The first one is to install an application, for example Drupal or ProcessWire, on a server. The second one, which is simpler, is to use a SaaS platform where everything is pre-installed, for example Wordpress.com, Squarespace or Wix. In either case, you’re dealing with “back office” web applications, i.e. interfaces that allow you to manage your content.</p> <h2>Web application development process</h2> <p>As for any application, the process of developing a web application must go through several indispensable stages to succeed:</p> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11534/process.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11534/process.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11534/process.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Process" src="https://mirror.spiria.com/site/assets/files/11534/process.webp" alt="Process" /></picture></p> <h3>1. Planning</h3> <p>Planning is fundamental to web app development, and is based on exploratory meetings and analysis with the multidisciplinary team in charge of development. At the planning phase, you put in place all your risk abatement measures to start off on the right foot. Do not rush it or worse, dodge it, as your planning is a good predictor of your project’s success or failure. At this stage, you define the concept, set the basic outline of the product, identify the target market and assess the relevance of each one of your projected features.</p> <h3>2. Requirements</h3> <p>This step takes up the work you did in the planning stage while adding a new layer of detail. You seek to comprehensively and accurately capture the needs and objectives of the web application. You’ll end up with a complete list of the application features that each team will prioritize (in “sprints”) for design and development purposes. The completion of this stage should yield all the information you need to assess the cost of your project.</p> <h3>3. Design and prototyping</h3> <p>Once you’ve defined your requirements, the architecture of the application is sketched out in this phase. It can take one of several forms. For example, it can describe the technological architecture (hardware and software), or the interfaces exposed to different services or data sources.</p> <p>At this stage, an analysis of the User Experience (UX) helps build a functional mock-up (wireframe) to validate the visuals (User Interface), the usability and the efficiency of browsing within the application. The goal of UX/UI for a web application is to provide excellent user experiences through interfaces that are interactive, intuitive, fluid, efficient and user-friendly. The success of a web application rides on the quality of its design, which will dictate whether users adopt and use all of its features.</p> <p>Different proofs of concept can give rise to different functional prototypes. These proofs of concept are validated and tested on the front-rnd with representative users of the target market, before launching into the next step. Spiria provides a service called “<a href="https://www.spiria.com/en/services/growth-driven-strategy/discovery-process/">Discovery Process</a>”, which includes and covers these first three phases. The goal is to plan out any future software product and to provide you with functional prototypes and a clear, comprehensive roadmap.</p> <h3>4. Software Development</h3> <p>As its name indicates, this is the stage when developers write the actual code for the application (front-end and back-end) and connect the interfaces to achieve the defined objectives. Depending on the server-side platform and the type of web application, developers will use various programming languages and software tools. All this is explained in detail in the “<a href="#h2_04">Technology Stacks</a>” section below</p> <p>As we work with the <a href="https://scrumguides.org">Agile-Scrum methodology</a>, this is an iterative process. This means that the client can monitor, test and approve the features as they get coded, and that an operational solution can be delivered progressively, according to the needs prioritized by development cycles (the “sprints”).</p> <h3>5. Testing and quality assurance</h3> <p>Throughout the development phase, various tests put the web application through its paces with a view to validating its behaviour, security, performance and operation in different client-side environments (real or virtual). Several aspects of the program get validated: do the interfaces display correctly on all screens, regardless of their format and orientation (in the case of mobile), and are they reactive enough? Does the application use up too much battery power? Does it properly manage network bandwidth when trying to connect? Are the details of user accounts stored safely? And so on.</p> <p>The teams execute test plans and the results are parsed. During this <a href="https://www.spiria.com/en/services/purpose-built-development/quality-assurance-test-automation/">quality assurance</a> (QA) work, a continuous feedback loop between quality analysts and developers serves to eliminate any malfunction, error or unexpected result. When all the problems identified by the quality analysts are addressed, the application is ready for release. In-depth quality assurance tests at the development stage are the only way to ensure that the web application will be stable, usable and secure from day one.</p> <h3>6. Release</h3> <p>Application release marks the end of development and testing of your web application. It’s that great day when users will be able to discover your application.</p> <p>For most web applications, this phase involves making the client application available on a platform and transferring the server application and related databases to a production environment.</p> <p>Suppliers of infrastructure dedicated to web services, like <a href="https://aws.amazon.com/ec2/?nc1=h_ls&ec2-whats-new.sort-by=item.additionalFields.postDateTime&ec2-whats-new.sort-order=desc">Amazon Elastic Compute Cloud</a> (EC2) or <a href="https://azure.microsoft.com/en-us/services/app-service/">Microsoft Azure App Services</a>, offer tools that simplify and secure the deployment of web applications on their servers.</p> <p>The last step is to connect the client and server sides for a seamless routing of queries and responses through HTTPS. You can use a load balancer to receive queries made by clients on the front-end and forward them to the back-end instances which will send a response. But here again, the main cloud computing suppliers offer sophisticated tools, like <a href="https://aws.amazon.com/fr/elasticloadbalancing/">Elastic Load Balancing</a>, which automatically distribute incoming traffic over various Amazon EC2 instances. Best practice requires that all client-server traffic be encrypted; therefore, you’ll need an up-to-date SSL certificate.</p> <h3>7. Maintenance</h3> <p>This is the phase where, typically, a new team takes over. This new team is a post-release, after-sales client service team. Following a stabilisation period for the solution after its release, the <a href="https://www.spiria.com/en/services/purpose-built-development/support-maintenance/">support and maintenance team</a> monitors client requests, crash reports and any problems flagged by end-users. This team also ensures that the application remains compatible with new generations of web browsers and new versions of operating systems.</p> <p>Note that swift assistance for end-users and frequent updates to fix and improve the application are essential to retain user engagement. Also, do encourage your users to provide you with comments and suggestions on your application. They can be a great source of ideas for application enhancement.</p> <h2>Technologies used to build web applications</h2> <p>Most commonly, dynamic web applications follow the lines of a three-tier client-server architecture.</p> <p>The first tier handles the presentation of the application on the user’s screen, called user interface. This is handled by the web browser using web technologies like HTML, CSS and JavaScript.</p> <p>The second tier resides on an application server and processes client queries, receiving them and sending back appropriate responses. This is referred to as “application logic”. There is a wide choice of different technologies to handle this tier; you can even use several of them for a single application, by breaking up the tier in various entities.</p> <p>The third tier handles data storage. This tier is basically a traditional database that responds to the queries forwarded from the second tier. The choice of technologies for this tier is more limited: MySQL, PostgreSQL, Microsoft SQL Server, Oracle, SQLite, MongoDB, among others.</p> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11534/working.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11534/working.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11534/working.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="Technologies" src="https://mirror.spiria.com/site/assets/files/11534/working.webp" alt="Technologies" /></picture></p> <h3>Client-side code</h3> <p>This is the code that is loaded by the client’s machine to display the user interface and data transactions with the server. This code is split in three parts: HTML, cascading style sheets and JavaScript. To develop this code, you can start from scratch, or use one or more frameworks. Frameworks make things run faster and usually provide a set of conventions that make life easier for all involved.</p> <h3>Server-side code</h3> <p>The application that runs on the server can be coded in a variety of programming languages, like C#, Java, Python, Ruby, or PHP, for example. This application receives the client’s HTTP queries, processes them and returns the expected responses to the client. Here too, you can use development frameworks; each language offers at least one.</p> <h2>Web frameworks</h2> <h3>How to choose your framework</h3> <p>Choosing the right framework is crucial, as a bad choice will waste time and money: while you can’t suddenly change tools mid-development, sticking to an unsuitable architecture will cause problems over the entire life cycle of the application. </p> <p>When choosing your framework, consider the following factors:</p> <ul> <li><strong>Needs of the application</strong>. The first thing to consider before choosing your framework is what the application has to be able to do. With a firm grasp of the needs of the application, you can target your research to come up with a shortlist of potential frameworks. </li> <li><strong>Popularity of the framework.</strong> While the popularity of a framework is not a technical criteria, it is still an important consideration: the more popular the framework, the more active the attendant community. This means more responses to questions on sites like StackOverflow, more tutorials, more plug-ins, more contributions to open-source resources, etc. Furthermore, popularity correlates with a solution’s longevity.</li> <li><strong>Quality of the documentation</strong>. Documentation quality can vary immensely from one framework to the next. When choosing your framework, make sure the documentation is exhaustive. As a general rule, the larger the number of examples and tutorials, the better the documentation. Also check that the documentation is up-to-date based on the most current version of the framework.</li> <li><strong>Cost</strong>. One thing to remember when choosing a framework is that some are free, others are only partly free, while others are only available on paid platforms.</li> <li><strong>Functional scalability</strong>. Many frameworks can be scaled-up or extended through modules or plug-ins. Look at the richness and variety of the catalogue before you make any decisions. You may find a module that will save you time and money on a key function.</li> <li><strong>Compatibility with existing architecture</strong>. Your application may have to fit in within a larger architecture, or on servers that support a limited number of languages and frameworks. For example, if you already use Microsoft .NET for services that interact with the database or for business logic, you may want to use ASP.NET for your web applications.</li> <li><strong>Team skills</strong>. If one or more of your developers are already conversant with a given framework and language, you’ve got a head start: you’ll have a shorter learning curve and avoid the most common mistakes. Conversely, if none of your developers are familiar with Ruby, you may want to steer clear of Ruby on Rails, unless they have a lot of time on their hands.</li> <li><strong>Security</strong>. Last but not least of the issues to consider! Some frameworks emphasize security and have basic security measures built-in, whereas others leave it up to developers. Also, you’ll want to use a framework that is regularly updated to fix any security issues as they crop up, which brings us back to the criteria of popularity. Finally, be very cautious when using plug-ins, as they can introduce chinks in an otherwise secure framework armor.</li> </ul> <h3>Front-end frameworks</h3> <p>Client-side web frameworks are based on JavaScript and TypeScript, a strict syntactical superset of JavaScript developed by Microsoft. The following are the most common examples of such frameworks, but there are many more out there.</p> <p><strong>React</strong> is a free, extremely popular, open-source JavaScript library that underpins countless Web applications. Maintained by Facebook and a community of developers, it allows you to build highly interactive interfaces using components. In use, React is particularly flexible and efficient, using a virtual DOM and updating the rendering in the browser only when really necessary.<br />⇨ <a href="https://reactjs.org">reactjs.org</a>.</p> <p><strong>Vue</strong> is a JavaScript library developed by a former Google engineer and maintained by a community of developers. It offers excellent documentation and functionalities, including a virtual DOM, that rival any competitors’. This “lite” library, which enjoys a well-deserved popularity, is the go-to choice for progressive web applications.<br />⇨ <a href="https://vuejs.org">vuejs.org</a>.</p> <p><strong>Angular</strong> is a framework based on TypeScript and developed by Google. Emphasizing stability, robustness and security over innovation, it is ideal for large enterprise applications. Angular is better suited to complex applications than to highly interactive ones. While its learning curve is rather steep, once mastered, it enables quick and robust development.<br />⇨ <a href="https://angular.io">angular.io</a>.</p> <p><strong>Ember</strong> is an easy-to-learn JavaScript framework with a very dynamic community. Now in its tenth year of existence, it provides a very plush and mature library of plug-ins. It supports server-side updating of the DOM (in Node.js via FastBoot). Emphasizing productivity and conventions, it fosters orderly development and supports collaborative work, unlike React, for example, which provides few safeguards. If you’re the kind of person who likes a place for everything and everything in its place, Ember is the solution for you.<br />⇨ <a href="https://emberjs.com">emberjs.com</a>.</p> <p><strong>JQuery</strong>, one of the oldest JavaScript frameworks, is still spry and active. It is supported by a large community, offers a vast choice of plug-ins and provides endless possibilities to manipulate the DOM. Though it is perfectly suited for many different kinds of applications, it is more cumbersome than modern frameworks and is losing ground with developers.<br />⇨ <a href="https://jquery.com">jquery.com</a>.</p> <p><strong>Backbone</strong> is a JavaScript library with an MVC architecture that encourages you to translate your data into models, DOM manipulations into views, and link them together with events. This “lite” framework is ideal for simple, small, one-page web applications.<br />⇨ <a href="https://backbonejs.org">backbonejs.org</a>.</p> <p><strong>Svelte</strong> isn’t actually a framework or library, but rather a compiler that offers a radically different approach to building web interfaces. The fans of this tool are fewer but devoted, as it allows them to develop projects with much less coding than other frameworks. The compilation process produces just the JavaScript code necessary for your application; no need for the client to load an entire JavaScript library. It’s much more resource-efficient than React or Vue.js, and is much quicker and reactive from the end-users’ point of view.<br />⇨ <a href="https://svelte.dev">svelte.dev</a>.</p> <h3>Back-end frameworks</h3> <p>As you can use a wide variety of languages to build a web application, very often, the choice of languages will dictate the choice of frameworks.</p> <p><strong>Django (Python)</strong> is a free, high-level, open-source MVC framework that supports quick development and clean, pragmatic design. It takes care of many of the issues related to web development, including security, so that you can concentrate on coding your application without reinventing the wheel. Based on Python, Django code is easy to read and maintain. It is an excellent choice for many web applications.<br />⇨ <a href="https://www.djangoproject.com">www.djangoproject.com</a>.</p> <p><strong>Ruby on Rails (Ruby)</strong> is an MVC framework based on the Ruby language and whose philosophy is close to that of Django. When it launched, in 2004, it revolutionized web application development; most modern frameworks stem from it. It enjoys plentiful documentation and a large community that is as enthusiastic as it is welcoming. RoR applications can present some challenges when deploying into production. While it’s relatively easy to learn at first, things can get complicated when dealing with complex problems.<br />⇨ <a href="https://rubyonrails.org">rubyonrails.org</a>.</p> <p><strong>ASP.NET Core (C#, F#)</strong> is Microsoft’s open-source web framework. Its modular architecture is geared to developing large, complex applications and excels at it. It can run on various platforms and works completely seamlessly with modern client-side JavaScript frameworks (React, Angular, Vue, Ember). Developers benefit from the powerful Microsoft Visual Studio integrated development environment, which allows them to be more productive.<br />⇨ “<a href="https://dotnet.microsoft.com/learn/aspnet/what-is-aspnet-core">What is ASP.NET Core?</a>”</p> <p><strong>Laravel (PHP)</strong> is the MVC framework of choice for PHP developers. Its syntax is known to be expressive and elegant. However, in terms of performance, Laravel is a step below other frameworks like Django or Express. Its popularity is predicated on PHP’s.<br />⇨ <a href="https://laravel.com">laravel.com</a>.</p> <p><strong>Flask (Python)</strong>, which is very popular with pythonists, is a microframework, i.e. a bare-bones basic package that can be fleshed out with modules. Its documentation and community are solid. It’s an excellent choice to provide web services on small systems with limited means (for example, on a Raspberry Pi card or an Arduino microcontroller).<br />⇨ <a href="https://palletsprojects.com/p/flask/">palletsprojects.com/p/flask/</a>.</p> <p><strong>Express (Node.js/JavaScript)</strong> is a minimalist framework for the ever-popular Node.js. Like Flask, the basic system is lean, with plumping out through components. It’s the tool of choice for front-end JavaScript developers who wish to add some back-end skills to their toolbox. Many full-stack frameworks (i.e. front- and back-end frameworks) rely on Express for the back-end, including Feathers, KeystoneJS, Kraken, LoopBack, MEAN and Sails.<br />⇨ <a href="https://expressjs.com">expressjs.com</a>.</p> <p><strong>Spring Framework (Java)</strong> is a powerful, functionally-rich and well-thought-out tool for Java development. It provides a collection of programming and configuration models that simplify and streamline the development of web applications. It is well-suited to projects where maturity and stability are more important than speed of development.<br />⇨ <a href="https://spring.io">spring.io</a>.</p> <h2>How much does it cost to develop a web application?</h2> <p>The costs of developing a web application can vary hugely. Every application is unique and meets specific needs that can vary in number and degree of complexity.</p> <p>Imagine that you want to build a highway. In order to estimate the cost, you’d have to answer many questions: How long will it be? How wide? Will it require expropriations? What is the terrain like? Will it cross sensitive areas? Will it require noise barriers in urban settings? How many overpasses and bridges will it require? The answers to these questions, among others, will impact the final cost. The same goes for application development. You need to ask the right questions, and have the right answers. That said, building a web application is usually faster and less expensive than building a highway.</p> <p>The real answer to the question of the cost of development is as prosaic as it is disappointing: it depends. While many variables come into play, the main ones are the scope and the complexity of the project, which impact development time, which, in turn, translates into dollars and cents. While the simplest applications can be developed for a few thousand dollars, more complex applications that fulfill many different functions and handle sensitive information can cost 500,000$ or more and require a year’s development time. The only way to accurately estimate the cost is to make an exhaustive list of the needs and objectives of your web application. This activity is executed at the planning and requirements stage of the project (<a href="#h2_03">see above</a>).</p> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11534/roi.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11534/roi.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11534/roi.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="How much does it cost to develop a web application" src="https://mirror.spiria.com/site/assets/files/11534/roi.webp" alt="How much does it cost to develop a web application" /></picture></p> <p>If you don’t have a big budget, your best bet is to restrict your application’s scope and complexity. Start by defining your minimum viable product (MVP), i.e. the application that will meet your users’ basic needs, with features that are only strictly necessary or whose usefulness is established beyond a doubt.</p> <p>There are many advantages to going for an MVP. For example:</p> <ul> <li>By sending your MVP to market quickly and inexpensively, you start generating revenue that will finance future development.</li> <li>A functional application that is actually in use attracts investors more readily.</li> <li>An MVP allows you to capitalize on your early users’ comments, suggestions and expressed needs to improve your application iteratively, instead of wasting money on features that will never actually be used.</li> </ul> <p>Also keep in mind that the cost of an application doesn’t end with development: you need to budget for recurring costs, both fixed and variable, throughout its life cycle. Dynamic web applications, for example, can incur costs related to infrastructure (servers, backups, etc.), third-party services, and software licences, not to mention maintenance operations, support, updates, upgrades, etc. </p> <h2>The keys to success</h2> <p><picture><source srcset="https://mirror.spiria.com/site/assets/files/11534/magic.400x0.webp" type="image/webp" media="(max-width: 599px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11534/magic.760x0.webp" type="image/webp" media="(max-width: 999px)" /><source srcset="https://mirror.spiria.com/site/assets/files/11534/magic.1039x0.webp" type="image/webp" media="(min-width: 1000px)" /><img title="The keys to succe" src="https://mirror.spiria.com/site/assets/files/11534/magic.webp" alt="The keys to succe" /></picture></p> <h3>Clear goals</h3> <p>The success of your web application will be predicated on clearly identifying your goals and expectations. Clear business goals will guide your development team in developing a delivery strategy, prioritizing requirements, defining the criteria for success and developing a roadmap for the long haul.</p> <p>To avoid wasting precious time (and money) on the road to development, or losing your way entirely, you should examine three basic questions from every angle: <strong>What is it? Who is it for? How to achieve it?</strong> The answers to these questions will provide you with a detailed roadmap, increase your chances of reaching success, and minimize risk along the way.</p> <h3>Investing in user interface</h3> <p>Your application’s user interface rests on two essential pillars:</p> <p><a href="https://www.spiria.com/en/services/human-centered-design/user-experience-design/">User experience</a> (UX), which includes the paths, interactions, perceptions and impressions experienced by users when interfacing with your application. It’s everything that contributes to a feeling of user-friendliness; conversely, when done poorly, it gives rise to a feeling of frustration, which is the last thing you need when trying to acquire and retain customers to reach business goals.</p> <p><a href="https://www.spiria.com/en/services/human-centered-design/user-interface-design/">User interface</a> (UI) visually complements and supports UX. It refers to all the visuals your users interact with on your web application. It makes your application visually appealing and contributes to the feeling of ease of use. It helps users intuitively understand application features and helps them fulfill their objectives.</p> <p>Users expect simple, fluid and efficient interactions from web applications. They especially don’t want to have to figure out how to do things, and appreciate intuitive design. Make sure to give them a positive experience based on an easy-to-understand hierarchy of information and predictable design elements, so they can easily browse through your application. That’s when the usability tests come into their own; they reveal potential friction points and ensure that the interface engages its target market.</p> <h3>Security</h3> <p>Security must be a paramount consideration with this type of application, which is generally connected to the web and which stores and processes not only enterprise data but also customer information. Baking security into your application right from the get-go is always the most efficient strategy over the long run; it can never be an afterthought. After all, your company’s reputation, and very existence, rides on it.</p> <h3>Robust infrastructure</h3> <p>You know how annoying a slow, sluggish application can be. Don’t do this to your users. If your application looks more like the turtle than the hare, your clients will look elsewhere. The speed of a web application is a function of the quality of development and the infrastructure it relies on (like servers and connectivity). To keep service quality high, keep an eye on your application’s performance.</p> <h3>Scaling up</h3> <p>Now that your application is responsive and your infrastructure suitably robust, monitor its performance in real time. If the number of users surges (a nice problem to have), application performance will plateau and then decline, irritating existing users and turning off new ones. Worse yet, a sudden spike in visitors could crash your application-side server. Devising a pre-emptive strategy ahead of time will minimize these risks and head off any surge-related issues. However, to achieve this, your web application has to be specifically designed with a view to future scaling up and expansion.</p> <h3>Resilience</h3> <p>The overall architecture of your web application must not harbor any single point of failure, i.e. any single element whose failure can take out the rest of the system. Insofar as any system failures can cripple your business, examine every and all imaginable scenarios and deploy preventative measures accordingly, such as redundancies, backups, CDNs, etc. That said, the fact is that even the biggest players are not safe from single point of failure: take Facebook, whose systems shut down worldwide for a whole day, in 2021. One tiny mistake in configuration changes on the backbone routers that coordinate network traffic between data centers was enough to fell the giant.</p> <h3>The right technological partner</h3> <p>Unless you develop your application in-house, you’re going to have to search for the right technological partner, who will turn your ideas into a powerful web application, the precursor to your success. Do you need some advice to make the perfect choice? It just so happens we have a piece on that very issue: “<a href="https://www.spiria.com/en/resources/identify-the-right-software-development-partner/">Identify the right software development partner</a>”.</p>

Culture
5 min read
Your First Interview with Spiria
<div><h2>First off, you will get an invitation by email</h2><p>Shortly after successfully submitting your resume (see our <a href="https://www.spiria.com/en/blog/working-environment/spirias-recipe-for-a-tasty-it-resume/">recipe for a tasty resume</a>), you should automatically get an application receipt notification. Our talent acquisition team will review your resume within two to three business days. Should your skill set match our current needs, we will send you an e-mailed invitation for a thirty-minute video or phone call. Rest assured that we won’t call you without first setting up an appointment.</p><p>Identity theft being all too common, take care to protect your personal information during the hiring process by looking up our Culture & Talent team’s profiles on LinkedIn. We will never ask you to give us personal information such as your SIN or your financial information during the selection process.</p><h2>Next, choose a time and day for our call</h2><p>Once you’ve received our invitation to the initial interview, take another look at the job posting that you have applied for and the resume you sent us. You can also refer to <a href="https://www.spiria.com/">Spiria’s website</a> to find out more about our company. Let us know which day and time work best for you. Our talent acquisition team will do its best to be available when you are. Before confirming the day and time of your meeting with the team, make sure you have a reliable internet connection and a quiet space to speak freely.</p><h2>And then, let’s talk</h2><p>Our first meeting is an opportunity to go over the issues that are key for you and the job. We will ask you to tell us more about your current situation, your experience and competencies, the types of projects you have worked on, the technologies you are skilled in, and what other competencies you would like to develop. If you are bilingual, we may switch between French and English during our conversation.</p><p>We will also ask you about your salary expectations. As Spiria has developed a <a href="https://www.spiria.com/en/blog/working-environment/spiria-moves-toward-pay-transparency/">pay transparency policy</a>, you can rely on the pay scale mentioned in the job description to steer the conversation.</p><p>During the initial meeting, the talent acquisition team will share a lot of information about the company, its values, the job itself, benefits, the teams’ composition, etc. Of course, there will be time for you to ask all your questions.</p><h2>And finally, we will get back in touch with you</h2><p>Normally, you will hear from us within a week. If your situation changes and you require an answer more promptly, feel free to contact the talent acquisition team. The next steps are the technical test (for software development jobs), and an online interview lasting approximately sixty minutes.</p><p>The job candidate’s experience of applying at Spiria is important to us. The talent acquisition team is available to answer your questions throughout the whole process.</p></div>