Jun 17 2009

97 Things Every Software Architect Should Know

97 Things Every Software Architect Should Know is a collection of essays written by a community of software architects. Each essay is about a page or two and drops some soft skill knowledge an architect needs to master. I already made reference of this book in 101 Things Every Software Architect Should Know. In this post I wanted to highlight some of the favorite quotes from the book, some real pearls of software architecture. The reason why these quotes mean something to me is because I have found them to be true through my experience. I hope they right true with you too.

“Fast” is not a requirement. Neither is “responsive.” Nor “extensible.” The primary reason why not is that you have no object way to tell if they’re met.
– Keith Braithwaite

Simplicity through experience rather than generality through guesswork.
– Kevlin Henney

Every team member has a different view of what is more or less important. Their concerns are often focused on their personal responsibilities, not the project’s goals.
– Dave Quick

A little training goes a long way toward ensuring that everyone is on the same page when it comes to reuse.
– Jeremy Meyer

Software architects love the challenge of big, complicated projects. The potential rewards can even tempt people to artificially expand a project’s scope to increase its apparent importance. Expanding scope is the enemy of success because the probability of failure grows faster than expected. Doubling a project’s scope often increases its probability of failure by an order of magnitude.
– Dave Quick

Large projects’ requirements change many times before they’re completed. Important requirements usually remain important as the business changes, while others change or even evaporate. Prioritization lets you deliver the most important requirements first.
– Dave Quick

Reducing the project scope often results in a simpler architecture, and is one of the most effective strategies an architect can apply to improve the odds of success.
– Dave Quick

There is no appeals court for required field or mandatory workflow. … Required fields seem innocuous, but they are always an imposition of your will on users. They force users to gather more information before starting their jobs.
– Michael Nygard

From an architects’ point of view, the hard part is to find the natural places to locate boundaries and define the appropriate interfaces needed to build a working system.
– Einar Landre

Things are usually easier said than done, and software architects are notoriously good at coming up with things to say.
– Timothy High

When you try to guess at future requirements, 50% of the time you’re wrong and 49% of the time you’re very, very wrong.
– Chad LaVigne

Screening for specific technical knowledge is definitely part of the process but turning an interview into a certification test will not guarantee success. You are searching for developers with problem-solving skills and passion. The tools you use are sure to change; yoiu need people who are good at attacking problems regardless of the technologies involved.
– Chad LaVigne

If you accept this fact – that the choices you make today will most certainly be wrong in the future – then it relieves you of the burden of trying to future-proof your architectures.
– Richard Monson-Haefel

Choosing a good technology for right now is hard enough; choosing one that will be relevant in the future is futile. Look at what your business needs now. Look at what the technology market offers now. Choose the best solution that meets your needs now, because anything else will not only be wrong choice tomorrow, but the wrong choice today.
– Richard Monson-Haefel


Jun 10 2009

The Programmers Kindle Book Club

I’ve had my Kindle for about six months and I’ve already purchased 18 books! And before you ask, NO! I haven’t even read half of them yet! At any one time I am in the middle of two or three books. I recently finished 97 Things Every Software Architect Should Know and thought that I should list my favorite books on my Kindle. These books are classics by any standard and belong on the any developer’s bookshelf.


Mar 15 2009

Smart and Gets Down

When asked about the key traits of new Google hires, Marissa Mayer has repeatably stated the following soundbite: smart and gets things done. This also happens to be title of Joel Spolsky’s book on finding great technical talent.

In Smart and Gets Things Done breaks down how to go about to find, attract, and retain top talent.

A key advice is to be selective, but not just in the people you hire but in how you advertise your job opening. You increase the signal to noise ratio by advertising not in your local Craigslist but on programming sites and forums that attract the sort of developer you are looking for.

To attract top talent, Spolky recommends spending top dollar. Go all out to recruit and impress star programmers. Pick them up in chauffeur cars, put them up in swanky hotels, create a creative atmosphere where people want to work. Every developer in your office should have the no less than two monitors and a Herman MIller Aeron chair. Your office space should ooze kewl, not software sweatshop.

One controversial selection criteria that Spolky advocates is scoring resumes on their English. I tend agree here with Spolky even though I’ve encountered some great programmer that get things done, but just can’t communicate with the rest of the team. Code is not the only form of communication that developer should proficient, written and verbal communication is important in writing specifications, debating designs, cooperating with clients, and ultimately managing other developers.

