Posts
Consensus and Compromise
Consensus and Compromise Getting the most from a software development team depends on the ability to build technical consensus among the professionals on the project. But why should it matter whether you and your office mate agree on the layout of an entry form or the best way to report error messages? Technical consensus is not about getting along together or feeling close to your fellow programmers. (Not that there is anything wrong with getting along or feeling good about each other.
Posts
The Quasi-Forgotten Software Scribe
The Quasi-Forgotten Software Scribe A scribe is a person who serves as a professional copyist, especially one who made copies of manuscripts before the invention of automatic printing.
Remember Bob Cratchit in A Christmas Carol, toiling away on the books at the august firm of Scrooge and Marley, finger-less gloves on his hands to keep them from freezing between entries? Watching it will start us to thinking about old Bob and all the other “clarks” who kept the records for so many enterprises over the centuries.
Posts
Two simple ways to negotiate consensus in a software development group
Two simple ways to negotiate consensus in a software development group You can’t reach consensus unless you recognize it when you have it in your grasp. This means that software development groups trying to reach collective decisions are wise to agree, in advance, on the criteria by which technical matters will be decided. What is important? What matters? What is “good” and what is “bad” within the confines of this particular project?
Posts
The 10 typical sources of uncertainty in Software projects
The 10 typical sources of uncertainty in Software projects Suppose you had an utterly perfect process for delivering software. Would that remove all uncertainty from your projects? In fact, is the software building process even one of the major sources of uncertainty? Various project management approaches do not consider the impact that uncertainties have on the project. The identified threats by uncertainty in a project day-to-day are real and immediate and the expectations in a project are often high.
Posts
Seven Principles of Software Development - Revisited
Seven Principles of Software Development - Revisited Principle #1: The Reason It All Exists A software system exists for one reason: to provide value to its users. All decisions should be made with this in mind. Before specifying a system requirement, before noting a piece of system functionality, before determining the hardware platforms or development processes, ask yourself questions such as: Does this add real VALUE to the system? If the answer is no, don’t do it.
Posts
Arguing for the sake of arguments in JavaScript
Arguing for the sake of arguments in JavaScript This article deals with some intricacies revolving around the arguments object, a magical and mysterious creature residing in the functional realms of the Javascript world, which can be summoned anytime in your code by the programming wizards without any spells, incantations or sorcery. The arguments object is an Array-like object corresponding to the arguments passed to a function. It is a local variable available within all (non-arrow) functions.
Posts
The Four Factors of a Good Program
The Four Factors of a Good Program If we plan to study programming as a human activity, we are going to have to develop some measures of programming performance. That is, we are going to have some idea of what we mean when we say that one programmer is better than another, or one program is better than another. Although we all have opinions on these questions, we shall find that the answers are not as simple as we might wish.
Posts
Egoless Programming
Egoless Programming Egoless programming is a concept introduced by Gerald Weinberg in The Psychology Of Computer Programming. The idea is that programmers must fight the natural tendency to treat their programs as part of themselves, and therefore to reject all criticism. Rather, they should do their best to treat their designs & implementations as objects independent of themselves, and to view criticism dispassionately on its merits. What is to be done about the ego problem in programming?
Posts
An Elementary Guide to Ember Build Performance
An Elementary Guide to Ember Build Performance When we talk about build performance, it is important to understand that there are several build phases:
Cold build Warm build Rebuild Cold build Cold build is the build which happens when you boot your app up for the first time. This build is the slowest because the cache is not yet populated and the application is booting for the first time.
Posts
The Twelve Roadblocks to Healthy Conversations
The Twelve Roadblocks to Healthy Conversations What obvious obstacles are relevant to obstruct a conversation? Experts in interpersonal communication have identified various response patterns that tend to block conversation. Thomas Gordon devised a comprehensive list that he calls the “dirty dozen” of communication spoilers. These undesirable responses include:
Criticizing Making a negative evaluation of the other person, his/her actions, or attitudes. The act of passing judgment as to the merits of anything; censure; faultfinding.