Content Developer II at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
130336 stories
·
29 followers

Node v23.3.0 (Current)

1 Share
Read the whole story
alvinashcraft
6 hours ago
reply
West Grove, PA
Share this story
Delete

Visual Studio Devs Demand Claude 3.5 Sonnet AI: 'Why Is VSC Always Preferred?'

1 Share
The brand-new Visual Studio 2022 v17.12 lets devs specify the AI model they want to use with the baked-in GitHub Copilot, but some are clamoring for more options, such as the latest/greatest Claude 3.5 Sonnet model from Anthropic that is available in VS Code.
Read the whole story
alvinashcraft
7 hours ago
reply
West Grove, PA
Share this story
Delete

SE Radio 643: Ganesh Datta on Production Readiness

1 Share

Ganesh Datta, co-founder of Cortex.io, joins host Robert Blumen for a conversation about production readiness. The conversation covers the history of production readiness; its relationship to microservice architecture; the Google SRE model's impact on production readiness; production readiness checklists; the process; and production readiness transparency.





Download audio: https://traffic.libsyn.com/secure/seradio/643-ganesh-datta-production-readiness.mp3?dest-id=23379
Read the whole story
alvinashcraft
7 hours ago
reply
West Grove, PA
Share this story
Delete

Never rewrite code?

1 Share

Is it a bad idea to rewrite code or an entire system? At some point, developers want to rewrite for various reasons. Often, it’s because we simply don’t understand the existing codebase or think it’s a tire fire. But is the benefit there? Sometimes, yes. Sometimes, no. It’s a pretty nuanced topic around cost/benefit.

YouTube

Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post.

Rewrite

When it comes to software development, the debate over whether to rewrite code never ends. Some developers always want or have the urge to rewrite existing code they stumble upon. Many experienced developers will tell you to avoid rewriting at all costs. But as someone involved in significant rewrites, I believe there’s more to consider. Let’s dive into the complexities of this decision, particularly how it relates to coupling within your codebase.

The advice against rewriting often stems from the wisdom shared by Joel Spolsky over two decades ago.

It’s important to remember that when you start from scratch there is absolutely no reason to believe that you are going to do a better job than you did the first time. First of all, you probably don’t even have the same programming team that worked on version one, so you don’t actually have “more experience”. You’re just going to make most of the old mistakes again, and introduce some new problems that weren’t in the original version.

He pointed out that the worst strategic mistake a software team can make is to decide to rewrite code from scratch. This warning resonates deeply, especially since starting anew offers no guarantee that you’ll do a better job than before.

Reflecting on my journey as a developer, I recall countless moments early in my career when I felt compelled to rewrite portions of code or even entire systems. Often, this impulse arose from ignorance; I didn’t fully understand the existing codebase and mistakenly assumed it was flawed. However, the truth is that a blank slate may seem appealing, but it can be deceptively easy to overlook the complexities and edge cases that exist in the original code.

One of the most imporant aspects to remember is that with experience comes an understanding of the intricacies of your system. If you’ve spent years in a particular domain, you likely have a wealth of domain knowledge that can guide your decisions. This knowledge enables you to identify the real value within your existing codebase. If you find that the current implementation truly is a ‘tire fire’ holding back progress, then perhaps a rewrite is warranted.

This brings us to the concept of “worse is better.” In software development, it’s often the case that a simpler, more limited solution can be more user-friendly and effective than a complex, feature-rich one. The 80/20 principle applies here: 80% of the value often comes from just 20% of the code. If you can focus your rewrite on that critical 20% while simplifying the overall system, you might just end up with a better product.

Never underestimate the value of working software

The decision to rewrite should ultimately come down to a cost-benefit analysis. What are the costs associated with the rewrite? What benefits do you expect to gain? Sometimes, the technology gap can be a compelling reason to consider a rewrite. If your current technology stack is outdated and stifling innovation, it may be time to modernize.

Greg Young shared an insightful experience from a project that involved rewriting a prototype that had gone into production.

However this is still a naive viewpoint. What really mattered was that after our nine months of beautiful architecture and coding work we were making approximately 10k/month more than what our stupid production prototype made for all of its shortcomings.

We would have been better off making 30 new production prototypes of different strategies and “throwing shit at the wall” to see what worked than spending any time beyond a bit of stabilization of the first. How many new business opportunities would we have found?

After nine months of development, the new system was only generating marginally more revenue than the original. He concluded that they would have been better off creating multiple iterations of the prototype to explore different strategies rather than investing so much time in a complete overhaul.