Another piece of advice handed out by Joel on hiring was to piggy back on other selection process. It helps your selection process if your candidate has proved themselves in other highly competitive situations, like top school, companies, or institutions.

After reading Smart and Gets Things Done, I feel that there is a lot than a soundbite. If I could characterize the traits I like look for in a candidate into a catchy phrase it wouldn’t be so catchy. I tend to seek smart, gets things done, shows passion, and it’s a jerk sort of candidate.

Their is a tight balance of the traits you find important in a candidate and the business needs at hand. Someone that is really smart and get a lot done might just want to rewrite the entire system in Scheme and undermine your management team. To me, ‘gets things done’ means someone that rolls up their sleeves and digs in whether it’s a VBS or bat file or Java program or Python script.

Here are some sample quotes from Smart and Get Things Done:

  • The great software developers, indeed, the best people in every field, are quite simply never on the market. The average great software developer will apply for, total, maybe, four jobs in their entire careers.
  • One good way to snag the great people who are never on the job market is to get them before they even realize there is a job market: when they’re in college.
  • Most programmers aren’t just looking for a gig to pay the rent. They don’t want a “day job”: they want to eel like their work has meaning. They want to identify with their company.
  • Years of experience have taught me that programmers who can communicate their ideas clearly are going to be far, far more effective than programmers who can only really communicate with the compiler.
  • Brilliant programmers who have trouble explaining their ideas just can’t make as much of a contribution.
  • Our company criterion for selective is usually getting into a school or program that accepts less than 30% of its applicants, or working for a company that is known to have a difficult application process, like a whole day of interviews.
  • The entire industry of professional headhunters and recruiters is bizarrely fixated on the simple algorithm of matching candidates to positions by looking for candidates who have the complete list of technology acronyms that the employer happens to be looking for.
  • I always reassure candidates that we are interested in how they go about solving problems, not the actual answers.
  • The Econ 101 manager assumes that everyone is motivated by money, and that the best way to get people to do what you want them to do is to give them financial rewards, and punishments to create incentives.
  • The real trick to management is to make people identify with the goals you’re trying to achieve.

Mar 8 2009

Kindle for iPhone

I’ve am a happy owner of a first generation Amazon Kindle electronic book reader. As a die hard nerdish book worm and early adapter I was immediately in awe of the Kindle. Sure the Kindle has it’s issues but the technology and business model has definitely proved themselves. The Kindle is the size of a paperback and can carry a whole bookshelf, thousand of pages of books without the dead trees and deforestation. The Kindle is small and a perfect size to travel with but its features and capabilities overlap with other small, portable, and mobile devices such as the iPhone and netbooks. Some technology pundits saw the iPhone, with it’s high resolution and elegant design, as a direct competitor to the Kindle. I’ve personally been questioned as to why I carry both devices.

I’ve been using the iPhone since it first came out and love browsing and reading websites on it. But I have found reading PDF documents on the iPhone difficult and awkward at times. The default PDF reader on the iPhone is slow and I have had it crash when loading large PDF documents. To help alleviate the pain points of reading large documents on the iPhone, Amazon has recently released Kindle for iPhone.

Kindle for iPhone allows iPhone users to read Kindle edition electronic books previously purchased on Amazon. Once you download, install, and configured Kindle for iPhone with your Amazon user information, you can download, sync, and purchase Kindle books. Kindle for iPhone uses a technology Amazon calls Whispersync to synchronized the last page read between your iPhone and Kindle devices. With Whispersync you can switch devices without skipping a page or a beat. Unfortunately I was not able to sync my notes and marks between devices and I do hope that feature is in the works. I’ve been using the Kindle for iPhone application while standing in line for lunch when all I have is my wallet and my phone. For long periods of reading, I prefer the electronic ink on the Kindle, as reading for a while on the iPhone can tire your eyes.

Kindle for iPhone is a smart power play by Amazon, and a kewl opportunity for Kindle users to access their content in new devices. What technology pundits saw as competition, Amazon saw as opportunity. Amazon’s Kindle for iPhone application uses the iPhone application marketplace to promote it’s own electronic book marketplace.

In full disclosure, I downloaded but never used the iPhone application Stanza. Stanza allows you to purchase popular books in digital formats. Stanza supports ePub, eReader, PDF, Mobipocket, and MS Reader books.

