Best known as the technology behind virtual currencies such as bitcoin, blockchain now also starts making waves in other industries. Despite being only pilot projects so far, they clearly display the advantages that could speed up the roll-out of blockchain on a large scale.
Blockchain revealed its potential outside the world of cryptocurrencies. By disintermediating trusted parties, Blockchain is considered as one of the most disrupting technologies for the coming years. More than a shared ledger, the technology enables improved transparency, self-executing smart-contracts, machine-to-machine payments, decentralized applications and eventually autonomous organizations.
Decentralization
According to the definition used by Blockchain France, a blockchain is ‘a transparent and secure storage and information transmission technology, acting without a central authority’. The principle of blockchain is based on a database that records all transactions made between users (comparable to a general ledger). The database is secure, as it is distributed among its users without any centralized control. This allows all users to verify if the chain is valid.
In contrast to a classic database that is based on servers, a blockchain is completely decentralized, works without central authority and is perfectly secured. And what’s more, blockchain is completely royalty-free. So, there are only advantages. It made some people think that the entire financial world would be taken over by cryptocurrencies like bitcoin or ethereum.
However, we need to realize that blockchain requires gigantic computing capabilities for its operation. First of all, it is necessary to download software that becomes a node of the chain. Moreover, each transaction must be verified and validated by all the nodes before being available in the block, which dates it and makes it impossible to tamper with.
Impact on all industries
So far, blockchain mainly appeared in the financial world in the shape of cryptocurrencies. But it is clear that the technology could be applied to other industries as well, given its strength in terms of decentralization and security. In fact, blockchain could be used for any activity that involves transactions or the exchange of information. Opportunities can be found in healthcare, the public sector, several industries (such as logistics), not to mention transactions or the exchange of information between individuals.
Unfortunately, blockchain also comes with a major challenge. Since blockchain is a disruptive technology, as its concept is revolutionary and innovative, it is necessary to completely rethink a process before implementing blockchain. It makes no sense to start rolling out blockchain technology without having first implemented a methodology to redesign the process – and align it with the principles of blockchain.
And there’s more. As blockchain works without a central authority, it holds the power to wipe out platforms such as Uber or Airbnb, which are basically service aggregators. In other words, compared to what some people are talking about as the Uberization of the economy, blockchain goes even further and is disruptive technology in the true sense of the word.
Potential
According to research firm Gartner, which offers its predictions every year in terms of technological innovation, 20% of companies will have abandoned their mobile application for the According to the Gartner research group, which offers predictions about technological innovation, 20% of companies will trade mobile applications for blockchain by 2019. Research shows that blockchain technology could represent a 7,7 billion dollar market by 2022.
Obviously, the financial world is at the forefront of blockchain implementation. But other industries will follow. The French government already issues bonds based on blockchain. The production and management of energy using solar panels and wind turbines are also the subject of experiments with blockchain. Managing copyrights (for example in music or photography) is a perfect fit for blockchain technology. In the travel industry, some suppliers develop automated travel insurance solutions based on blockchain. A smart contract – based on blockchain – combines travel conditions with airport data, resulting in direct compensation for travelers, for example in the event a flight is delayed.
For companies, all processes related to logistics, HR management or finance can be impacted by blockchain. In the end, it is clear that the convergence of public and private channels will cause the exponential growth of blockchain, creating an ecosystem where businesses and their trading partners collaborate seamlessly and securely. At the same time, the more the physical and digital worlds converge, the more blockchain applications will appear.
Partnership
Facing the blockchain trend, Gartner remains cautious: “Applying blockchain requires a clear understanding of the business opportunity, the capabilities and the limitations linked to blockchain, a trusted architecture and the necessary implementation skills.” In short, to transform blockchain into a real competitive advantage, a company requires a partner who understands both the technology (IT) and the business (organizational processes).
As with any new, innovative technology, the main business challenge is knowing when to use blockchain and understanding its pros and cons. The distributed and secure nature of blockchain are often put forward as its most important advantages. Other elements, such as the ability to quickly process large volumes of data, can be important bottlenecks. To find out quickly in which cases blockchain technology can deliver value, WEF has published a decision tree. It allows to define the selection criteria for a blockchain project (see illustration).
If the decision tree indicates that blockchain is the best possible solution, it is still necessary to get access to the technology. Major IT suppliers such as Microsoft and IBM didn’t hesitate to position themselves in the rapidly evolving blockchain market. In this context, Aprico keeps an eye on the evolution of the technology. In the most pragmatic way, we help our customers realize the ambitions they have with blockchain.
In case the selection criteria for blockchain are not met, there are of course other technologies that may help achieve the company’s objectives, such as automation or data distribution. These technical topics are part of Aprico’s areas of expertise.
Aprico develops expertise in several domains of technology. Its added value lies in the ability to guide customers towards the most appropriate technical solution.
Aprico Consultants is a consulting firm specializing in the architecture and transformation of information systems. Accelerating our customers’ digital transformation processes allows us to offer the flexibility, performance and competitiveness our customers need to strengthen their market position and improve their customer service.
Looking for more information about Blockchain ? Join us at our Blockchain Conference on the 19th of October.
Inscriptions: https://www.aprico-consult.com/blockchain/
Chatbots: artificial intelligence takes shape
Following the increase in computing power and the development of artificial intelligence, chatbots are on the rise. Today, they thrive in the fields of marketing and customer relations, but tomorrow they will probably replace more apps.
Chatbot: new out of old?
Conceived in the fifties by British mathematician Alan Turing, whose work was picked up in the sixties by the famous MIT, a bot is a piece of software capable of automatically performing a specific task. In essence, a bot is a kind of script that allows, for example, to add an event to a calendar or make a reservation.
The emergence of neural networks and artificial intelligence made it possible to design much more sophisticated algorithms and a more ‘natural’ interaction with users. They allow bots to have a better understanding of human language. As a result, bots have been associated with messaging systems, hence the term ‘chatbot’ or conversational agent. Facebook Messenger, for example, offers different specialized bots in an online store (weather, traffic information, news, and more). Other players, such as Microsoft (Skype), Google (Now), WhatsApp, Kik, Slack or Telegram also offer this type of chatbots.
Customer relations and marketing
Assuming that chatbots are able to perform specific tasks and that their success is growing, one could easily imagine them replacing mobile apps, based on the integration of commands into a messenger application. Especially since the development of a chatbot is significantly less expensive than that of a website. In addition, a chatbot is available 24 hours a day, user-friendly and much cheaper than a human operator.
At first, chatbots were mainly used in the field of customer relations. Gartner estimates that by 2020 no less than 85% of customer relations will be handled by chatbots, replacing human intervention. It comes as no surprise that a company like Salesforce, world leader in customer relationship management (CRM), decided to invest heavily in a bot platform.
Other obvious markets for chatbots include marketing and retail. Companies like Sephora, Bank of America, Pizza Hut or closer to home Bol.com, are already using marketing chatbots to interact with customers. On the other hand, according to a survey by IT infrastructure provider Dimension Data, only 4,2% of Belgian companies have already deployed a bot for their client communications. However, 29% plan to do so in the next two years.
Multiple opportunities
A chatbot can be integrated into any type of interaction. In the field of human resources, a chatbot could process requests for leave or reimbursement of expense reports, sick-leave, teleworking conditions, and more. The Cefora training center, for example, deployed a chatbot to handle initial contacts with candidates in the recruitment process. Similarly, PwC uses the Tenzing chatbot to help recruit future graduates
In addition, the technical support departments of companies can use chatbots to provide answers to users who work on software, especially in the field of office software. For its technical staff, Engie has created a bot that is integrated with Skype and helps the company control its wind farms. Field technicians query the system for technical characteristics of the wind turbines and then check the items on site.
In Brussels, STIB has joined forces with mortierbrigade to develop a chat messenger for Facebook Messenger. The goal is to raise awareness of the different neighbourhoods of the capital. As a result, the Cath & Gery bot helps users to learn more about the Sainte-Catherine and Saint-Géry area.
A chatbot can also be deployed to automatically process a transaction, such as the purchase of a ticket (plane, train, concert), a sales transaction (in particular on an e-commerce site or a site for internet banking) or a request for information (for example about the weather or the stock market).
The keys to success
The interest in chatbots is growing quickly. IDC estimates that by 2019, 75% of employees whose daily tasks involve the use of business applications will have access to intelligent personal assistants to increase their business skills and expertise. According to Juniper, chatbots could represent up to 8 billion dollars in savings.
To make a chatbot project succeed, French communication agency Tomg-Conseils describes six steps that must be respected: realize a real benefit for the user; master the scenarios and provide a fluid user experience; predict the unexpected and add a layer of natural language; provide a friendly chatbot offering a playful experience; choose the right technical solution and have it tested – and retested – by real users.But isn’t that advice that applies to any computer project?
About Aprico Consultants
Aprico Consultants is a consulting firm specializing in IT projects in architecture and information systems transformation. By firmly accelerating digital transformation processes, the company provides its customers with the flexibility, performance and competitiveness they need to strengthen their position in the market. Aprico Consultants closely collaborates with clients to translate their strategy, objectives and constraints into pragmatic transformation programs that deliver real added value and a proven return on investment.
Face aux méthodologies classiques de développement du style cascade ou (semi-)itératif, les organisations sont de plus nombreuses à se tourner vers les méthodologies agiles, estimant que celles-ci leur permettraient de réduire les délais de mise en production d’applications (le fameux time-to-market).
Certes les méthodes agiles imposent de pouvoir livrer de manière itérative, dans des délais constants (parfois très courts, ex. : sprint de 2 semaines) et avec un niveau de qualité élevé. On remarquera donc que diminuer ce « time-to-market » est intimement lié à la qualité et l’automatisation de livraison.
Dans ce principe d’excellence technologique, lorsque l’on parle de qualité logicielle, cela commence par la qualité du code : écrivez du code « clean[1] » ! Nommez les variables, les méthodes, les classes, de manière parlantes. Ces noms doivent être signifiants par rapport à l’analyse métier qu’ils supportent. Evitez les commentaires inutiles. Un bon commentaire est un commentaire que l’on ne doit pas écrire car le code est suffisamment explicite sur ce qu’il fait. Définissez et alignez un formatage du code entre les développeurs. Utilisez des outils de contrôles et de formatages automatiques (ex. : Resharper, tslint, etc.) pour garantir et automatiser le code « clean ».
Ensuite adoptez un design de qualité, un design « SOLID[2] ». Lorsque vous écrivez une classe, celle-ci ne doit avoir qu’une seule responsabilité. Une classe « couteau suisse » sera difficile à comprendre et à maintenir. Etendre une classe plutôt que modifier l’interface de celle-ci permettra de réduire les risques de régression sur le code initial. Ecrire des classes découplées les unes des autres grâce à l’inversion et l’injection des dépendances, favorisera une meilleure structuration du code.
Ecrire des tests unitaires est un impératif pour garantir la qualité logicielle. Ces tests seront exécutés aussi souvent que possible, à la demande, à l’intégration et dans le meilleur des cas à chaque fois que le code change. Le code des tests unitaires est également utile à la compréhension du code testé. C’est pourquoi, l’écriture de tests unitaires doit également souscrire aux principes de qualité de code et de design cités précédemment. Différent patterns et librairies existent afin d’écrire et maintenir le code de tests unitaire ex. : AAA (Arrange-Act-Assert), xUnit, Jamine, Moq, TypeMoq, Autofixture, etc.
Il est important de garder à l’esprit que le code que vous écrivez, n’est pas destiné à la machine, mais à vous et aux autres développeurs qui maintiendrons et ferons évoluer ce code. Et dans une approche agile, l’évolution du code est continue.
L’automatisation de livraison, est l’art d’automatiser les étapes : d’intégration du code, de compilation, de testing, de déploiement et autres étapes de contrôle qualité, pour arriver à la livraison de la solution en 1 click. Plus les architectures se complexifie (ex : infra. Distribuée, cloud, micro-service), plus la valeur ajoutée de cette automatisation sera grande. Aujourd’hui plusieurs suites d’outils ALM[3] existent pour soutenir cette automatisation de livraison : Visual Studio Team Service, Jira, TeamForge, etc.
L’agilité n’est pas qu’une question de processus et/ou de rigueur d’analyse, c’est aussi et surtout une question d’excellence technologique au travers des aspects évoqué précédemment. Il n’y a pas de SCRUM, XP, KANBAN ou autre processus agile, sans la maitrise de ces pratiques d’ingénierie logicielle. Et plus que tout, ces maitrises sont l’histoire de techniciens, de programmeurs, de personnes.
[1] “Clean Code: A Handbook of Agile Software Craftsmanship” – Robert C. Martin
[2] “Agile Principles, Patterns, and Practices in C#” – Robert C. Martin
[3] Application lifecycle management
The rise of Adaptive Case Management (ACM) solutions – which started somewhere around 2010 – led to a lot of questions about the value of BPM (Business Process Management). But what’s the real debate? Are the two approaches opposed to each other or complementary?
For every organization that wants to do more with less, process automation is without a doubt a very interesting, if not essential approach. A company that automates its processes, reduces the number of tasks and errors, and improves its efficiency. In other words: process automation implies business process modeling or BPM. One of BPM’s objectives is to improve the internal organization of work. With this first goal of process modeling realized, it is possible to automate parts of other activities and improve the availability of the process for the employees, thus maximizing the time they can dedicate to activities with high added value.
Business Process Management can be seen as a modern take on Taylorism, as the processes are divided in small steps, which are in turn assigned to specialized actors: human employees or automated IT solutions. BPM is based on the assumption that processes are written in stone. They follow a tight scheme, including instructions on how to handle exceptional situations. This scheme is prepared in advance and remains stable throughout time.
Adaptive Case Management was introduced as a new way of managing organizational processes, which are by nature not repetitive. The main difference is that ACM doesn’t take the tightness of the process as a starting point. On the contrary, ACM is based on the expertise of the knowledge workers, who are capable of adapting themselves to get to the end result. ACM aims at managing every case in a specific way. How is it possible to work case by case? Well, ACM is based on a set of operational processes or procedures. They are combined in such a way that they deliver a custom solution for every specific situation.
ACM can be viewed as process orchestration on a lower level, aimed at dealing with a situation to achieve a result. Being the opposite of Taylorism, ACM is based on management by objective. What matters is getting the case solved, regardless of the path that was followed through lower-level processes or procedures.
From its introduction, ACM has often been described as the opposite of BPM, especially because it doesn’t follow the assumption of the strict execution sequence. In reality – and in hindsight – both approaches have more common ground than they have differences. In both BPM and ACM, the modeling is done one level of abstraction at a time, each level nested into the other and revealing more precise details when going from one level to the next. At the highest level of abstraction, the processes are brought together in a few macro activities.
Regardless of what is often said about it, everybody who is experienced in this matter knows that these macro activities are stable and almost always constant, from both the ACM or BPM point of view. On the lowest levels, the procedures become work instructions, very sequential in nature and following a fixed execution structure. So where can we find the difference? At the intermediate levels? Yes and no. Yes, because the work logic is located at the intermediate levels, including the rules and conditions that guide the treatment of each situation in one direction or the other. No, because the complexity of one condition doesn’t prevent a description in BPM more than it imposes a description in ACM.
The knowledge and experience that have been developed by Aprico Consultants strengthen our strong conviction that the expertise of the business analyst is at the heart of all this, much more than the choice between two methodologies. The understanding of an organization and its activities, the understanding of the decision making process throughout these activities, the understanding of the information the business needs to make these decisions: those are the true questions for the business analyst.
The complexity of a decision – if correctly understood and modeled – enables the choice between an automated or a manual solution: the choice between the roll-out of a workflow with BPM or the treatment of a case with ACM. “Correctly understood and modeled”, however, doesn’t mean it’s just a matter of model. The organization of work, responsabilities and internal choices all come into play. It’s on that level that the expertise of the Aprico Consultants business analysists makes the difference.
In conclusion, the expertise developed by Aprico Consultants through a wide range of projects tends to prove that there is no real debate, let alone a schism between two dogmas. At Aprico Consultants, we believe that both approaches focus on the same goal: the understanding of the business rules that guide the execution of actions. This field of expertise is at your service.
Would you like to know more about our business analysts? Contact us at sales@aprico-consult.com.
Thanks to networks and modern means of communication, frontiers and distances no longer exist. In this world, every business needs to provide its employees and commercial partners with secure access to information systems, at any moment and at any place. Today, businesses produce added value wherever their employees are. And those employees can literally be anywhere, as they happen to be more and more mobile. The development of mobile technologies forces them to integrate new tools into their way of working, to make sure they keep their competitive edge.
To be truly mobile, a business needs to integrate new tools. At the same time, it needs to adapt its operational processes and rethink an important part of its internal functions, based on applications that are capable of managing data. But what does that imply? Does a business have to turn its entire IT environment upside down? Does it have to start digging into its organizational structures?
According to Aprico Consultants, it doesn’t. Our approach is based on the evolution towards a more open organization, while changing the existing infrastructure to support this new openness. As a matter of fact, Aprico Consultants consider the evolution towards a mobile environment as the logical extension of the company’s existing processes, where mobility adds an extra dimension. This evolution takes place through communication and the integration of different types of platforms.
With their Mobile Enterprise strategy, Aprico Consultants aim at helping businesses innovate and rethink their processes, enabling them to open up these processes for the mobile world. We share the experience we built across numerous projects. Our customers benefit from best practices, new technologies and organizational models, allowing us to offer tailor-made transition and support every customer’s digital transformation. To achieve that goal, Aprico Consultants built a service offering that covers both competence outsourcing and tailor-made application development. It’s our creed to listen to the customer’s needs, build pragmatic solutions and offer consistent support throughout the entire digital transformation. Aprico Consultants always work in the interest of their customers and resent the idea of IT development for the sake of development.
More specifically, we believe that the key to the successful implementation of a mobile strategy is how to reconcile the objectives of a mobile platform (centered around greater customer intimacy) with the objectives of running efficient IT operations (seamless integration, the ability to execute and track end to end business processes across different platforms, etc).
Thankfully, our experience across mobile projects allows us to leverage the use of market-leading mobile technologies and frameworks, and combine them with best-of-breed BPM and integration technologies to maximize efficiency and value. This allows us to develop complex, transactional apps very quickly, and easily integrate them with diverse back-end environments.
As a company immersed in IT excellence, we also look beyond just the marketing advantages of a mobile app. Through automation and the use of DevOps, our solutions are easily maintainable, flexible enough to react to changing business realities, and future-proof.
To guarantee a mobile transformation project’s success, Aprico Consultants’ approach is based on three essential concepts – Smart, Lean and Agile – which are applied simultaneously. Smart means that Aprico Consultants really understand the added value of mobile solutions for the organization and that efforts are aimed at setting the right business and economic priorities to make the transformation work. Smart also means that Aprico Consultants work openly and independently, recommending the platforms and technologies that fit the customer’s reality best. Aprico Consultants apply continuous improvement to their Lean approach, enabling them to offer the right resources at the right time and at the best price. Finally, Aprico’s Agile vision combines discipline and permanent collaboration, involving all stakeholders into the development process at the earliest stage, allowing for quick prototyping and frequent testing, while dividing the project into manageable project sections and deliverables. The combination of these three essential rules leads to a shorter time-to-market. It allows for more flexibility and easier maintenance. Aprico Consultants’ method of working results in improved business performance and consequently in a higher level of customer satisfaction.
Companies today operate in a highly dynamic environment: new technologies emerge, regulations change, new forms of competition arise… The pressure is on to boost everything from operational efficiency and customer engagement to quality of service.
This places a heavy burden on IT teams and their sourcing vendors who can play a big part in carrying out these transformations. That's why at Aprico, we follow three cardinal Rules -- Smart, Lean and Agile - that we apply simultaneously to help our customers improve business outcomes, mitigate risk and avoid costs.
The Power of Smart
An enterprise today must grow at least as fast as its competition, or it risks becoming obsolete. Its ongoing mission is to innovate and create differentiated services, drive efficiencies and reduce operational costs.
In this age of business-led IT, however, software creation is not just a matter of delivering finished systems. They must also be relevant to your context, and well suited for your specific business needs.
The organizational context is particularly important: business strategy, enterprise architecture, risk and change management plans must increasingly be taken into account in the development process.
A collaborative approach is also essential so that everyone clearly understands the scope of work. We train our experts/consultants to communicate with many stakeholders and to think like business people. Only then can we see where the project’s value really lies in the organization and what makes economic sense before we deliver software that is valuable for the customer.
Above all, a smart approach must be transparent and free from conflicts of interest — unlike massive, multi-year software projects that are typically complex and prone to cost overruns, or platform-dependent solutions that can easily keep you locked into a rigid eco system.
That’s why at Aprico, we’re open-minded and independent: we do not base our recommendations on specific technologies or platforms, and are not affiliated with particular vendors.
The Power of Lean
A culture of Lean improvement is another source of competitive advantage.
In software development, this means driving out unnecessary complexity, such as repetitive planning, work on low-value features, work in process, or excessive documentation.
This also calls for applying the right resources at the right time and at the right cost to quickly get a working application into the hands of business users.
To raise development productivity, we can leverage engineering practices that depend on your context:
The result? We help deliver the most valuable features more quickly and predictably… and at reduced risk.
The Power of Agile
In today’s volatile environment, traditional techniques don’t deliver fast enough to satisfy your customer, business and marketing demands.
It’s important to put people and customers first. No one knows current issues better than the customers and staff who deal with the processes every day. As a result, we involve stakeholder groups early. Together, we look at each step in a business process, identify opportunities for improvement, and revise or cut out steps that do not create value.
We recommend creating small pieces of targeted functionality that deliver business value at each iteration. By breaking the work into manageable units and frequent builds, testing and reviews become more focused. Quality is also improved as we can locate and fix defects more easily and more rapidly.
This combination of ongoing collaboration, rapid prototyping, and frequent tests, helps shorten project duration and improve customer satisfaction.
A Dynamic Approach
Of course, your market may change rapidly and unpredictably: we understand this, and we welcome your changing requirements — even late in development. Through constant collaboration, task decomposition and short feedback cycles, we can help you adapt to new situations and opportunities.
As a result, risk is minimized, and a project can adjust to change quickly, giving you ownership and control.
Is Your Enterprise Ready?
Aprico has been helping companies transform their businesses for over two decades. This means that we can bring you the best practices, technologies and business models you need to adapt quickly to today’s fast-changing business and IT environments.
If Agile Development is a hot topic these days, it’s for good reasons. Fast-changing customer requirements, cost overruns and delays call for profound changes in software development. New project management frameworks are needed to adapt to changing conditions and release software more frequently.
But Scrum can come to your assistance. It ensures that customers can get exactly what they need when they need it. This framework helps reduce the life cycle of the entire software delivery process. It does, however, require a fair amount of self-discipline.
Scrum Means Teamwork
Like the game of Rugby from which it derives its name, Scrum has ground rules for creating a productive work environment. The framework relies on a cadence of iterative cycles, called sprints, where inputs, outputs and processes are well structured.
To that end, business domain experts, developers, and testers work together daily throughout the project. The customer is also an integral part of the team. Each iteration or new version builds on the results of the previous increment. What’s more, frequent stakeholder feedback helps achieve rapid delivery of working software.
Wanted: Good Team Players
A dedicated team with well-defined roles keeps the project focused on delivering value:
A Culture of Performance
As a tightly integrated unit, the team works toward a common goal. Good communication is essential, as quick feedback loops help adapt to new requirements. Performance is achieved through discipline. Attending the following meetings, in particular, is compulsory:
Deliver Faster and Better
As a collaboration framework, Scrum relies on a high level of feedback and transparency. At Aprico, we also believe that ground rules need to be observed for creating a good work environment:
Analysis kept to a minimum …
Stakeholders are not always clear on business requirements. And these requirements will often change over the course of a project.
Product owners provide on-the-fly details about the user stories during planning and grooming meetings. This information describes “what” the product should do at the end of a sprint.
From a business standpoint, the backlog of product requirements – including must-have items, should-have and could-have items – needs to be prioritized. If the Product Owners aren’t available for making decisions about these features and priorities, then they can assign a proxy.
From a technical standpoint, it’s important to stay on top of infrastructure legacy issues, such as access management, user interface, and technology standards. The Product Owner can help reduce ambiguity and risk by providing the needed details to translate the business needs into technical specifications.
… but always there when needed
If necessary, a workshop can be organized for gathering more information before starting certain sprints. These workshops are part of release planning. They can cover, for example, data model or business process issues.
Coding
Each sprint should deliver a completed working system. Aprico recommends pair programming where two engineers sit side-by-side at the same computer and work on the same piece of code together to address certain issues, such as complex tasks and code quality. In effect, this amounts to “real-time code review”. Not only does this reduce debugging and total implementation time, but it also creates a sense of shared responsibility and ownership.
Tests drive the code development process: new functionality is tested during its implementation to avoid regression, particularly when refactoring code or implementing changes.
Practice Makes Perfect
At the end of each sprint, review meetings help foster an environment of learning and adaptation. They also provide opportunities for coordinating multiple development teams.
Regular sprint retrospective meetings also provide opportunities for continuous improvement. In these sessions, team members can examine how they work together, what common issues, such as drops in quality or failing tests can arise, or how things could affect team morale or productivity.
Aprico at Your Side
Aprico is uniquely positioned to support your agile development initiatives. We base our agile development solutions on industry-recognized technologies, with a focus on scrum.
To meet today’s development challenges, we practice Agile disciplines in both on-premise and nearshore collaborations. Our industry expertise, process knowledge and technology resources help achieve on-time delivery with the high quality expected by the business.
What is BPM Done Right? Today, organizations have countless legacy systems and applications that need to be modernized. Their processes are critical for day-to-day business, from customer onboarding and order processing product or service delivery to exception handling and regulatory compliance.
For years, Business Process Management (BPM) technology has been used to address optimization and rationalization issues in work organizations. There’s often a misconception, though, that BPM is mostly about automating workflow in individual processes.
This view falls short of addressing the hottest needs of today’s organizations : achieve wide-ranging business transformation. So how do we strike the right balance between developing efficient, enterprise-wide processes and maximizing their alignment with corporate goals?
First, Get The Big Picture…
BPM is about more than just increasing efficiency or cutting costs in a department, group, or enterprise. At Aprico, we believe that it should serve enterprise goals. To that end, we focus on strategy long before process modeling or automation starts.
That means careful analysis of current processes to understand their related
issues. See what goes on inside a process, for example:
Too often in this exercise, I find that business executives are removed from the staff that’s involved in day-to-day operations. So BPM provides a unique opportunity to bridge this disconnect between executives and staff. And it also provides the foundation you need for business and IT professionals to work more collaboratively.
Align with Strategy
According to the ISO 9001 standard, the primary goal to achieve quality management is to meet or exceed customer expectations. So this calls for aligning business processes to meet customer needs.
To that end, I offer the following tips:
Talk to Domain Experts
To understand an organization’s processes, you can’t beat collecting information by face-to-face interviews with team members.
Ask people to explain what they do. Get the big picture about their knowledge, skills, and connections to each other. Identify their roles and responsibilities carefully. You might find that their roles and responsibilities are ill-defined, or have often changed over time.
In traditional organizations, people still think in terms of individual tasks, rather than streamlined processes. You need to see beyond the biases that can cause inertia or resistance to change.
Assess Task Value
By processes, we mean a set of activities that, taken together, produce an outcome that is of value to a customer. That’s why you need to ascertain:
Individual tasks handled by multiple people with successive handoffs can cause problems, including inefficiencies, errors or delays.
A process improvement may therefore require coordination, such as aligning activities, tasks, and information among interdependent units in an organization. Achieving the optimal level of coordination will often reduce bottlenecks and cycle times.
Implement the Process
The next step is to translate the insights that you have gathered into action. This will likely require bridging separate silos of activity within the organization. Depending on circumstances, you may :
A BPM implementation, however, requires integration with your existing infrastructure. Connectivity is critical for linking processes to the resources they control, such as people, system data and event streams.
Pre-built components, such as out-of-the-box interface applets and connectors to legacy that are provided by professional services firms, such as Aprico, can help you configure solutions without extensive custom development, reducing time-to-value. The benefits can include development time and cost savings, increased flexibility of applications, and reduced time-to-market.
Aprico: The BPM Partner
to Get it Done Right
At Aprico, we believe that harnessing business processes is key to remaining competitive in today’s digital age.
With over two decades’ experience helping companies transform their businesses, we can help you implement a consistent and sound Business Process Management. Our process analysis and process improvement skills, combined with domain expertise in key industries, such as financial services, energy, transportation, and government, can go a long way to optimizing business performance.
In recent years, DevOps has garnered tremendous interest from organizations as a way of improving business agility by streamlining software development.
The objective is to reduce application backlogs and accelerate software delivery by implementing smaller and shorter development/release cycles.
Based on carefully orchestrated development, testing, integration, and deployment activities, DevOps requires a disciplined and self-learning and approach that combines People, Processes and Technology.
People
To create the right collaborative environment, DevOps bridges all IT groups that used to work separately. Breaking down these barriers from business to delivery, however, requires a major change to IT culture.
DevOps service delivery combines the skills from people with diverse backgrounds, such as developers, infrastructure architects, operations engineers, database administrators, and testers to let them work closely together. These team members must be well rounded and with broad and deep understanding of what is required to successfully complete a DevOps project.
They must also continually adapt, iterate and grow. To create software in such a collaborative way requires teamwork accountability, and an IT culture based on skills, trust and empathy.
Process
DevOps takes a “continuous” integration and delivery . The development, testing, and release of applications take place more rapidly than under a traditional “waterfall” process.
Process structure and workflows have to be carefully defined in order to automate and orchestrate the tasks that are needed to move into production:
Build: As the DevOps delivery process continuously generates outcomes, the teams can rapidly see if their output is working. They can start a project by defining its Application Programming Interfaces (APIs), for example, organize their work around them, allowing testers to quickly implement their frameworks and save valuable time.
Test: A robust environment is required for tests. It should be optimized for all types of tests: functional, such as system and regression tests; non-functional, such as performance, load/stress or security tests; or specialized tests focusing on test environment automation and management.
To optimize efficiency, artifacts should be built and tested in consistent acceptance and production environments.
Test data governance, in particular, plays a key role in preventing potential risks and delays. Tests must run against a simulated data ecosystem consisting of multiple databases and/or masked production data.
For security assurance, it’s a must to implement masked test data from “live “ databases. To prevent vulnerabilities that could arise from large numbers of people with access to sensitive test data, teams need to implement data mastering and restrict access to live or production data.
Deploy: Configuration management is a time-consuming activity. Traditionally, operations teams have installed hardware manually to allocate it for testing purposes. In fact, according to The 2017 state of DevOps Report by Puppet, an Open Source software operations company, low DevOps performers spend almost half of their time (46%) on manual configuration. The highest performing organizations, however, have automated as much as 72% of all configuration management processes.
Rather than having technicians repeat tasks over and over, administrators can use scripts use automation tools to automate configuration steps. Configuration automation solutions, in particular, can help deploy hardware consistently, so system configurations generate fewer errors. Many processes can thus be automated, such as request fulfillment, standard change execution, configuration updates, or release management.
Monitor: as part of a continuous development and integration approach, DevOps teams need to monitor how changes affect their testing and production environments. System monitoring and alerting, in particular, is a crucial piece of operations. DevOps teams must be notified whenever infrastructure and software-related problems arise. Overall application performance also needs to be monitored by keeping track of such parameters as API call response time, stability
Technology
A DevOps application development process requires code development, configuration testing and deployment automation. A significant range of products can help operations staff configure infrastructure and application stacks, in order to make coordination and compliance easier.
DevOps teams, in particular, can create integrated tool chains using developer services from their respective providers, such as AWS Code Deploy, Azure Automated Desired State Configuration, or Google Cloud Development Manager. These services can ease allocation constraints by enabling quick provisioning of new hardware. By using the cloud, organizations can create test environments that closely match production, are accessible on demand and easy to scale up or down. They need to decide what is best done on premises and what can go to the cloud, based on application design, lifespan, security and overall resource needs.
Standardization is also a core DevOps principle. The use of standard components and processes can help deliver change faster and with a higher level of quality. Standardized services, in particular, such as cloud services based on API’s, can help improve time-to-market and reduce risks.
What’s more, the use of containers can improve code management and control. By packaging an application and all its dependences, containers can help developers move software more easily from one computer environment to another across the cloud. Technology, such as Docker, lets developers create code that can run in its own containers, enabling short feedback loops, so that businesses can quickly adapt to change.
Delivering Value
DevOps is first and foremost a . Organizations have to approach DevOps as a continuous journey, with a series of pilot projects and experiments.
Aprico Consultants can support you at every stage of your DevOps initiative. As an established ICT consultancy with a track-record for delivering advice and solutions, we can help you define a clear DevOps roadmap, and put at your disposal a wide range of skills and resources to meet your project requirements.
Aprico Consultants can help you develop compelling mobile apps and services by leveraging the Xamarin Mobile Application Development technology This cross-platform offering lets your development teams write code in C# and quickly converts it into native iOS, Android, and Windows Phone apps.
More and more companies rely on mobile apps to boost sales, raise productivity and improve customer service. The ever-expanding range of device types, screen sizes and OS versions, however, present unique challenges for mobile app developers. They also must contend with intermittent network connections, as well as user expectations of a simpler experience.
That’s why Aprico Consultants can help you develop compelling mobile apps and services by leveraging the Xamarin Mobile Application Development technology. This cross-platform offering lets your development teams write code in C# and quickly converts it into native iOS, Android, and Windows Phone apps.
What’s more, Aprico’s architectural blueprint and out-of-the-box accelerators can vastly reduce the effort needed to design and implement mobile apps.
Code Once, Deploy Anywhere
The Xamarin Mobile Application Development technology allows you to leverage your organization’s existing C# development skills and expertise to deliver Android, iOS and Windows apps with native performance.
From a single code base in C#, apps are turned into native code for target mobile devices. Sixty to seventy-five percent of the code, for example, is usually common to Android and iOS. The other twenty-five to forty percent can then be handed to user experience people for creating fully native UIs customized for each platform.
By using Xamarin, your team develops its apps once, creates reusable elements and distributes them on multiple platforms, accelerating your time to market.
Build:
The Xamarin studio – now integrated in the Visual Studio IDE — gives you access to all iOS, Android and Windows Phone platform-specific device functionality to deliver truly native apps. You can create iOS and Android projects, e.g. define screens, flows, images and any other media, while reusing the code from one platform to another. The result? Significantly reduced development time and end-user training.
The Xamarin.Forms is a cross-platform UI toolkit that lets you easily create native user interface layouts that can be shared across Android, iOS and Windows Phone. In addition, you can customize the user interface in each platform by creating specific views with Xamarin.iOS and Xamarin.Android. Xamarin.Forms includes more than 40 controls and layouts, which are mapped to native controls at runtime.
Integrate:
Back-end software and services are what delivers real productivity. With Xamarin, you can easily integrate new apps with legacy apps and data sources, depending on where your back-end data is stored: in the cloud, on-premise, or both.
Microsoft web Apps, in particular, let you rapidly build, deploy and manage back-end services supporting your mobile applications. Many mobile-optimized cloud services functions, such as identity and security, off-line data synchronization and locations-based messaging, can be introduced with a few clicks.
You can also quickly build and consume APIs in the cloud using the language of your choice. As part of its Mobile Framework, Aprico has abstracted messaging system support for major suppliers, making it easy to implement push notification in the Azure back-end. We also support full offline mode, providing native sync experience across your iOS, Android and Windows apps.
Test:
The vast array of devices and OS variants, as well as their associated emulators, creates major testing challenges. Mobile apps must undergo tests across multiple form factors and operating systems, including UX functionality and flow under a range of conditions, such as offline, WiFi or cellular network operations.
Xamarin takes care of most of this tedious work. It lets you test every new feature and perform comprehensive regression tests from the UI down to ensure high quality releases. For example, you can automatically run UI tests locally or execute them on Xamarin Test Cloud where they can run on thousands of physical devices. Xamarin Test Cloud’s parallelization feature can split test runs and execute them across multiple devices simultaneously, increasing testing speed and frequency.
Reports give you the details that you need to know when a test fails, including statistics about UI, memory usage, duration, CPU usage and overall navigation.
Deploy
Software deployment can be a repetitive and sometimes fastidious task. That’s why Xamarin orchestrates deployments across multiple targets and perform rolling updates. Once you create a new build, for example, it automatically gets sent through a testing phase, and then onto the deploy phase. Delivery options can include different OS, public, private, and hybrid cloud deployments, or on-premise solutions if your organization has specific governance or regulatory requirements.
Hockey Apps, in particular, is great for distributing your apps in a unified way for all platform end-users. You can distribute beta versions, collect live crash reports, get feedback from real users, and analyze test coverage.
Continuous integration, automated testing, distribution, monitoring and engagement capabilities give you faster release cycles. Bugs, app crashes, or code failures can be detected and fixed much faster than with traditional development methods. Detailed data results let you rapidly determine where and why issues show up, and decide when you should focus your efforts to respond quickly.
What’s more, you’ll appreciate the Notification Hub. This multi-platform push engine integrates the different providers’ native push systems. It lets you engage your users via push notifications, by sending them targeted messages at the right time.
Fast-Track Approach:
At Aprico, we have implemented a Mobile Framework for using Xamarin technology to reduce costs and increase performance. It addresses the complete mobile app development life cycle — from development and testing to deployment.
For more information on how to accelerate the delivery of your mobile apps, call 02.712.05.92.