Posted By: Jay Tiwary
How Enterprise Blockchain can help businesses
Ahead of time is a key aspect to sustain and grow an existing business. Most of the time persistence to change or adapt as per the changing market leads to potential gaps that give opportunities for the startups to come up with solutions. Be it a startup or an existing business you always have to foresee any potential problem in the business and try to solve it before it starts becoming a real problem. Blockchain is one such promising technology that solves many existing business problems. Transparency is the key to a successful business but data being centralized or being authoritative it becomes impossible to become 100% transparent. Let's explore some key concepts and explore the benefits of Blockchain.Blockchain is a decentralized distributed ledger that allows peer-to-peer (p2p) transactions secured by cryptographic algorithms and consensus mechanisms. The peer-to-peer network is powered using consensus methods that validate the transactions. You can imagine it as blocks that are chained together where each block contains transactions. Imagine a spreadsheet shared by you with your peers to make modifications on platforms like Google Docs, Dropbox, or any other cloud provider. You can track down the changes done by individuals looking into the history of. If the permissions are not available nobody can delete it and all the peers have the same data in real-time. This kind of transparency to a business is the key concept of Blockchain. It's important to note that Dropbox and Google docs are not blockchain-based, I have used the reference to understand the transparency and change tracking system. Blockchain maintains similar transparency with better control over data.The data is once written to the block and is immutable which makes it very hard for malicious actors to change or modify. If someone sends a transaction to another peer, then the transaction is broadcasted to every other peer so that it can be validated and stored. This essentially means no one can change the data and is available to all the peers simultaneously.The word crypto is often used in Blockchain because of the crypto algorithm used to encrypt the privacy of the data. Cryptocurrency is a digital token exchanged on a blockchain using cryptographic algorithms to secure the p2p transaction. If a monitory value is there in exchange it is called cryptocurrency and if it is only a physical or digital asset it is called a crypto asset. Bitcoin is a cryptocurrency used on the blockchain. The idea of cryptocurrency is to have a currency system, where everyone is treated as an equal and there is no governing body, which can determine the value of the currency based on a whim. Bitcoin and Ethereum have successfully implemented it. Smart contracts are automated contracts. They are self-executing with specific instructions written on its code which gets executed when certain conditions are made. A simple example could be of A seller and buyer where a buyer agrees to pay a sum of amount on the completion of the supply of the goods. This condition could be programmed in a smart contract and as soon as the conditions are met the contract triggers the events associated. Ethereum and Hyperledger Fabric are the two prominent platforms to run smart contracts. There are two kinds of Blockchain implementations available in the market: Public and Private. Both have the same foundations but the latter works in a closed ecosystem. The public blockchain allows anyone to join on the other hand private needs the introduction of the node to the chain, once joined they can act as part of the chain and within the boundaries, it is moreover like a public blockchain. Enterprise blockchain is basically private chains which are designed for enterprises considering the factors that the public blockchain is not all acceptable to businesses. There are challenges with the public blockchain raised as a concern for enterprise implementation. Imagine a supply chain system where the exchange is between two parties in a closed environment and only they can have the access to or maybe the manufacturer, distributors & dealers are dealing in a closed state which is not open to the customers. This has led to the need of enterprise blockchain. Many organizations are providing blockchain as service (BaaS) as a part of the enterprise blockchain solution. The prominent ones are:The major enterprise platforms available today are:The pandemic (COVID-19) has exposed the gaps we were talking about the gaps in the healthcare sector. We have witnessed the failure of our health infrastructure but on top of that one of the reasons it becomes too worse is the flow of information. The information available to China wasn't available to the other part of the world and even today the clinical procedures used in a different part of the world remain a mystery for the other nations. If the information flow was totally transparent this may not have turned into a pandemic. Apart from the clinical procedures and other medical information there have been long-standing issues like the authenticity of laboratory tests, accessibility of the data across hospitals in case of the patient is treated by another hospital, patients clinical history records in case the physical files are lost, hospital treatment & expenses, health insurance claims that all have practical problems which blockchain can solve up to some extent. The transparency in the treatment procedures and helps the system to improve the quality of the system, decentralizing the clinical reports to the blockchain can give access to any hospital, data security of the patient all are good use cases of blockchain.Supply Chain lacks transparency, accurate asset tracking, and enhanced licensing. With blockchain, these three things can be drastically improved, impacting almost every sector that relies on the supply chain. Right now, products can be hard to track due to the unavailability of real-time tracing.The way the insurance sectors work in conjunction with various other sectors could be improved in many ways with blockchain. The hospital's bills, motor insurances all have a pathetic approach of collecting and sending information through their own centralized system. With decentralization, it could be automated and could work in real-time how bank payments work.The real estate sector is another excellent example to showcase the blockchain capacity to solve problems. The validity of property legal ownership rights, the age of the property, brokerage, and the whole buying & renting process can be made transparent. There could be fraud and wrong information provided to the buyer while buying, with blockchain the validity of data will improve the transparency and trust of the whole system. There are many use cases across industries like IP protection, international payments, Banking & Finance to name a few more but the use of blockchain is unlimited as the primary goal of blockchain is transparency and decentralization which is good for any business.
Posted By: Jay Tiwary
.Net a unified cross-platform development environment from Microsoft
Microsoft .Net framework has been a great choice for web & application development for the last 20 years but the limitation to run only on the Windows platform was one of the reasons it hasn't been a popular choice to open source community. The modern-day development community needs a robust, scalable, interoperable, cross-platform, developmental framework without the need for proprietary licenses and being locked into a certain operating system and architecture. With the release of .Net core Microsoft has come of its shell and given open source community to use the benefits of the .Net framework. The success of .Net core has led Microsoft to re-align its product to market and continue to .Net core future of .Net. However, Microsoft continued to develop .Net Framework along with .Net core was a big question of .Net future plans. Last year Microsoft announced to provide a unified platform for all .Net development and making it clear to continue open-source development as its topmost priority. .Net is going to be the future of all Microsoft .Net platform. The preview is available is set to release in Nov 2020 for general applications. .Net 5 will be powered with the best features of the .Net Framework, .Net Core, Mono, and Xamarin to provide APIs, libraries, and run-time to create apps for Web, Windows, Mobile & IoT devices. The main goal of .Net 5 is to empower unified .Net Client Application projects to create deliverables for various platforms including Windows, UNIX, Linux, Legacy Windows, iOS, Android, HTML5, and Macintosh.Net 5 will offer everything that you would expect from the .Net core while making it suitable for Mobile and IoT platform development. With these new updates, developers will no longer need to choose between .Net Core, .Net Framework, and Mono, based on which platform they’re developing their applications.The road map:Microsoft aims to achieve some great improvements from this release :Microsoft has been using Mono as a cross-platform implementation to .Net and CoreCLR as a runtime for .Net core. It has been brought together and the developers will have options to choose between based on the environment they are coding.CoreFX is the only framework for .NET 5. The framework, as indicated by Microsoft, would run on mono and CoreCLR. CoreCLR, for most developers, would be the target, which replaces .NET, mono, and NET Core. Nonetheless, mono would still be the target runtime and will likely continue to be utilized in gaming, mobile, and other less common operating instancesThe .Net 5 will have an exciting version for the Just-In-Time (JIT) compiler, with many improvements.JITs are well suited for long-running cloud and client scenarios. They are able to generate code that targets a specific machine configuration, including specific CPU instructions. .Net ships AOT compiler which enables .NET code to be built into a single native code executable that can run on a machine, much like C++ code. AOT-compiled apps can run efficiently in small places and trades throughput for a startup if needed. AOT(Ahead-Of-Time) has been used in the Mono framework before, .Net will extend the AOT as a major performance booster with fast startup, and lower memory usage. Apart from JIT and AOT .Net 5 has some major improvements in Garbage collection and Async await (Threading) programming.Microsoft is deepening its support for interop with Java, Swift, and Objective-C.Microsoft already provided WPF and WinForms desktop app development in.NET Core 3.0. In .NET 5.0, Microsoft makes a big leap forward by including Universal Windows Platform (UWP) and Xamarin. So, it will include WPF, WinForms, UWP, and Xamarin in its desktop development SDK.Using Xamarin, .NET 5 will include cross-platform mobile development support for Android OS, iOS, Linux, watchOS, and tvOS.Azure app development will also be one of the major functionalities of .NET 5. With the release of the latest .NET, developers will continue to develop software with Azure. Azure Cloud development includes a mix of tools and frameworks, including Web API, ASP.NET, serverless computing, Azure databases, Docker containers, microservices, DevOps, and more. With a unified platform, Microsoft has been clear about its future strategy to continue being open-source, cross-platform and all in one unified platform. If you are looking to upgrade your .Net framework project to .Net core or want to be prepared for .Net 5, talk to IcodeLabs and get your plans ahead of time.
Posted By: Jay Tiwary
Developing Marketplace application with Sharetribe
Choosing the right marketplace software could be a difficult job, there are so many ready to use solutions available and making a choice out of could be a difficult one. You could even imagine to custom develop. Developing your custom-developed marketplace could be expensive and time taking and may not be a feasible solution especially for startups. However, if your idea has been validated and you are trying to create your tech ecosystem, custom development is the right choice.Sharetribe offers a great marketplace option. The Finnish company started early somewhere in 2011 and has given a good time to build an awesome product. The promoters have thought of investing time to build a product with a clear vision. It has two different products each for different offerings to suit the business needs:You can find more about sharetribe products My recommendation of sharetribe is based on the technology stack, the architecture, and tools available to extend the application in the flex version, and the support it provides makes a good choice for startups & small & medium enterprises.
Posted By: Jay Tiwary
Choosing the right frontend framework - React Vs Angular Vs Vue
Posted By: Jay Tiwary
Developing scalable applications using microservices architecture
We keep on inventing new technologies and architectural solutions to improvise upon and deliver a better solution to the industry as per changing needs. Microservices is one valuable architectural solution that has been increasingly popular in the last couple of years. The rise of cloud-based solutions delivering and scaling the application from a no user base to millions in quick time keeps on challenging how we build our services in a monolithic architecture. Microservices architecture is a good solution to deliver independently deployable and maintainable services. Microservices are loosely coupled services, developed Independently, and can be deployed, and maintained independently. Each of these services is based on a modular approach and has a specific responsibility, has its own tech stacks which can be different from other services in line, can communicate with other services through APIs to work in a larger ecosystem. The benefits of using microservices are:Although microservices are not limited to any specific kind of applications it definitely helps to solve many problems of cloud-based solutions which needs constant maintenance, easy scaling, and multiple tech stacks to solve specific technology for specific problems. The use of cloud infrastructure and DevOps complements the complete ecosystem making it easy to deploy, maintain, and scale. The scaling could be time-bound or specific service bound can easily be met using the pay-per-use infrastructure environment of cloud systems and could be cost-effective. Consider you are running an e-commerce store and have seasonal sales discounts where the system needs scaling and maybe you have different payment solutions and one of the payment solutions offers heavy discount attracting heavy user traffic. You may need to integrate one specific for a specific deal and you start scratching your head to align the code with your other parts of the application. Microservices are a great solution in these scenarios.More than some specific tools or technologies it needs your approach to design an application. How do you decouple your whole application and build it independently still make it a part of larger ecosystem? If you have been designing systems in the monolithic approach you have to come up with a whole new approach but if you have used SOA then you are very close to microservices. The key things to consider designing a microservice architecture:With the increase in services, the system could become rather complex and not straightforward to manage Testing efforts: with distributed services in place it becomes more complex to test and multiple teams could be working on different services and finding & solving bugs could become more tedious Time efforts: Since the services are written to be self-reliant there could be a possibility of more coding efforts and duplication of tasks
Posted By: Jay Tiwary
Hiring an offshore development team
Although remote teams are not a new thing but COVID-19 has given proof that it works well and in fact a better solution in some cases. The pandemic has shown us a new way of living life and working cultures. People are liking the work from home culture and they find it more productive when they have been given flexibility. The IT and enabled industry with offshore and distributed team culture has been practicing for many years. In modern times, the IT infrastructure has given valuable tools to hire, manage, collaborate, and measure productivity which gives numerous benefits such as: However, the question is how should I hire a team, and more importantly how can I make it work?Finding a software developer or a team is just a click away, search google you can get countless options but what makes it difficult is when you have so many options its challenging to choose the one best for you. If you do not come from a software development background or you do not understand much of the software development business this could become a nightmare. I have been talking to many of my clients and was trying to understand their problems while choosing an offshore team, some of the doubts they have in their mind were:Not necessarily, there is no one right fit for everybody. The business scale and the budget must be respected and the solutions should be built as per the financial viability of the business. Different business has different needs, your MVP accounting product may not be necessarily competent with SAP, People soft and if you are a startup implementing SAP to your business may not fit. But what is relevant is you need a product that works for you, maintainable and scalable at least to take to you to the planned number of users the system was built for. You find a development partner which fits your pocket size but should have the capability to deliver what is discussed above.The key is the person (Project Manager) and the team handling your project. Give some time while shortlisting them, do not rush to hire or don't hire because somebody has given 5 start rating to or some agency has good staff strength. After a couple of calls and validations, you can make a better judgment. You do the validation checks yourself and engage with the team to deliver a quality product. That's where you save money. There are many who prefer to work as Independent freelancer even after having so much experience. There are many who join small organizations to grow faster and get more opportunities than working in an MNC. You can find good professionals in smaller agencies or freelancers as well but you need to make sure you have ticked all the points discussed above. Conclusion: In my opinion, hiring an offshore development team is an extremely cost-effective solution. Hiring should be focussed on process and architecture-oriented. Collaboration with the team helps to reduce the odd possible failure leading a successful product.
Posted By: Jay Tiwary
Understanding agile scrum framework and its benefits
Scrum is the widely used and most popular framework of Agile methodologies. Most of the project managers practicing agile prefer to use scrum due to its simple and easy to learn approach.Scrum guide defines, "Scrum is a framework within which you can employ various processes and techniques. Scrum makes clear the relative efficacy of your product management and work techniques so that you can continuously improve the product, the team, and the working environment". The Scrum framework consists of Scrum Teams and their associated roles, events, artifacts, and rules. Each component within the framework serves a specific purpose and is essential to Scrum’s success and usage.Scrum is not a process, technique, or definitive method rather It is a process framework that utilizes incremental processes in a larger framework that leverages cross-functional teams to achieve their goals along with adapting to changes. The main objective of Scrum is to establish small pieces of a release quickly rather than focusing on all the smaller steps that take place within each sprint and iteration.Scrum defines various events which can help to inspect and adapt within the defined timeline. These are:The Scrum Team consists of a Product Owner, the Development Team, and a Scrum Master. Scrum Teams are self-organizing and cross-functional. Self-organizing teams choose how best to accomplish their work, rather than being directed by others outside the team. Cross-functional teams have all competencies needed to accomplish the work without depending on others not part of the team. The team model in Scrum is designed to optimize flexibility, creativity, and productivity. The Scrum Team has proven itself to be increasingly effective for all the earlier stated uses and any complex work.The Product Owner is the sole person responsible & accountable for managing the Product Backlog. The product owner prioritizes the features and requirements of the product to the development when each sprint starts. Their job is to answer all the questions that the development team might have pertaining to requirements and specifications.The team of professionals who do the work of delivering a potentially releasable Increment of “Done” product at the end of each Sprint. They are self-organizing. No one (not even the Scrum Master) tells the Development Team how to turn Product Backlog into Increments of potentially releasable functionality. Development Teams are cross-functional, with all the skills as a team necessary to create a product Increment The development team must be of team size of 3 to 9 members.The Scrum Master is responsible for promoting and supporting Scrum as defined in the Scrum Guide. Scrum Masters do this by helping everyone understand Scrum theory, practices, rules, and values.The Scrum Master leads the entire team through the daily Scrum removing impediments to the Development Team’s progress. He/She helps the product master Facilitating Scrum events as requested or needed and is the sole person responsible to leading and coaching the organization in its Scrum adoption.Scrum’s artifacts represent work or value to provide transparency and opportunities for inspection and adaptation. The three artifacts communicate key information to the Scrum team that they must be aware of during product development.The Product Backlog is a prioritized list of everything that is known to be needed in the product. It is the single source of requirements for any changes to be made to the product. The Product Owner is responsible for the Product Backlog, including its content, availability, and prioritization.The Product Backlog lists all features, functions, requirements, enhancements, and fixes that constitute the changes to be made to the product in future releases. Product Backlog items have the attributes of a description, order, estimate, and value. Product Backlog items often include test descriptions that will prove its completeness when “Done.”Product Backlog is refined from time to time and is an ongoing process in which the Product Owner and the Development Team collaborate on the details of Product Backlog items. During Product Backlog refinement, items are reviewed and revised. The Scrum Team decides how and when refinement is done. Refinement usually consumes no more than 10% of the capacity of the Development Team. However, Product Backlog items can be updated at any time by the Product Owner or at the Product Owner’s discretion.The Sprint Backlog is the set of Product Backlog items selected for the Sprint, plus a plan for delivering the product Increment and realizing the Sprint Goal. It also defines the items that are required to produce an increment that meets the "Done" definition. The Sprint Backlog is a plan with sufficient detail that changes in progress can be understood in the Daily Scrum. The Development Team modifies the Sprint Backlog throughout the Sprint, and the Sprint Backlog emerges during the Sprint.Its important to note that only the Development Team can change its Sprint Backlog during a Sprint. The Sprint Backlog is a highly visible, real-time picture of the work that the Development Team plans to accomplish during the Sprint, and it belongs solely to the Development Team.With so many benefits there comes some challenges as well which need to manage. Here are some:But in general practice other than some limitations scrum provides a solid framework to deliver successful projects. If you are looking for a versatile team with a good scrum experience you can contact IcodeLabs for more details.
Posted By: Jay Tiwary
JAM stack modern approach to faster, more secure websites
Posted By: Jay Tiwary
How to build a Minimum Viable Platform using agile
Tech startup ideas start with developing an MVP (Minimum Viable Product) to validate the idea and then scale up to the full-featured product. But the definition of MVP is often confusing and people struggle to strike a balance between the wish list and must-have features of the early product they wish to launch. Most of them agree to adopt agile methodologies and consider the feature list they have prepared as part of Idea exploration as an MVP product. They fail to accept the fact that product development is a process and the final product will come through the journey. "the minimum viable product is that version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort."The key aspects are “minimum set of features”, “customer feedback”, “idea validation” and to do so you may develop the smallest thing you can build that delivers customer value. I have had a chance to deal with a number of entrepreneurs and what I noticed is many of them cant enlist an MVP vs Final product which clearly means that they have no idea what could be an MVP and they believe the feature set they have thought of till date as MVP feature list.If you are trying to solve many problems at a time with multiple solutions there are more chances of failing the objective or you may end up delivering a feature-rich product than just MVP. Try to prioritize the features using agile MoSCoW principles, the must-have should have, could have, and won't have. Set a timeline to deliver the product and iterate through the features with an objective to deliver all must-haves and whatever you from the should have's and could have been in the given timeline. The key to doing this is "early launch", "fixed time" and "fixed cost". If you have many problems to solve, go with multiple releases solving one problem at a time. The iteration steps should be:Once you have discovered the feature list you need to develop for your product, setting the priorities of the feature list is important. It's not that easy unless you have a pre-validation of the idea and you clearly know the most important thing to solve the problem and there are features around. Many startups fail because they start building an MVP without proper pre-validation, and end up with products that nobody uses. Agile methodologies is a great help and very close to delivering MVP products, with defined iterations, you can set priorities for each iteration, and building the product in a scalable approach than building in parts that actually doesn't solves the complete problem. The following picture is the right example of choosing the features and scaling it up The agile iterations and discovering each iteration in retrospectHaving said that an MVP should have just minimum feature however it must have the feature to validate the idea. It cannot have a broken product or a buggy product. A common mistake people make is to assume that the MVP can be really buggy or ugly. This is not the case. While the MVP does not necessarily need to be polished to perfection, it needs to contain a set of required features—ones that work properly and delight the user. If your software is broken or looks unfinished, it will give an awful first impression and deter users.Many entrepreneurs because their overenthusiasm keeps on stacking multiple features leaving the most important tools needed to market the product initially. The feature list of the product must have the right tools to market, maintain, and collecting the analytics, its not just the core features list. Social sharing, promotions, discounts, SEO, analytical tools, affiliate marketing are some tools that must be considered while developing the product. Simultaneously products should be developed on the right tech tools and architecture the way it could be maintained & scale up easily. Many entrepreneurs make these mistakes and end up rewriting in case it doesn't meet the objectives of digital marketeers or has been badly architected.Hire the right set of people at the right time, create a team to create the value proposition together not doing in bits and pieces. Most of the early startups fail to understand the importance of different aspects of the product and just focus on one thing which is available to them. Freelancing platforms have given access to hiring developers of budgetary choice which may not be sufficient to build or vision the product and build the product on the right architecture to scale up. Yes, it is MVP that doesn't mean it cannot be scaled, it should have the right standard practices involved from day one which actually helps to deliver to maintain the product for a longer run. The validation of idea in a given timeline and demographic sometimes could be misleading and could take time and needs multiple releases to really understand the impact. Build a product that gives you sufficient tools to market, analyze, maintain & scale.Hire a team considering all the aspects mentioned above, trust me it not going to cost much, it could have some cost involved but it reduces the chances of failure. Choose a team or individuals who understand agile right, MVP right, define your process and timelines, launch as early as possible and then keep updating based on the constant feedback. Icodelabs has the right people have worked with many startups, contact the team to help you to build the right way.
Posted By: Jay Tiwary
Cross Platform Mobile apps React Native Vs Flutter