Additionally, it’s important to challenge the notion that older technology is inherently bad. I’ve integrated with two third-party services that perform the same function; one is a modern solution, while the other is an older system built in ColdFusion. Despite their differences, both systems deliver equivalent value to users. The age of the technology doesn’t necessarily dictate its effectiveness.

My Experience

My own experience with a major rewrite involved a system I had been part of for six to seven years. We ultimately decided to undertake a rewrite because of a significant technology gap—our system couldn’t effectively integrate with online payment methods, which was increasingly essential in the e-commerce landscape of the early 2000s. This necessity justified the effort to rebuild.

So, should you rewrite? The answer is not a simple “no.” Context is King, and each situation is unique. It involves a lot of factors and to weigh the benefits of a rewrite against the risks involved.

Join CodeOpinon!
Developer-level members of my Patreon or YouTube channel get access to a private Discord server to chat with other developers about Software Architecture and Design and access to source code for any working demo application I post on my blog or YouTube. Check out my Patreon or YouTube Membership for more info.

The post Never rewrite code? appeared first on CodeOpinion.

Read the whole story
alvinashcraft
7 hours ago
reply
West Grove, PA
Share this story
Delete

What’s New in Red Hat Enterprise Linux 9.5

1 Share

Learn the latest features and updates in Red Hat Enterprise Linux 9.5. Learn about advancements in system roles, web console, Podman, and more. Get insights into the future of RHEL, including the deprecation of technologies, introduction of Tech Preview technologies and key lifecycle dates for RHEL 7, 8, and 9. Plus, catch a glimpse of what’s to come in RHEL 10.

Read the whole story
alvinashcraft
7 hours ago
reply
West Grove, PA
Share this story
Delete

What’s new in Microsoft 365 Copilot in OneNote at Ignite

1 Share

Microsoft Copilot is making OneNote even more powerful across multiple endpoints. OneNote has always been your destination for personal and shared notes, where you can brain-dump all of your thoughts throughout your busy work days. With these new Copilot features, notetaking and information organization is more intuitive, efficient, and powerful. Let's explore these exciting new updates and discover how they can transform your workflow. 

Copilot on OneNote canvas 

Quick Actions with Copilot directly on canvas is now generally available for commercial OneNote users in the OneNote desktop app. In a OneNote page, click the Copilot icon on the canvas, and take notes, summarize, create a task list, or rewrite the page.    

 

A screenshot of Copilot icon in OneNote desktop app.

Copilot on OneNote canvas is now generally available 

Copilot-powered organization in OneNote 

Many users struggle with organizing their notes effectively. Say hello to effortless organization. Let Copilot bring structure to your most chaotic Notebook section in seconds. Open up Copilot in the OneNote app and type “organize this section” and Copilot will organize your pages of notes. Say you want them organized by meeting date, simply type “organize this section by meeting date” and Copilot will regenerate the organization.  

A screenshot of Copilot-powered organization in Copilot chat in OneNote desktop app.

Copilot-powered organization is available in public preview starting in February 2025. 

Copilot Chat for web and in Teams 

The power of Copilot is now available in the OneNote web app and in Teams, transforming the way you interact with your notes. With simple natural language commands, Copilot helps you understand, summarize, and rewrite notes for enhanced clarity and purpose. Whether you’re preparing for a meeting or organizing your thoughts, Copilot in OneNote Online is the perfect partner for boosting productivity and creativity on the go. 

A screenshot of Microsoft Teams Copilot chat and referencing OneNote pages in sources.

Copilot Chat for web and in Teams is now generally available 

OneNote pages in Microsoft 365 Copilot 

Microsoft 365 Copilot experiences can now reason over your OneNote content. Whether you’re working in Word, PowerPoint, Microsoft Copilot Chat, or other Microsoft 365 apps, Copilot can reason over your OneNote pages. Citations link directly back to your OneNote page, allowing you to be confident that Copilot response is relevant to your work and productivity.  

A screenshot of a Microsoft Word document with Copilot chat referencing a OneNote page.

OneNote pages in Microsoft 365 Copilot is now generally available. 

Copilot Chat on OneNote for Mac and iPad 

OneNote Copilot on Mac and iPad is your intelligent assistant, transforming the way you interact with your notes. With simple natural language commands, Copilot helps you understand, summarize, and rewrite notes for enhanced clarity and purpose. It’s designed to work seamlessly on the Mac, offering a contextual chat experience that allows you to accomplish tasks faster than ever. Whether you’re preparing for a meeting or organizing your thoughts, Copilot in OneNote on Mac is the perfect partner for boosting productivity. 

Copilot Chat on OneNote for Mac and iPad is now generally available for commercial users.   

Read the whole story
alvinashcraft
11 hours ago
reply
West Grove, PA
Share this story
Delete
Next Page of Stories