tech: software development principles

After working on a project for a while with Agile and analyzing why some things went wrong, I came up with the following guidelines for our team. I printed them out and posted it on my cube wall so I would see it multiple times daily. I see these as supplements to or applications of the Agile principles. I don’t think these are unique to our project, so I’ll share them with anyone who can get value from them. Here is my list:

Do the right thing, even when it takes more time than the easy thing. In the best case, not doing the right thing creates debt. It is better to do a few things well than a lot of things poorly.

Obey the model. Perfectly. Models exist to provide rules of operation. Where rules exist, assumptions get made. When the model is deviated from, even in small amounts, assumptions get broken, unexpected behavior occurs, and complexity ensues.

Always keep it simple. Complexity is our #1 enemy. We must be diligently fighting this enemy wherever it silently creeps in. It is much easier to achieve the *-abilities when the thing is simple.

Prioritize. And revisit the priorities. Start with the understanding that you can’t complete everything. Work on the most important things first. Front-load the risky items. Priorities will help you decide what to leave undone. Revisit the priorities periodically to check if they need to be adjusted, especially due to new information.

Make the best customer experience. Don’t trade “what is best for the customer” with “what is easy for us”.

Think hard. And ask for advice. Challenge yourself to come up with a better plan, even after you’ve come up with a good plan. Benefit from the knowledge and diversity of those around you. There is value in personal interactions.

[Update 12 Dec 2014:] Any task which is more than trivially repeated, especially if accuracy is important, and can be reasonably automated, must be automated. The only way to scale without a huge increase in human resource cost and human errors is to automate. This also frees you up from the mundane to focus on high-value items. In the long run, the investment will not only be worth it, it will be necessary.

[Update 15 Dec 2014:] Break up the story into bite-size pieces. If the size of the story is too big, you won’t get it done, and it will just keep rolling over iterations. The way to eat an elephant is one bite at a time.

tech tips marcelk 03 Jul 2013 No Comments

tech: Apple’s UDID ban and Cordova

Recently Apple came out with a news article saying that starting 01 May 2013 they will no longer approve apps for the App Store that access the device’s UDID. So the question immediately follows for app developers that use Cordova, is that with Cordova’s device.uuid value, it looks suspiciously like that value is being generated from the now banned UDID, which will keep their app from getting approved by Apple. Is this the case or not?

The long answer is that it used to. Up until Cordova 1.7, when running on iOS, the device.uuid value was the UDID. So if you are using Cordova 1.6 or older, then you are affected. But in Cordova 1.7 the computation for the device.uuid value was changed: basically at that point instead of using the [UIDevice uniqueIdentifier] value, it switched to using the filesystem path to the resource bundle. Near the end of that filesystem path is a nice GUID (not UDID) which is specific to the app on that device. It’s not the UDID. Then in Cordova 1.9, it changed again. If there is an [NSUserDefaults standardUserDefaults] value for the key “CDVUUID” that was previously created, it will use that. If a value for that key doesn’t exist, it will create one, store it in standardUserDefaults, and use it going forward.

There is some good reading material in the Jira ticket.

If you are still are in need of a device-specific identifier instead of the one that Cordova self-manufactures, Shaz has done a good job explaining some of the alternatives in his forum post.

tech tips marcelk 26 Mar 2013 2 Comments

life: Blockbuster video on-demand

Back in the day, there was a Blockbuster store right down the street from my house. My family would go in on the weekends and pick on a DVD to rent. That Blockbuster store is now gone. And so are many others. Now the closest store is a 15 minute drive away. Since I’ve had Netflix, I haven’t thought about Blockbuster. And if something wasn’t available on Netflix, I’d look at Amazon streaming rentals. Literally a couple of windows away from that old Blockbuster store is a Redbox kiosk.

So when I was in the mood for a movie yesterday, I couldn’t find what I was looking for on Netflix. Or Redbox. Or Amazon. So on a whim I looked at and found their streaming rental service, Blockbuster On Demand. Instead of running a monthly subscription, it is on a per-rental basis (pay for what you use). So I can keep an account there for occasional use without hitting recurring charges. When streaming, it doesn’t play in your browser like Netflix, they have a standalone app for Mac, PC, and Android (curiously, not for iOS). I watched an old 80’s movie, so I can’t speak much to the picture quality due to the master, but it did stream flawlessly. I found a movie to watch, and nobody else had it.

