Mar 5 2012

It’s Always Your Problem

As a business, if any client has any sort of problem using your software then it’s your problem. Non technical users will have trouble using your software because of an array of issues, such as permissions, settings, configurations, other software, and external devices. No matter what, you have to make the effort to get them started using with your software or not. I’ve seen issues at different client sites because one software application required one version of Java and another required a newer version. Typically you can have multiple version of Java on a computer, but these two applications demanded that only over version exist and that it be the one they require. I’ve seen issues where end users print from an application and complain because they don’t see the document printed in their laser jet, it was printing in another printer in another floor and they didn’t know how to configure it correctly.

As a development lead, if any programmer has any sort of problem with your architecture then it’s your problem. If someone doesn’t understand an design and they have to work with it, they will make changes that can cost you in the long run. If you make a system overly complex, there will be a time that you will have to delegate that to someone else and they will not understand it as deeply as you and will make changes to fix the bug of the day, but cause another problem to be discovered later.

Whether an end user doesn’t know how to change the printer or a new developer doesn’t know how to implement your design, it’s your problem and it should be addressed with something other than blaming the confused.

Sometimes it’s because you took on the wrong client, or hired someone without the technical background, but it is still your problem. Often times, the problem is basic communication and availability of training material. Always, examine these situations and see how you can improve the process, training, and communication of your team.


Feb 18 2012

Retweet January 2012

From time to time I just blast tweets about software development, project planning, team dynamics, or whatever else comes to mind. Here is a synopsis of recent tweets and rants. If you want to follow the conversation follow me at techknow and/or juixe.

Software Development

  • Even I’m surprised to know how many people use code that I wrote and tested on a train ride to my work.
  • What will be the preferred web development platform in 2012?
  • The default should always be opt-in.
  • legislation != innovation
  • Data to the people.
  • Technology is democratizing idiocy.

Team Leadership

  • If knowledge is power, than data is the source of power.
  • If you think your business model is finished, you are finished.
  • Doers gonna do.
  • Most managers have 20% time, the time spent not looking ignorant about some aspect of technology.
  • Better than picking your battle, pick the time of the battle, better still pick the your combatant, even better still put it on pay-per-view
  • In space no one can hear you scream, in the interwebs no one will let you forget it.
  • I had a dream that I had woken up at 10am and that I was late for work, I panicked and woke up from the dream and it was only 5am.
  • I absolutely hate absolutism of any kind!
  • If you want to have your cake and eat it too it is best to bake it yourself.
  • So-so is the enemy of awesome.

Product Placement

  • I wish there was a entrepreneur version of television show Deal or No Deal.
  • Green Burrito is the worst name for a fast food fastaurant.
  • It’s clear that @Google has Facebook envy, especially with their new privacy policy.
  • I’ll never use a social networking site if it requires a government ID for me to log in.
  • How can Google claim that G+ supports pseudonyms if they may review and require government ID for you to prove that is your real pseudonym.
  • People forget that Google’s “Don’t be evil” motto is an abbreviated form of “Don’t get caught being evil.”
  • Would William Shakespeare publish his works on the Apple iBooks platform?

Question

  • What is worse than bullshit or bullballs?
  • Why do bills arrive faster than cash?
  • How do you become the thought leader on thought leadership?
  • In what food group are gummy bears in?
  • Is it really made in the USA if it’s made of Italian leather from Spanish cows?

Randumb

  • Old hippies never die, they just cut their hair, take a shower, and become The Man.
  • If it was up to the movie/music industry, all Americans would have to pay a Copyright tax off 5% across the board.
  • Only one of the infinite parallel universes will end on 2012. Which universe are you in?
  • Many people on Hoarders are not true die hard hoarders, they are lazy and messy.
  • Complaining about the use of the #FirstWorldProblems hashtag is a #FirstWorldProblem.
  • I like cats but dislike cat people.
  • Just like haters gonna hate, cheaters gonna cheat.
  • The key of love is to know when to let go.
  • Fame made me do it.
  • Haters love me.
  • The future has no past.
  • Each day you die a little.
  • I like watching the future in reverse.
  • At the Hispanic section in a Chinese store.
  • If time flies, it must have lost its luggage.

Feb 13 2012

iOS Missing Feature: Multiple Device App Management

I have over 100 iOS apps in three different devices, an iPod running running iOS 4.2, and an iPhone and iPad on iOS 5. As much as possible, I always sync all devices to my laptop so that they all have the latest updates. I know that since iOS 5, apps and songs purchased from iTunes on one device will automatically sync to other devices. That said I still find that I have sync for other reasons, to transfer photos to iPhoto and sync a large number of podcasts I listen to. And perhaps, most importantly, I’ve sync to charge my device. One issue, definitely first world problem, I have with having multiple iOS devices is managing all the apps in the different devices. If I delete on app from the iPad, it doesn’t delete it from the iPhone. If I delete it from the iTunes on my laptop and I sync with a device that contains that app, it will copy it back to iTunes.

Another big issue is that you have to configure your app pages and folders on each device. If you spend an hour organizing your apps into folders and pages in one device you have to re-do it all over again on the second device. What ends up happening is that you’ll have two devices with the same apps in different pages and folders.

What I am missing from my mobile experience is the ability to sync, not only the apps and content of apps, but the meta-data about how I organize apps between iOS devices. I want to have the choice to clone how one iOS device organizes and layouts the apps to other devices. I would also like the ability to have different app layout settings, such as have the iOS device automatically put applications into folders based on the app category or my usage of the app. And of course, I would like to have a way to delete an app from one device and have it disappear from all other devices.


Jan 23 2012

The Mobile App User Half Life

Recently at a iOS development meet up the presenters from Qubop showed a powerful slide from their presentation that quantified the mobile app user life cycle. It is estimated that on average after one day of usage, 38% of the users will stop using a mobile application. After a week, the percent of users that will still use the app drops to 50%. After 6 months, you are down to 10% of users still using your app in some capacity.

Because of the half life of mobile application users, app developers are constantly updating their mobile apps. It depends on the number of apps you have on your phone, but if I don’t get the latest apps in a weeks period I would have 15 app updates waiting for me. I update one day and the next day there is another app ready to update. Because apps are updated so often, and they require the users permission to do so, mobile app users have are developing app update fatigue.


Jan 18 2012

Create Universally Unique ID in Java

For the longest time I’ve used java.rmi.server.UID to create a unique ID in a application. We enhanced the UID class to fit our needs and to format the ID to the standard format but unfortunately we found that within a process, we were generating duplicate IDs if we created more than a certain amount. It didn’t take much to remedy the problem since Java introduced java.util.UUID in Java 1.5.

To create a universally unique ID in Java 1.5 or greater just call the static randomUUID method on the UUID class.

UUID.randomUUID().toString()

UUID has a wider range of possible values that I’m not concern of duplicate values or collisions for my application.


Jan 3 2012

Year In Review 2011

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.

Code and Design

Reviews and Rants

Retweet 2011

Year in Review