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

Management-Business Software-Technology

Become an Effective Software Engineering Manager: How to Be the Leader Your Development Team Needs

Managing software engineering efforts is a difficult task. One needs a thorough knowledge of authoring software, which itself is a rare, time-consuming accomplishment. Almost all general managers do not have an in-depth knowledge of programming (though many assume they do!). A few of the best software developers are promoted into a managerial role and have to figure out what to do on the job. Much literature on general management topics exists, but few writings center…

Continue reading

Management-Business Software-Technology

Inspired: How to Create Tech Products Customers Love

Since computers and digital technology have become so ubiquitous in contemporary life, creating good software and technology products has become an important business function. Many (exceeding 50%) technology products fail, despite significant design, engineering, and financial efforts. How can we make this process more efficient and profitable? That’s the job of a relatively new job title: the product manager. In this book, Marty Cagan discusses how to fulfill this role in an organization so that…

Continue reading

Management-Business Software-Technology

Managing the Unmanageable: Rules, Tools & Insights for Managing Software People & Teams

Many books on managing software development focus on small subsets of the management process. For example, many books on agile fill bookstores; others propose a well-studied answer to a particular problem; still others provide anecdotes and inspiration to often-overtaxed managers. This book fits into none of those categories. Instead, it seeks to provide a comprehensive treatment on how to manage software development by managing individuals instead of processes. This modern approach fits more in line…

Continue reading

Indie Software-Technology

Software Quality Assurance 101: Best Practices Made Easy

Quality assurance (QA) is an essential part of software development. It helps ensure that newly developed software actually does what it’s intended to. This seems like a deceptively easy task at first, but testing is, in truth, a skilled art-form. In this book, Rachelle Rood and Jessica Parker attempt to orient those just entering the field how to approach their work. They break down complex topics while pointing practitioners how to add value to software…

Continue reading

Management-Business Software-Technology

Managing Humans: Biting & Humorous Tales of a Software Engineering Manager

Software engineers stereotypically have the personality type to stay behind their desks and not socialize too much. Their coding skills, so the story goes, facilitate their contribution to the company, not their finessing of humans. However, if they are ever promoted to a manager, they quickly have to pivot to understanding how to get their needs from subordinates who don’t always seek after managerial social approval. Not everyone is successful with this transition, but once…

Continue reading

Software-Technology

Designing Secure Software: A Guide for Developers

Software security is an important yet neglected issue. Most developers will immediately recognize its importance because, with the Internet, so much of the computing infrastructure (the “surface”) is vulnerable to attack. Yet it’s simultaneously neglected because it relies on mastering the unknown – an unsurmountable topic. Reviewing security issues in one’s own code is often a painful process, much like reading an editor’s notes on one’s own writing. Into this ongoing conversation, Kohnfelder, a developer…

Continue reading

Management-Business Software-Technology

Agile Essentials: You Always Wanted to Know

I’ve worked as a software developer in Agile environments since around 2014 and have enjoyed the productivity and quality gains that this paradigm provides. This workplace loosely implements Agile and accomplishes amazing feats of productivity. In this book, Ashar distills Agile concepts into easy-to-read chunks that can be quickly implemented. This book empowers managers to organize their team’s work more effectively so that customers can benefit more readily. Ashar begins this guide by stating that…

Continue reading