So it’s worth giving Blockbuster a shot. Will this be enough to help them survive as a company? Looks like they are playing their cards right from and end user’s perspective, but it won’t be the same Blockbuster store down the street – those are likely gone forever.

cool stuff that doesn't cost much &life tips marcelk 28 Feb 2013 No Comments

tech: O’Reilly webcasts

A coworker pointed out to me today that O’Reilly media has ongoing webcasts on a number of current technical topics. After browsing through the very interesting slides for optimization of mobile web sites, I was impressed and will be going back often to see what is coming up. Nice job, Tim, you may convince me to buy some more books.

tech tips marcelk 25 Feb 2013 No Comments

life: art of manliness

Today’s society seems adrift in its definition of what it means to be a man. A good man, and one who has confidence, serves others, and grows. My hip brother-in-law got me connected to the newsletter from The Art Of Manliness. I don’t necessarily agree with absolutely everything they say, but I do like most of it. It’s got good advice for someone who is refining their character, even at an advanced age like me. ;-)

life tips marcelk 25 Feb 2013 No Comments

tech: installing Couchdb on RHEL the easy way

Thinking of installing Couchdb on Linux using the source? You’ll be at it for a while, there are lots of dependencies. And if you don’t do it right, couchdb doesn’t have great debug info that helps you find what went wrong.

If you have RHEL / CentOS / Fedora, I came across this great set of instructions that uses Fedora’s EPEL repository to make installing couchdb a simple single invocation of yum. Yup, no compilations of source, and the pre-reqs are taken care of for you. It’s definitely the way to go.

It won’t install the bleeding edge version. But for my purposes, I’m OK with that.

tech tips marcelk 22 Feb 2013 No Comments

life: a flashlight

Every person needs a good small flashlight. I used to think that a Maglite Mini was the reference. Well built, but bright? But then I found the Ultrafire WF-502B. It uses a Cree LED rated at 900 lumens, which is way brighter than anything else I’ve found. It also uses an Ultrafire 18650 battery, which is not a typical AA battery. That battery is slightly larger than an AA, but outputs 3.7 volts at 3000mAh. At Amazon I got the flashlight (no battery) for $11 and two batteries and a charger for $13. I carry it in my laptop bag. I really like the brightness, it’s amazing compared to other flashlights I’ve owned, even ones that take D cell batteries.

Disclaimer: I do own Cree stock.

life tips marcelk 17 Feb 2013 No Comments

tech: Instagram, I thought we were friends?

This analysis of the new intellectual property policy of Instagram claims that Instagram can sell your pictures without any compensation or permission from you, and they limit their liability should they disclosure your content.

Honestly, I never really got around to using Instagram. But I just deleted the app from my phone. How my intellectual property is handled matters, even if you have a cool free service.

I will be very surprised if they don’t reverse this within the next week or two.

Update on Dec 19: Instagram will be clarifying the language around some of the terms previously interpreted as onerous. So yeah, some backpedaling and a partial reversal. I’m glad there are people other than me that can read and parse these legal documents, and help me understand what they mean.

tech tips marcelk 18 Dec 2012 No Comments

tech: Google Maps is back on the iPhone

The Google Maps application has returned to the iPhone (iOS 6). It literally is new and improved. It even includes turn-by-turn navigation (includes a disclaimer that it is in beta). Yeah, this will likely replace my use of Apple Maps and Waze.

Find it in iTunes or the AppStore.

tech tips marcelk 13 Dec 2012 No Comments

tech: fascinating trends for the Internet and mobile phones

I changed positions recently at my employer, and am now working in the mobile phone software space. I’m learning a lot. But when I came across this presentation, I was wowed. It has a lot of information conveyed in a way that is easy to understand. It highlights trends on the Internet, including mobile phone usage. I definitely encourage any more-than-casual user to read this.

What really stuns me is how fast everything is changing. Not just technology, but concepts like “asset-light vs asset-heavy”. Android was unveiled only 5 years ago, and now there are ~500 million Android devices shipped. iPad growth is 3x iPhone growth. Crazy times…

Uncategorized marcelk 10 Dec 2012 No Comments

« Previous PageNext Page »