Management-Business Software-Technology

Rapid Development: Taming Wild Software Schedules

For decades, the classic project-management challenge has been to produce software quicker with more features and less bugs. Software, however, has its revenge because scheduling it accurately and precisely is a highly inexact science. Even the best, seasoned estimators struggle at first attempt. This book by Steve McConnell, though written 30 years ago, gives communal sympathy towards development teams who can seemingly never meet a deadline. Further, he actually provides some answers on how to…

Continue reading

Software-Technology

A Philosophy of Software Design

Writing computer code provides a programmer incredible freedom, but writing good code that’ll work in a team environment is a trickier assignment. Many coders fall back on whatever guidelines their manager issues, but that approach can obscure the real challenge. Not only is someone programming a computer to achieve a certain goal, but that person is simultaneously writing a letter to their future self and fellow programmers about what they are trying to do. Clear…

Continue reading

Artificial Intelligence Indie

The Complete Guide to Microsoft Agent Framework: Build, Test & Manage AI Agents that Integrate Seamlessly with Azure, M365 & Business APIs

This book seeks to teach readers how to write Python or .NET code to perform certain tasks as Agents within Microsoft’s AI platform. Unfortunately, it’s heavy on code and light on concepts. I wish it’d teach more about how to integrate with Azure’s web interface instead of the command line alone. It does succeed at showing many examples of how to code agents, but it lacks a deep conceptual explanation of how agents integrate with…

Continue reading

Artificial Intelligence Indie

Retrieval-Augmented Generation (RAG) & Vector Databases: A Practical Guide for AI Developers

Retrieval-Augmented Generation (RAG) is how artificial intelligence prioritizes facts in a given domain over and above all the information the basic, foundational model offers. It allows businesses, scientists, and others to prioritize their custom knowledge instead of making up answers. It’s an extremely powerful tool that most AI users don’t understand. This book tries to explain the basics of a RAG system in Python code. Unfortunately, despite a grasp on the basics of RAG, it…

Continue reading

Software-Technology

Pair Programming Illuminated

Pair programming is a practice in software development whereby two programmers write code together. I’ve studied it from afar until recently. What happened is a colleague asked me to pair program with him. As his program manager from a coding background, we’ve been working with relative success and happiness for several months. I liked the process so much that I wanted to take a deep dive to explore problem areas and tricks of the trade…

Continue reading

Software-Technology

The Essence of Software: Why Concepts Matter for Great Design

In today’s software design, much focus hones in on users’ experience with the interface. Teams make large efforts to make that experience as pleasing as possible so as not to drive away customers. However, they don’t place as much emphasis on the conceptual nature of software – what concepts users extract from the software and what concepts the software requires for effective use. Since the advent of the GUI, today’s software conveys intellectual matter that…

Continue reading

Indie Software-Technology

Software Architecture for Developers: Designing Scalable & Maintainable Systems for the Real World

This book provides a succinct overview of the subjects a software architect interacts with on a regular basis in today’s world. That is, it portrays a high-level snapshot of the field in 2024. It summarizes what the current technologies are and lists the different conceptual frameworks software technology uses. Microservices, cloud computing, software as a function, and the packages that oversee it fill the lists that Steve Abrams provides. Its main weakness, however, is that…

Continue reading

Software-Technology

How Google Tests Software

I learned to develop software in the 1990s and started full-time work in the 2000s. I took time off to study other fields and returned to the practice in 2012, about the time this book came out. In the last 13-or-so years, I’ve noticed that the art of testing software has changed significantly. Twenty-five years ago, I started to code in an academic lab where we did our own testing out of necessity. In industry,…

Continue reading

Software-Technology

Tidy First? A Personal Exercise in Empirical Software Design

When a software developer is writing code, she/he is often confronted with a problem: How much work should I put into writing “the best” code versus just doing a quick but serviceable job? Kent Beck, pioneer of the influential Extreme Programming: Embrace Change, addresses this question via an in-depth look at the process of “tidying” code. His answer is usually to “tidy first”… but not always. This book seeks to identify exactly when one is…

Continue reading

Software-Technology

Data-Oriented Programming: Reduce Software Complexity

Professionally, I write code for web applications in PHP for biomedical use. Thus, data play a central role in my professional life. At first, I tried to design my programs around object-orientated (OO) principles, but soon found that data played a strong role that OO actually restrained. Years later, I found how React divided itself between immutable data, state information, and code. Though I no longer code in React, I find this division still helpful…

Continue reading