Sign In

Communications of the ACM

BLOG@CACM



The Shortest Possible Schedule Theorem: Yes, You Can Throw Money at Software Deadlines
From BLOG@CACM

The Shortest Possible Schedule Theorem: Yes, You Can Throw Money at Software Deadlines

As close as we have to a universal law of software engineering management.

Hazardous Enthusiasm and How Eagerness Can Kill A Project
From BLOG@CACM

Hazardous Enthusiasm and How Eagerness Can Kill A Project

Many otherwise competent software developers and potential contributors end up being overwhelmed by "hazardous enthusiasm." They end up overwhelmed by their excitement...

A Design Perspective on Computational Thinking
From BLOG@CACM

A Design Perspective on Computational Thinking

Maybe we can just design away the need to teach computational thinking

Soundness and Completeness: With Precision
From BLOG@CACM

Soundness and Completeness: With Precision

The two key properties of program analysis are dual of each other.

An Agile Approach to Learning Programming
From BLOG@CACM

An Agile Approach to Learning Programming

The Super Simple Programming Book is one example to teach programming in an Agile way. In general, Agile concepts can lead to highly effective learning.

­Using Independent Technical Reviews to Ensure Project Success
From BLOG@CACM

­Using Independent Technical Reviews to Ensure Project Success

By using independent technical reviews, management can have a third party audit software and ensure the dev team stays on track.

Why is Privacy So Hard?
From BLOG@CACM

Why is Privacy So Hard?

Why is privacy so hard? Why is it, after so much negative press about it, are we still being constantly tracked on the web and on our smartphones? Why is it, after...

What Is a Variable?
From BLOG@CACM

What Is a Variable?

A stab at a definition, for outsiders, of what we in computing mean by the term "variable" raises more questions than it answers.

The Formal Picnic Approach to Requirements
From BLOG@CACM

The Formal Picnic Approach to Requirements

A mathematical excursion will improve your requirements.

Scalable Intelligent Systems by 2025
From BLOG@CACM

Scalable Intelligent Systems by 2025

People are fundamental to a Scalable Intelligent System; there is no computer-only solution that can implement such a system.

How Did People Write Machine Learning Code in the Past?
From BLOG@CACM

How Did People Write Machine Learning Code in the Past?

Summarizes popular programming languages and libraries that have been used for machine learning throughout the past two decades.

Discovering Bugs, or Ensuring Success?
From Communications of the ACM

Discovering Bugs, or Ensuring Success?

Finding errors is not the same as making certain a software product works correctly.

Blame-Free Quality Control
From BLOG@CACM

Blame-Free Quality Control

How liable should programmers be for the quality of their software?

Discussing Empirical Answers to Questions of Software Engineering
From BLOG@CACM

Discussing Empirical Answers to Questions of Software Engineering

Focusing on what helps software developers.

A Software Architect Is the Person You Blame
From BLOG@CACM

A Software Architect Is the Person You Blame

How efficient is your current software project, and could it potentially benefit from the addition of a software architect?

The Goal of Software Testing
From BLOG@CACM

The Goal of Software Testing

Finding errors is not the same strategy as making sure that a product works.

­Until the Craze Fades
From BLOG@CACM

­Until the Craze Fades

Too much, perhaps, of a good thing?

Why Not Program Right?
From BLOG@CACM

Why Not Program Right?

Not your grandmother's class invariant.

When Will  We Learn?
From BLOG@CACM

When Will We Learn?

Massive software failure once again, with no lesson from past occurrences and no lesson for future systems.

The Era of Hackers Is Over
From BLOG@CACM

The Era of Hackers Is Over

The ability to hack algorithms and make data structures optimal was a virtue of programmers a few decades ago. The current reality is much different, with the ability...
Sign In for Full Access
» Forgot Password? » Create an ACM Web Account