11 Jun 2013
I attended the Utah Software Craftsmanship meetup this last week which is a professional networking event for programmers all over Utah. The event included a book discussion and a programming challenge where we worked in pairs to develop an Angular application using test-driven development (TDD) principles. It was my first introduction to TDD so I found the concepts novel.
During the book discussion, I took away some insights about management information systems. During the hour-long programming exercise, I learned more about pair programming, Angular, and TDD than I have in the past year.
I see tremendous value in attending events where people with similar interests get together and talk about their craft. There are several other events for programmers in Utah county which I'm looking forward to checking out.
I will be attending this group's events in addition to other programmer events from now on.
11 Jun 2013
This past Friday, my project team and I held a meeting over Google Hangouts. Our objective was to quickly review the status of our project and plan the next steps. For half an hour, I spoke eye-to-eye with my team members over my iPhone and we accomplish our goal without having a commute.
I've now experienced first hand the convenience of video conferencing for team meetings. It brings the benefits associated with face-to-face meetings, without the expense in time and money of a commute. I think these should be an integral part of any team because of the value that comes from seeing group members frequently.
I have a couple of personal projects that involve coordinating with a team. It's been difficult at times to get all team members together, but I know that not meeting has cost us some valuable coordinating opportunities. From now on, I'll employ some type of regular video conferencing solution to reduce the friction for meeting.
11 Jun 2013
Here are two contradictory philosophies.
One, improve by minimizing mistakes.
Two, focus on your goal and don't be distracted by fears.
I think these concepts are contradictory, but both have value. The first philosophy, minimize mistakes, comes from the idea that in order to improve, you need to have a clear vision of some ideal outcome. From the ideal outcome, you assess your present reality and contrast the two. The act of contrasting the two makes concrete steps to improvement obvious. The value of this philosophy is in the clarity you get from contrasting two distinct ideas.
The second philosophy derives its value from eliminating distractions from your focus on an ideal outcome. It too starts with some ideal outcome you can visualize. But, you don't focus on the things that are standing in your way, you focus instead on things that seem to be moving you toward that outcome.
I'm interested in hearing opinions about the seemingly divergent philosophies. Are they truly contradictory or paradoxically related? My initial thought is that the first philosophy is ideal for the improvement of skills where the difference between a good performance and a poor performance is very clear. The second philosophy is good for more long-term and abstract goals. But, those are just initial thoughts.
I want to be more cognizant of the model I use in my personal development and come to a deeper understanding of the ideal philosophy for progress.
What do you think?
31 May 2013
This morning I helped my dad move a fence in his backyard. My parents have two dogs that are prone to wander the neighborhood. I found it ironic, however, that as we put up the fence to keep them from roaming, they sat watching us without any restraints keeping them in the yard. They had no motivation to run away while in our company. This indicated something. They have no intrinsic motivation to escape the yard, they simply are looking for some kind of engagement. If there's no one in the yard with them, they get bored and look for something more interesting to do.
These dogs and my parents are frequently in conflict. The dogs want to do something fun, my parents want them to stay in the yard. My parents have invested significant money into keeping them in which solves my parents' problem, but is there a better solution?
We can sometimes be myopic when confronted with a conflict. Generally we look for solutions to our problem, which is usually related to someone else misbehaving. If we can get out of a self-interested focus, and consider how we might be able to solve the other person's problem, it can often stop the misbehavior of the other person and indirectly solve our problem.
There are times, however, when the investment in finding a solution for someone else's problem is cost-restrictive. In the case of the dogs, for example, the cost of walking with them outside every time they get let out of the house can be more expensive than putting up a fence. Especially during winter.
In my next conflict, I'll remember this principle and consider investing in a solution that will solve someone else's problem knowing that our problems are related and the solution I want may come from the solution they're seeking.
21 May 2013
At a high level, software user interfaces should be designed with four areas in mind:
- User Input
Navigation is the attribute of a software product making its functions accessible to a user. Well-designed navigations are intuitive. Some metrics that can be used here are how many times a user backs out of a navigation choice (possibly indicating they selected the wrong option), or how long it takes them to make a navigation decision (implying something about cognitive load on a user).
The ability a user has to interact with software is its core value proposition; software derives its value from being dynamic rather than static. If it were static, it would be called graphics, not software. User input needs to be intuitive and liberal in terms of inputs, but smart enough to infer a user's intent.
Metrics related to user input can be a count of errors in user input and how the software handled it.
When a user clicks on something, the software should acknowledge the user's action. Feedback represents the software's responses to the user when the user interacts with it. Metrics here can involve qualitative evaluations done in usability tests.
The visual appeal of an interface adds to its approachability. You can measure the impact of aesthetics using survey responses. The metrics associated with aesthetics are sometimes classified as the hedonic value, or how pleasurable it is to use.
This framework is merely an unsubstantiated starting point but is useful when considering interface design. Any taxonomy will help as long as it's carefully consulted during the design process.
The usefulness of this framework or any other is determined by how well it allows quantitative analyses to set and reach goals around a product's usability. My future design projects will use elements as a standard when evaluating the user experience.
18 May 2013
Online and telephone interviews are frequently used by employers to assess a job candidate's aptitudes and personality before they invest time and money to interview a candidate in person.
My most recent online interview experience was over Skype. It was no longer than 10 minutes, and was very much like an in-person interview. My preparation would have been the same except I'd pay more attention to one additional detail: reflective surfaces in the background.
After my interview was over, I got an email from the interviewer who mentioned they could see in the reflection of the large window behind me someone else in the room. My friend was sitting next to me the whole time but I thought through the miracle of selective webcam framing, they'd be invisible to the interviewer. They weren't.
This wasn't bad, but it highlights an interesting principle: when we believe we can carefully curate what others see about us, we can easily overlook details we would otherwise tend to had we been dealing with greater transparency.
Takeaways: conduct your activities as if you could hide nothing and there will be no opportunity for duplicity. Also, prefer structures with high levels of transparency for others to reduce the propensity to conceal.
09 May 2013
The beginning of a task is often the most challenging aspect of any activity. Once a task is started, it takes less effort to continue. The difficulty is overcoming that initial inertia.
Thomas Monson, president of the 15 million-member strong Church of Jesus Christ of Latter-day Saints, said:
"Two twins stand before us, about whom we must make a choice. They are: 'Do it now' and 'Put it off.'' Remember, decision is of little account unless it is followed by action, and there is no recipe for getting things done so good as the one to start doing them."
If we acknowledge the difficulty of starting a task, and recognize that it will be easier to continue the task once engaged, we better understand the nature of procrastination and why it's important to immediately engage and ride the momentum from starting.
Start! Quit putting off work and dive in! Once you get the hardest part behind you, the rest will be easy.
We'll look at enduring, or not quitting. That's the second hardest part.