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

Indie Software-Technology

29 Guidelines for Successful Pair Programming

Among software engineers, pair programming occurs when two coders join together to write code together. It’s an incredibly efficient and focused means of knowledge transfer. However, developers are also known for having prickly, sometimes difficult personalities, and these personal hangups can get in the way of effective pair programming. Author Oozie Ligus has logged over 700 hours of time pair programming and offers his advice on how to build an effective relationship. Following “extreme programming”…

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

Writing Effective Use Cases

The first thing I noticed is that this book is almost 25 years old. That’s an eternity in computer science, especially in a non-mathematical subject. It was written under the “waterfall” paradigm of software development, before agile took over most of the software engineering world. Instead of a page or two, waterfall specifications could require a binder of dozens, if not hundreds, of pages. This book describes “use cases” instead of the “user stories” 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

Modern Software Engineering: Doing What Works to Build Better Software Faster

Software engineering is a relatively young discipline that’s rapidly evolving. What practices moved software forward thirty years ago are different from what moves them today. Today, most software requires continual-release techniques in the era of Internet speed. In this book, David Farley, an expert in that area and one seasoned in business practices, brings the field up to date with practices that work. Modern Software Engineering provides a good summary informed by reading, personal practice,…

Continue reading

Leadership Management-Business Software-Technology

The Engineering Executive’s Primer: Impactful Technical Leadership

Encoding software is a highly technical task, but effective leadership is often anything but technical. Combining the two thus can be supremely difficult, but this pair of skills is necessary to fill roles like Chief Information Officer (CIO) or Chief Technology Officer (CTO). Unfortunately, advice is hard to come by in the literature since only a few extended books in this space. To better fill these gaps, Will Larson, known for his deep looks at…

Continue reading

Presentation Software-Technology

Creating Software with Modern Diagramming Techniques: Build Better Software with Mermaid

As a computer science major in college, I learned about Unified Modeling Language (UML) as a way to visually document software. However, I soon found designing and maintaining those images to be more of a pain than they’re worth. I had to reshuffle images on graphics programs for every minor change, so keeping documentation up to date proved to be impossible. Recently, however, I discovered that someone invented a language, called Mermaid, to convert a…

Continue reading