On last note. If you are using a first generation Kindle, don’t forget to upgrade your firmware. As of this writing, the most current Kindle software version is 1.2.


Dec 30 2008

TechKnow Year In Review 2008

It is that time of year where we reflect on the accomplishments of the passing year and look forward to the one to come. Here is a window into the past year in technology through this year’s popular posts on TechKnow Juixe.

Top Favorites 2008

Ruby

Shoes

Perforce

Google App Engine

FlashDevelop

Mobile

Rants and Raves

Reviews

Top Tips and Hot Hacks

Tweets

Year in Review


Nov 27 2008

The Ultimate Geek Gift Guide 2008

This geek gift guide is not so much for geeks and techies but for those that have geeks and techies in their life and need a little help in finding the right techie gift. So if you don’t know what is the hottest gift item or you want to redeem yourself from the Cosby sweater you gave last year, this is the gift guide for you.

The hottest tech gift must be the Apple iPhone. The iPhone is one of those gifts that will be used every single day, and not just to make calls. In fact, the feature I use most often is email, browsing online, and Google Maps. I also use the iPhone to play freely available casual games available on the App Store. And of course you can play your iTunes music on the iPhone just as you would on your iPod.

Netbooks are a trendy new segment in the ultra portable laptop market. Netbooks usually refer to sub $500 laptops perfect for email and internet browsing. The ASUS Eee PC is perhaps the most popular brand in this market but there are available models like the HP Mini 1140NR and Acer Aspire One.

The Flip Mino is quickly gaining a big market share of the camcorder business from established brands such as Sony, Panasonic, Canon, etc. The Flip is the iPod of video cameras. It is small, portable, and simple to use. When recording, you can zoom in out and stop. When playing back you can increase/decrease the volume and pause.

The Sony PlayStation Portable (PSP) has the best graphic intense games available in the hand held gaming market. The PSP is also a great platform for watching movies on the go. Whenever I travel on long trips I make sure to pack a couple of UMD movies. There are a ton of movies and shows available on the PSP. In terms of games you can’t go wrong with titles such as God of War: Chains of Olympus, Medal of Honor: Heroes, Need for Speed: Most Wanted, and Sega Genesis Collection. Notice that most of these titles are sequels to popular games systems like the PlayStation, XBox, and Wii.

The Nintendo DS portable gaming system will also be a popular with geeks this season. Unlike the PSP, the DS has more innovative games that take full advantage of its touch dual screens. On the DS, the geeks in the family will enjoy games like Mario Party DS, KORG DS-10 Synthesizer, Brain Age, and TouchMaster.

The Nintendo Wii is perhaps the most fun and social gaming platform currently available. The game play with the Wii Remote can be very animated. The Wii is definitely a gaming console for the whole family, and there are plenty of games that the family can play together. Some personal favorite games that I am enjoyed this year have been Carnival Games, Mario & Sonic at the Olympic Games, Super Mario Galaxy, and Super Smash Bros. Brawl.

One item that a geek never has enough of is disk space. Technologist can easily fill a 100 GB hard drive with bittorrents, software, games, movies, pictures, data, etc. in no time. The geek in your life will appreciate a portable hard drive like the Western Digital My Passport which are available with 360 or 500 GB. The My Passport is the slimmest, slickest, and sexiest of the portable drives I have seen. They are small enough to carry with you in your laptop bag. As a stocking stuffer, you might be interested in getting a 16 GB USB drive.

Earlier this year Oprah said that the Amazon Kindle was her favorite new gadget. The kindle an electronic book reader like the Sony eReader except that the Kindle’s wireless connectivity allow you to shop and download books on the fly as you go. Hundreds of blogs are also available through the Kindle such as Slashdot and The Onion.

As everyone already knows, the standard geek uniform is jeans and a t-shirt. Any self respecting geek needs to have some ThinkGeek shirts in his wardrobe. ThinkGeek gear is like Armani Exchange for geeks, binary fashionable and geek chic.

Be sure to take a look a the Juixe Store. We have selected the best software development books that need to be in every software developer’s bookshelf such as the classics like Code Complete, The Mythical Man-month, and The Pragmatic Programmer.

If you still need a little bit more help in finding the right tech gift for the geek in your life, take a look at the following geek gift guides from other sources such as CNET, Engadget, and Ars Technica.

Technorati Tags: , , , , , , , , , , ,