Monday, June 13, 2022

Three Benefits of Canary Testing

There are many ways to test and deploy software changes. One technique, called canary testing, involves rolling out new code to a small percentage of users rather than all at once.

It's considered a best practice in modern software development. But why is it the go-to? Here are a few benefits of canary deployment.

It's More Cost-Effective

Any strategy that cuts costs is worth investigating! The unique thing about canary testing is that you get the chance to see how changes perform in a live production environment without the added costs of additional infrastructure.

Typically, companies will only use a single production server. There's no need to invest in additional servers, but you still get the perks of seeing how new code behaves in a real-world setting. It's also faster and helps you avoid the headache of dealing with different servers not matching the production server.

It Protects from Sudden Critical Failures

The biggest benefit of canary testing is a relatively contained release. There's always a risk that changes will have a more extensive impact on existing software code. The worst-case scenario is that the release causes a system-wide critical failure that affects every user.

Canary deployment avoids that risk. It contains the blast radius of potential issues, allowing development teams to take swift action for that small percentage of users rather than the entire userbase.

It Fosters Experimentation

Canary testing does wonders for experimentation. In the early days of software development, changes had to go through a lengthy release cycle. There was no way to push updates and make incremental changes.

But modern development is different. Now, you can use canary testing to try new ideas in production. If issues occur, addressing them is as easy as switching code back.

The ease of deployment and testing paves the way for innovation and regular experimentation. It can dramatically improve your software over time, helping your final product reach its full potential.

Overall, canary testing is a must! It doesn't matter what type of software you develop or who your end-user is. This technique provides ultimate flexibility while protecting the bottom line.

Read a similar article about feature flag management here at this page.

Tuesday, May 3, 2022

The Best Way to Modernize Your Applications

Just because a software application has aged doesn’t mean that it has outlived its usefulness. In fact, many early software applications that were used to build the modern Internet and the world’s digital commerce environment are still viable today with a little bit of modernization.

Application modernization can be challenging, however, as many aging applications have been built on monolithic infrastructure systems that were never designed to adapt quickly. While application modernization is not impossible in the face of such challenges, the process of modernizing can be painfully slow and often requires a lot of resource investment.

Taking Things Apart

One approach to modernization is to take existing infrastructure systems and break them apart. This process of modular deconstruction allows you to separate the various functions of singular elements. You aren’t breaking apart the code. Instead, you are taking the chunks that make up the different functions and separating them onto their own islands.

From there, individual encapsulations can be built for different functions to be distributed onto. The goal here is to have the ability to move different functions of a total piece of software onto their own modules without needing to change a lot of code.

Remove Context to Build Context

Another consideration is to remove context to boil software products down to their core components. When you create a software product that is released in various environments, there are bound to be changes that are specific to each environment. Basically, you end up creating different versions of the product for different user bases.

If you can strip out the context and break everything in the code down to its core functionality, you can then use this core to build onto the modules you created when separating from infrastructure. In a sense, you can swap code in and out of modules at will, making the process of modernization fast and effective when faced with rapid changes in need. This can also serve to future-proof your product as it will be ready for modernization processes that need to be undertaken down the road.

Read a similar article about infrastructure migration best practices here at this page.

Sunday, February 13, 2022

Customer And Vendor Proposed Change Approvals: D365 Finance And Operations

In most organizations customer and vendor setup is a task handled by the Accounting or the Supply Chain team and in some cases both with each responsible for specific setups. There are also very sensitive fields on the customer and vendor record that may need more control and require review and approval before a change can be made. Dynamics 365 Finance and Operations solves the business need to control these specific customer and vendor record fields through customer or vendor approvals read more

When Should I Use a Controlled Release in Feature Rollouts?

Developing software can feel like a marathon, and seeing the finish line in sight as release day is approaching can feel great. You’ve gotten everything done, you’ve tested your code and you want everyone to experience your new creation; however, is it really a good idea to roll everything out at once?

In many cases, rolling out a new piece of software to everyone all at once is fine as long as you have contingency plans to monitor and fix bugs. Feature additions, on the other hand, may benefit more from a controlled rollout. A controlled rollout of a new feature means that only a select number of users have access to the feature that is intended for eventual release to the general user base. In some cases, a controlled rollout will be based on a percentage of the total users. In others, users gain access to new features based on factors like location.

The Benefits of a Controlled Release

The main benefit in releasing features and updates in a controlled manner is that you have a chance to gauge reception, process feedback and avoid a disaster if major issues are found. If you release a feature to everyone all at once and a significant problem exists, user experience can plummet and your company stands to find itself in the middle of a PR nightmare.

A controlled rollout gives you the opportunity to ensure that any issues only affect a small number of users, and you can make changes before implementing a wider rollout. Additionally, you have the ability to get feedback about a feature to enhance it or remove parts before a wider rollout.

Automating Some Processes

If you do roll new features out gradually, controlled rollout software tools may be able to help you contain each step of the process. Controlled rollout software tools can automate aspects of the rollout itself in some cases, but these tools can also give you and your team the ability to document feedback, bugs and fixes. This ultimately makes the transition run smoother when the final version is released on a wide scale.

Read a similar article about dark launch here at this page.

Wednesday, February 9, 2022

Solana Uses Rust to Pull in Developers and Avoid Copypasta

One of the interesting developer trends in Web3 is the emergence of Rust as a way to program blockchains. Rust, of course, is a popular programming language that has a wide range of uses — it’s been the most-loved language in Stack Overflow’s annual developer survey for the last six years. So its uses in crypto are just a part of what developers love it for read more

How to Write Clean Code

It’s a constant struggle for developers under tight deadlines to decide between writing clean code at a measured pace or fast and dirty code. The latter allows you to consistently get your code turned in on time, but that’s never the end of your work. Fast and dirty coding can lead to tons of bugs and backtracking. Instead, programmers should always shoot for writing the cleanest code possible. In this blog, we’ll give you some tips on writing clean code.

Follow the Single Responsibility Principle

It’s certainly easier to assign multiple tasks to one function, but it isn’t clean coding. You should try to always follow the Single Responsibility Principle. This means your functions should be small and only perform one task well. Not only does this make your code more readable, it makes it easier for developers to go in and troubleshoot if need be. Nested code with too many tasks per function can be difficult to parse, so keep it simple.

Make Your Code as Readable as Possible

You don’t want to write all of your code on one line. Make sure your code is readable and well written. Use white space, indents, line breaks, and other formatting tactics to make your code as clean and pretty as you can. This makes it much easier to jump back in and make changes and it’s just a good practice in general.

Organize Your Project

Making sure your code is clean is important, but your project should also be organized. Make sure your folders, files, and directories are easy to navigate so future devs and programmers don’t have to spend a ton of time finding what they need. It’s helpful for you too if you have to get back into a project in the future and you’ve forgotten your messy organization system by then.

Clean Code is Worth Your Time

Clean code might take more time, but it’s well worth it in the long run. And it can be more fun creating beautiful, well-written code anyway. If you’re really looking to save time and take the stress out of deployment while reducing cycle time, try a platform like DevCycle. DevCycle will allow you to write clean code while also meeting your deadlines easily.

To know more about how to feature flag API, visit this website.

Three Benefits of Canary Testing

There are many ways to test and deploy software changes. One technique, called canary testing, involves rolling out new code to a small pe...