Shawn on Technology
Tech, Geek and Nerd ramblings about all things weird and wonderful on the Internet and in life...
Wednesday, September 28, 2011
The Yagni Principle
Friday, September 9, 2011
A note on craftsmanship
Often times we are driven by project timelines and drop-dead dates only to be saddled with a big lump of unmaintainable code. I've been doing some reading on software craftsmanship and admittedly, some things make you wonder if the tedium of 'extract til you drop' and 'test first' are worth the effort...after all, it seems that some things could potentially double the initial development time.
If 75% of software lifecycle is in maintenance, and 25% is in initial development. Suppose I double my initial development; if my maintenance is costs are cut in half, then I've saved about 12.5% of my overall cost of development.
25 * 2 + 75 *.5 = 87.5%
If I can reduce my initial development by half, but it doubles my maintenance costs, then it will eventually cost the organization an additional 62.5% more than it had to and as much as 75% more than it would have if I had just spend some more up front time making code maintainable.
25 * .5 + 75 * 2 = 162.5% + 100 - 87.5 = 175%
Easy math for the brass.
Friday, August 5, 2011
Keep your (over)head down
Anyone who has actually read the agile manifesto can tell you that agile favors collaboration over process because process is expensive and time consuming, and in the end, nowhere near as valuable as collaboration. This doesn't mean that you don't follow a process in your organization, this simply points out that when one of these two elements has to give, it must always be process.
My preference in scrum is one week iterations, especially when the requirements for a project are vague. The reason for this is because vague requirements equals blurry vision and blurry vision usually equals frequent changes in direction. I was told recently that the problem with iterations that are too short is that the overhead is too high; by the time you get out of all those planning meetings and demos and scrums, you don't have any time left to do actual work.
The jury is in on shorter iterations, and the verdict is widely accepted. The obvious solution is to reduce your overhead...starting with much shorter meetings with fewer attendees. After that, collaboration then becomes a much more intimate, and in my opinion, a more effective experience.
I can tell a team is forming when I frequently see one or more developers standing over the shoulder of another developer looking at his or her screen with two or more sets of index fingers pointing at something on the screen. I like to refer to these sessions as a huddle; it is where the 'how the heck are we going to do this?' get's done.
I like to try and separate the 'what' from the 'how' during the development process. The what involves the whole team. Everybody on the team needs to know what is being done so that they can adjust their actions to best accomplish the goal. The how is best determined by the ones that are actually doing the work...so long as it fits in with the bigger what that the team is working on. Planning meetings that include the whole team should focus on what and stay away from how. In most if not all cases, 80% of the team will not need to know how things are done, and if they do, then they can hook up with the right team members off line to work this out.
Every time I feel like a meeting is dragging on, it is usually because we have gone too deep into the how portion of the topic or worse, complete digression into useless background information.
Aim for:
Daily Scrum - 10 minutes max
Demo - 30 minutes
Sprint planning - 30 minutes
Retrospective - 30 minutes
The tough one here is obviously the 30 minute planning session, some have said that the sprint planning meeting is time-boxed to 4 hours, suit yourself. Keep in mind that this meeting is to basically create the sprint contract, not solve all the problems that the sprint poses. Problem solving meetings are best done in the huddle and only with the team members that are actually implementing the solution. You may have a need to periodically have a more in-depth planning meeting, I suggest every four sprints perhaps do this.
Keep in mind that this is a guide, take as much time as you need, but remember to stick to what and stay away from how.
http://agilesoftwaredevelopment.com/files/Simple_Sprint_Template.pdf
http://www.mountaingoatsoftware.com/scrum/sprint-planning-meeting
http://www.slideshare.net/vickidhiman/what-is-a-sprint-planning-meeting
Friday, July 29, 2011
Keeping out of the weeds
As parents, we take responsibility for our children and tend to take ownership of their bigger mistakes and shake our heads at the smaller ones. We puff up with pride at their accomplishments, but in truth, it is our children that step up and make the future happen. My goal as a parent is that one day, my children won't need me, but hopefully will still want me around.
Back in the auditorium, I was hoping that I played some part in inspiring my daughter the way she was inspiring her classmates. We give guidelines and support, we answer their questions, we challenge them, we cheer for them and we correct them.
What we have to remember is that this is their future an their life, we are just the guides for as long as they need or want us around.
So what does this have to do with technology?
I am hesitant to compare folks I work with to my children, but the common thread is in the approach to helping them succeed. As a problem solver, my tendency is to jump in and solve problems. The challenge is to know what types of problems I should be solving. Too often, managers and leaders are quick to come up with solutions and dictate them to their teams. Putting aside how right or wrong our solutions may be, this simply doesn't scale and doesn't give room for other bright people to shine.
As a manager, it is far more productive to lead people that can invent on their own and solve problems on their own and simply look to me for definition of riverbanks instead of needing me to pull them through tough the rapids (so to speak). My job is to watch and listen as they navigate through and make sure that outside perils are kept at bay and not impeding their success.
If you manage people, instead of dictating steps, try setting guidelines. Instead of solving their problems, try listening and supporting them as they solve their own problems. Instead of taking credit, give it away. Instead of pointing fingers, take the responsibility and challenge your team to improve.
Tuesday, July 6, 2010
Picasa Facial Recognition
Image via CrunchBase
After getting back from my trip to India, I was uploading photos of my trip where I generally use the Picasa desktop application. What I didn’t know existed was the way that Picasa employs a facial recognition component to crop out faces and tag them, in some cases automatically once it learns the faces of people you know. In about an hour I had added names for over 100 of my contacts to hundreds of photos. Once I had the tags, I can easily see all the photos of my wife or kids with a few short clicks. It also thumbnails all of the headshots giving me tons of poses I didn’t realize I had.
The feature is available in both the desktop and web versions of Picasa, but the interface is a bit different for each.
In Picasa desktop, click on the ‘People’ tab to get started and it will immediately begin to clip faces from all your photos and put them in the ‘unknown’ list. Then you just click to ‘add a name’ and it will search your contact list or allow you to create a new person if one doesn’t exist. The web version works very similar, but you just click the link on the right hand side of the page to get started.
Is this a facebook killer do you think?
Related articles by Zemanta
- Q.&A.: Keeping Picasa and Gmail Separate (gadgetwise.blogs.nytimes.com)
- Face recognition (edugeek.net)
- Automatic face detection comes to Facebook photos (social.venturebeat.com)
- Picasa Face Recognition Software (brighthub.com)
- Face recognition & auto-tagging coming to digiKam (omgubuntu.co.uk)
- Google reconsiders introducing facial recognition technology (telegraph.co.uk)

