A common debate in software development projects is between spending time on improving the quality of the software versus concentrating on releasing more valuable features.Usually the pressure to deliver functionality dominates the discussion, leading many developers to complain that they don't have time to work on architecture and code quality.This debate is based on the assumption that increasing quality also increases costs, which is our common experience.But the counter-intuitive reality is that internal software quality removes the cruft that slows down developing new features, thus decreasing the cost of enhancing the software.
Management love their metrics.The thinking goes something like this, "We need a number to measure how we’re doing. Numbers focus people and help us measure success." Whilst well intentioned, management by numbers unintuitively leads to problematic behavior and ultimately detracts from broader project and organizational goals.Metrics inherently aren’t a bad thing;just often, inappropriately used.This essay demonstrates many of the issues caused by management’s traditional use of metrics and offers an alternative to address these dysfunctions.
There isn't a simple dichotomy of remote versus co-located work, instead there are several patterns of distribution for teams each of which has different trade-offs and effective techniques suitable for them.While it's impossible to determine conclusive evidence, my sense is that most groups are more productive working in a co-located manner.But you can build a more productive team by using a distributed working model, because it gives you access to a wider talent pool.
We see so much emotional discussion about software process, design practices and the like.Many of these arguments are impossible to resolve because the software industry lacks the ability to measure some of the basic elements of the effectiveness of software development.In particular we have no way of reasonably measuring productivity.
One of the commonly accepted beliefs in the software world is that talented programmers are more productive.Since weCannotMeasureProductivitythis is a belief that cannot be proven, but it seems reasonable.After all just about every human endeavor shows some people better than others, often markedly so.It's also commonly observed by programmers themselves, although it always seems to be remarked on by those who consider themselves to be in the better talented category.
Many people belive that you can't do a fixed price contract in an agile project.Since the whole point of an agile process is that you cannot predict the future, this isn't an unreasonable supposition.However this doesn't mean you can't come up with a fixed price agile contract, what it really means is that you can't come up with a fixed scope contract.
One of my favorite soundbites is:如果它伤害，做更多的时候。它看似荒谬的表面上，而是产生一些有价值意义的快乐属性，当你深入挖掘