February 2012
5 posts
Designing great software is a constant battle with complexity, mercilessly simplifying away unnecessary complexity, and hiding necessary complexity behind simpler abstractions.
The game has changed. It is no longer a race to produce the best smart phone, the best television, or the best desktop computer operating system.
Instead, it is who can provide me with effortless access to consume and produce the digital content I want, from 140 characters or less messages, to multi-media publications, to high definition 3D blockbuster movies, and do so on various different...
My book about Jeff De Luca’s Feature-Driven Development (FDD) process was published ten years ago this month. Still the only book dedicated to the subject, which is a shame because FDD still has a great deal to offer, especially for larger software development teams looking for ideas beyond those offered by Scrum, Lean and Kanban.
January 2012
11 posts
“If you have a garden and a library, you have everything you need.” -Marcus Tullius Cicero
… but then he did not have access to an iMac, MacAir or iPad!
Would like to stick the following on the meeting room walls of some of the organizations I used to work for/with :-)
“It is better either to be silent, or to say things of more value than silence. Sooner throw a pearl at hazard than an idle or useless word; and do not say a little in many words, but a great deal in a few.” -Pythagoras
Sounds like Orison worked on some projects as crazy as some I’ve endured in recent years …
“Success is not measured by what you accomplish, but by the opposition you have encountered, and the courage with which you have maintained the struggle against overwhelming odds.” -Orison Swett Marden
“The important thing is not to stop questioning. Curiosity has its own reason for existing. One cannot help but be in awe when he contemplates the mysteries of eternity, of life, of the marvelous structure of reality. It is enough if one tries merely to comprehend a little of this mystery every day. Never lose a holy curiosity.” -Albert Einstein
Complications arose, ensued, were overcome.
– J. Sparrow, Capt.
“It’s no coincidence that in no known language does the phrase ‘As pretty as an airport’ appear.” -Douglas Adams
“The way you overcome shyness is to become so wrapped up in something that you forget to be afraid.” -Claudia Lady Bird Johnson
Quality is not an optional extra in any part of what you do.
If a customer/client experiences a lack of quality in one area they are likely to jump to the conclusion that issues they are experiencing in another area are due to your lack of quality rather than their own mistakes.
The result of these assumptions is increased calls to technical support, more time spent in technical support...
Generics are a powerful mechanism in Java but with power comes responsibility. The indiscriminate use of generics, especially generic methods, increases the complexity of a piece of code making harder to understand, and therefore harder to debug, reuse, extend, etc.
If a collection is designed to be heterogeneous (contain objects of different indeterminate types) employing generic methods to try...
New version of Brain Ache in Color available
Recently posted an update to my iPhone/iPod Touch app, Brain Ache in Color on iTunes.
Adds GameCenter support to the free version with scores for partial puzzles solved, and achievements that range from easy to ‘too hard for me’. Also, significantly improved user interface (IMO at least).
The professional version removes adverts, has undo, rotates to four different orientations, and...
“Speech is conveniently located midway between thought and action, where it often substitutes for both.” -John Andrew Holmes
December 2011
4 posts
“It usually takes more than three weeks to prepare a good impromptu speech.” -Mark Twain
It's about roles, not circles
The circles in Google+ are a good step in the right direction. Maintaining multiple accounts in Facebook so that I can separate technical posts from ‘I do have a life away from computers’ posts is annoying. Circles give me the separation but the focus is wrong.
Social circles form around roles that I play in life, as a father to my children, a colleague to people at work, as an...
http://www.ted.com/talks/luis_von_ahn_massive_scale... →
Oh! that’s why I can’t always recognise one of the words very well in reCAPTCHAs
http://markpadams.posterous.com/hybris-vs-oracle-at... →
November 2011
8 posts
‘Home is where your heart is’ + ‘My heart was in my mouth’ = ?
‘Home is where your heart is’ + ‘The way to a man’s heart is through his stomach’ = ?
The unit in unit testing
Unit testing in the dim and distant past of the last century meant testing the code I was writing before it was integrated with others’ code. It was testing a chunk of software in isolation from the rest of the application, system or component code.
Unit testing in the JUnit era has slowly come to mean the testing of the smallest practical chunk of software. For mainstream object-oriented...
The task of the software development team is to engineer the illusion of...
– Grady Booch, Object-oriented Analysis and Design
Strategies for Introducing Static Code Analysis
1. Agree the rules
Before switching on a static code analysis tool, developers need to agree on the rules that should be checked. It is pointless generating large amounts of rule violations if the developers do not agree that they are good or even vaguley useful.
2. For new code, start as you mean to go on.
If you are starting with a blank slate, set up the analysis tool to report viloations...
In my experience, technical debt in the underlying definition and structure of problem domain (business) objects is an area where one has to pay some of the highest rates of interest. Transaction handling is another.
Not pee'ing on your code
An old and not particularly funny joke goes as follows (you can substitute any pair of rivals for the characters e.g. navy and marine, WInston Churchill and opposition politician, etc):
A Harvard man and a Yale man are at the urinal. They finish and zip up. The Harvard man goes to the sink to wash his hands, while the Yale man immediately heads for the exit.
Mister Harvard says, “At...
I am selling out by getting you to buy in?
October 2011
4 posts
3 tags
3 tags
Talent hits a target no one else can hit; Genius hits a target no one else can...
– Arthur Schopenhauer (via nevver)
September 2011
9 posts
1 tag
Simplicity is the final achievement. After one has played a vast quantity of...
– Frederic Chopin
The costs of poor quality are tangible; they will cost you customers and money,...
Eating the first nuts produced by my two filberts bushes that I planted a couple of years ago in the back garden.
4 tags
Debugging is twice as hard as writing the code in the first place. Therefore, if...
– Kernighan (via jeffdeluca)
You will never do anything in this world without courage. It is the greatest...
– Aristotle (Ancient Greek Philosopher, Scientist and Physician, 384 BC-322 BC)
3 tags
6 tags
August 2011
9 posts
Scala allows you to decide whether a variable is immutable (read-only) or not (read-write) when you declare it. An immutable “variable” is declared with the keyword val
...
An immutable val must be initialized, that is defined, when it is declared.
A mutable variable is declared with the keyword var.”
An Introduction to Scala
If true, this warms the cockles of my XML-configuration-file-scarred heart:
“As we will see, many common design patterns and architectural techniques like dependency injection are easy to implement in Scala without the boilerplate code or lengthy XML configuration files that can make Java development tedious.” IntroducingScala.html
Continual not continuous
Just saying but …
Continuous integraton, continuous testing and continuous improvement as defined by their proponents would be better called continual integration, testing and improvement.
From the Oxford English Dictionary website:
“There is some overlap in meaning between continuous and continual, but the two words are not wholly synonymous. Both can mean roughly ‘without...
5 tags
We try to solve the problem by rushing through the design process so that enough...
– Glenford Myers (via jeffdeluca)
The computing world has undergone a revolution since the publication of The C...
– Kernighan and Ritchie, The C Programming Language 2nd Edition, Prentice Hall1988
4 tags
We all want our software systems to be fast, reliable, easy to use, readable,...
– Betrand Meyer, 2000, Object-Oriented Software Construction