Friday, June 11, 2010
Google Calendar Sync
Image via Wikipedia
Like most people, I have a work schedule to keep as well as a personal schedule. Managing two calendars invariably causes conflicts and over commitment, so lots of people manage their personal schedules in their office scheduling environment. I see lots of problems with this, since I try to keep my personal life and my professional life as separate as possible.
Google to the rescue. I keep my personal calendar in my Gmail account and I sync that to my iPod over the air. Using Google Calendar sync, I can publish my Outlook calendar from work to my Gmail account so I have all my appointments in one spot.
This little app runs in your system tray and pushes your calendar items to your Google calendar on a scheduled basis. This way, my work appointments are in Outlook and my personal appointments aren’t.
Related Links:
Related articles by Zemanta
- Free Online Calendar: Google Calendar vs Yahoo Calendar Review (taragana.com)
- How to Fix the iPad's Google Calendar Sync Limitation [Syncing] (lifehacker.com)
Friday, June 4, 2010
Media: You’re not the client, you’re the product…
Image via Wikipedia
I had a conversation with my wife the other day about the fact that she had recently renewed her subscription to one of the magazines that stack up in our bathroom. What was interesting was that she found that she could go on-line and read the exact same content without paying anything for it. She looked at it and wondered how the magazine could afford to do this…
The answer is simple in my mind…you (the reader) aren’t the client…the subscription fee is something you pay enable the publisher to produce the medium so that they can send you all those ads. The content around the ads…well, that’s the fertilizer for the garden (yes, the reader is the garden) The guys that pay for those ads…that’s the client. Just think, my cost to distribute over the internet is very small, I can now send you ads ALL THE TIME, think of how much I can sell that for to my client.
Makes me think that the message is the medium…not the other way around.
Related articles by Zemanta
- Will we pay more for magazines on the iPad? (tuaw.com)
- Magazines to Sell Subscriptions within Facebook News Feeds (marketingvox.com)
- Digital subscriptions also part of mag circulation figures: ABC (newstatesman.com)

![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_c.png?x-id=39692e7b-6fb5-425f-9bdc-7418a40765a6)