Software-Technology

Fundamentals of Software Architecture: An Engineering Approach

Software architects guide development teams during projects from design to completion. It’s a notoriously nebulous field where the only goal is to build successful software… whatever that means and whatever that takes. Like any ill-defined field, getting from point A to point B requires skill and wisdom. That skill and wisdom evolves over time as the field evolves. Mark Richards and Neal Ford attempt to provide a guide to being a software architect without tying…

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

The Staff Engineer’s Path: A Guide for Individual Contributors Navigating Growth & Change

A lot of people enter software development because they don’t want their primary job task to consist of interacting with people. However, career progressions often define management as the next step after being a senior developer. To those who don’t want to be with people full-time, this hierarchy can make a dead end. In recent years, the pathway of a staff engineer has opened up. Staff engineers are in charge of the technical direction of…

Continue reading

Management-Business Software-Technology

Hiring the Best Knowledge Workers, Techies & Nerds: The Secrets & Science of Hiring Technical People

Today’s world is increasingly dependent on technology to increase the efficiency and effectiveness of our businesses. Yet assessing which technical person to hire can be a tall task. Do you just hire the one that is most like you? Or do you hire the one with the most accolades? And how do you advertise? Johanna Rothman’s book empowers readers to figure out their own answers. Although the technology of hiring has changed significantly since its…

Continue reading

Software-Technology

Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures

A software architect foresees potential issues in a design and judges which way will instill the most business success in the long run. Unfortunately, in almost every scenario, trade offs permeate every option. As the saying goes, the devil is in the details. Learning to anticipate problems with wisdom set great software architects apart from merely experienced ones. In this book, several experienced authors look at those trade offs in the context of distributed software…

Continue reading

Management-Business Program Management Software-Technology

Product Roadmaps Relaunched: How to Set Direction while Embracing Uncertainty

Agile practices of project management have transformed how software is developed. Planning an entire project from the start often leads to unmet objectives and cost overruns. Agile instead proposes to start small by developing a minimal viable product and growing one feature at a time. In an age of the Internet’s instantaneity, continual deployment makes agile an achievable possibility. These authors, whose careers have all been hewn in software to some degree, propose undertaking the…

Continue reading

Cybersecurity Management-Business Software-Technology

Cybersecurity Tabletop Exercises: From Planning to Execution

Cybersecurity is a trending business topic due to the incredible growth of the IT industry and the Internet. It affects almost every professional domain, whether in the business, healthcare, or financial sectors. Perhaps the biggest risk facing companies today is having their IT systems compromised in some way involving secure data – a very broad vulnerability. To limit or prevent harm, a company’s leaders can engage in “tabletop exercises” to run through common scenarios. These…

Continue reading

Management-Business Software-Technology

Putt’s Law & the Successful Technocrat: How to Win in the Information Age

Great satirical works entertain while speaking deep truths. Like a court jester or Shakespeare’s comedies, humor can often unmask human nature where polite conversation can only obscure. Thus, when approached thoughtfully, jokes play an invaluable role to any thinking person. At their best, they can correct overly genteel approaches to problems. This book, written by a pseudonymous author, does just that. It speaks foundational truths about engineering organizations with a realism that surpasses more respectful…

Continue reading