Connascence What Now?

June 9, 2012 by · Leave a Comment 

I attended the Philly ETE event recently (actually a few months ago) and had the email that they had posted videos of many of the sessions on their site.  Although we’ve been head down on 7 Regent Lane lately and it’s been quiet here, this is one of my favorites.  Aaron “Tenderlove” Patterson presented as well but unfortunately they didn’t post that one.  Enjoy.

ETE 2012 – Jim Weirich – Connascence Examined from Chariot Solutions on Vimeo.

Cool Web Site – LYRICSnMUSIC

December 6, 2011 by · Leave a Comment 

I recently got a ping from Bobby Stark letting me know that he’d launched LYRICSnMUSIC, a sort of one-stop-shop for people searching for lyrics, music, artist and tour information, etc.  Never wanting to pass by an opportunity to try and break something, I checked it out.  The shot above was a search I did by words from a relatively obscure Donnie Iris song.  How often do you have lyrics etched into your brain, but can’t for the life of you recall the artist or song title?  Well, if you do give this site a shot and you’ll probably find what you’re looking for.

The site itself has a pretty streamlined, industrial looking design and is very functional and easy to figure out.

Since I’m addicted to the various blogs and podcasts where startup founders and entrepreneurs are interviewed, I thought I’d see if Bobby would be willing to bite and he agreed to answer a few questions on the genesis and future of LYRICSnMUSIC.  So here’s our first ever web entrepreneur interview with Bobby (Bobby’s responses in a lovely blue color).

Interview with Bobby Stark – Founder of LYRICSnMUSIC

When did you launch the site?

We launched in open beta June 15th, 2011.

From idea to launch how long did it take to get the site up and running?

It took a little over 7 months.

What need did you see that LYRICSnMUSIC fulfills?

Since LYRICSnMUSIC has Song Lyrics, YouTube Videos, Images, Wikipedia entry, Tour Dates, iTunes/Amazon MP3 and even Guitar Tabs on one page, we eliminate the need of going to 3 or 4 different websites to find the info of a song/artist you like.

Did you get funding to build it or are you bootstrapping?

We are bootstrapping our project.  Getting funding can be great but sometimes investors want to include things that don’t really make any sense. “Too many cooks spoil the soup.”

How long did it take you to build up the site?

The initial coding took a little over 5 months, but we are still improving the site. So it’s kind of an ongoing project.

Are the lyrics entirely community contributed?

It’s a combination of community and lyrics directly from the record companies.

If so was it tough building a large enough community to get critical mass of lyrics?  I tried a few obscure songs and, sure enough, they were there.

Glad you found the song you where looking for. We have over 2 million song lyrics and that number literally grows everyday.

How is the site monetized?  It looks like it may be a combination of affiliate links for music purchases and advertising.  If that’s the case, where do you get the lion’s share of revenue?

The lion’s share of the revenue comes from banner advertising.  The music purchase links are more of a convenience for visitors.

How have you been driving traffic to the site?

It’s a combination of social media, search engines and positive reviews from bloggers.

You make it clear that the lyrics are 100% legit and the artists are compensated.  What kind of issues with licensing or IP did you encounter?

Getting legal lyrics can be a bit of a minefield. So we partnered with a lyric aggregator that takes care of all artist compensation and legal record keeping. It’s been a great partnership for us, because it allows us to focus on the user experience instead of dealing with lawyers.

How has the reception been since you launched?

It’s been great! We have had visitors from nearly every country on the planet and our traffic continues to grow.

What are your hopes for the future of LYRICSnMUSIC?

We have some BIG plans for the future, but we are still working on the on it, so I’d rather not say right now.

Now to the more techie questions…

I did a search for “the night winds stir the old ghosts” and the song I was thinking of was the first hit.  Very impressive as it was a bit obscure.  What do you use to power your search?  Something like SOLR/Lucene?

It’s an algorithm that is continually being improved on. We should have an update in the next 30 days, so the search results should get even better.

What kind of datastore are you using?

Right now it’s Amazon S3.

What is the site built on (PHP, Django, Rails, .NET, etc)?

We use Ruby on Rails and really like the speed of how we can get new features online.

Did you build it yourself or outsource/offshore?

We have a team that we have been working with for 5 years.

Any thoughts on a mobile app to complement the web site?

Yes, that is one of the things we will be working on and hope to have it live in the next few months.

What do you host on?  Dedicated servers, VPS, cloud services or all of the above?

Heroku cloud services.

Have you hit any scalability issues?

Not yet (knock on wood). Scalability is one of the things we love about cloud services. It’s really easy to add more resources when you start hitting your current limit.

 

 

 

 

Scale Fail?

April 18, 2011 by · Leave a Comment 

A colleague shared this one with me and it cracked me up, so I couldn’t resist posting it. I have a foot in both worlds. My day job involves systems with millions of clients and zero tolerance for downtime. Our venture does Web 2.0ish stuff using Rails. You hear a lot about MVC (minimum viable product) these days, and for kiwiluv products, which are as yet unproven, we adhere to that philosophy. Yes, I know full well that we’ll have to pump some more work into it to get it to scale, but the point is to see if you get traction in order to figure out if that next wave of investment is worth it.

On the other hand, if you have a system where you know full well it’s got to handle gazillions of users with no downtime, it’s irresponsible not to sharpen your pencils and use a little piece of your brain to make sure the wheels aren’t going to come flying off.

Either that or find a nice landing page with a cute “Fail Whale”esque picture for people to joke about when your servers fly apart at the seams.

By the way, if you’re concerned about this kind of thing you should be reading the High Scalability blog.  There’s good stuff there so check it out.

Dolls and SOA

March 17, 2011 by · Leave a Comment 

This was actually coarse material for an Enterprise Architecture course I’m taking. Actually the only one I will probably remember.

Rubular – Cool (but Scary) Website for Regular Expression Cowards

December 24, 2010 by · Leave a Comment 

If you live in fear of regular expressions, as I do, I’m afraid there is no cure.  However, there is some help.  Rubular lets you check your regex’s as you construct them and has a handy reference guide as well so definitely check it out if you need to use this strong magic in your applications.

However, if “\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z” starts to make sense to you, you should lay off the hallucinogenic drugs and seek help immediately.

The Pomodoro Technique

November 9, 2010 by · Leave a Comment 

I got the rare opportunity to ditch work for a few days and catch up on some of our kiwiluv projects.  A lot of the freelance software developers I follow on blogs and podcasts use the Pomodoro Technique to stay focused on their work.  I am easily distracted by blinking lights, shiny beads, incoming emails, stuff outside my window (SQUIRREL!), etc. while working.  Right now, for example, I am fighting with Pandora trying to figure out why it is playing “Funkify Your Life” by The Meters on my Tibetian Serenity Station (seriously…WTF?).

In any case, I thought I would use these days to put the Pomodoro Technique to the test.

What is the Pomodoro Technique and how many tomatoes will you need?

The Pomodoro Technique was created by Francesco Cirillo as a way to help him stay focused while in school.  I wonder if my grades would have been better if I had actually made an effort to work while I was there.  Oh well…the parts I can remember were fun.  In Francesco’s case, he’s turned this simple technique into what appears to be a successful business so I’m sure he’s doing well despite fighting with attention span issues in school.

What You Need

  1. A kitchen timer.  The technique was named after the tomato shaped one the creator used.
  2. A notepad and pencil.

How It Works

Well, you start by making a list of stuff you need to do.  Then you work on things 25 minutes at a time with about a 10 minute break in between these ‘pomodoros’.  After four pomodoros, take a longer break (25-40 minutes).  Then lather, rinse, repeat…

Oh, one other thing, if you are interrupted during a pomodoro, you only have about 15 seconds to get back on track.  If you don’t the pomodoro is null and void.  No 1/2 or 1/4 pomodoro credit.  Just start over.

There’s a bit more to it than that and you can get the full scoop plus a free cheat sheet at www.pomodorotechnique.com.  There’s some notation rules, etc. that I haven’t actually followed as well as some planning guidelines that I also did my own way, but I certainly did take the core technique out for a nice test drive.

My Experience

Wow…it really worked.  I started in the afternoon, churned out four pomodoros on a new project.  Continued the next morning culminating with this blog post.  The discipline to sit and focus on a task for 25 solid minutes (which fly by in no-time) is a huge productivity boost.  I had to shut down TweetDeck and my email notifications.  I was doing Android work so I had to keep my phone nearby but was able to resist grabbing it every time an email or TXT message floated in.

The Fruits of my Pomodoro

I thought it might be fun to do an entire project from scratch using the technique, so I decided to do a Pomodoro Timer for Android.  Yep, there are a few of these out there, but this one was done with the kiwiluv core philosophies…simple, focused, quirky and fun.  Once I get done testing it I’ll throw it on the app store…and we certainly won’t charge much, if anything for it.

I threw the features I wanted into the backlog of our project management tool and ground it out in about 8 pomodoros over two days…

Keep an eye out for it!

The Verdict

Well, I’m sold.  Some strange things to get used to.  The creator feels that audible ticking is important, I’m guessing to re-train your brain to relax in the face of deadline and time pressure.  That may drive you insane.  Most timer apps, like pomodoro, which I used on my mac for this exercise, allows you to mute the sounds.

Like all techniques, I’d encourage you to adapt it to your specific work habits.  The key is the 25 minutes of complete task focus interspersed with mandatory breaks.  We use Pivotal Tracker for managing our backlogs, so I did not use the paper based to-do list.  To each his own, but this technique was a big help to my productivity.

Cool Tutorial Concept – aRailsDemo

October 15, 2010 by · Leave a Comment 

This is a cool idea.  I heard about this on the Ruby5 podcast.  Someone (who is apparently too modest to advertise his secret identity on the site) created a RoR site which contains detailed and well written posts on how he created the site in Rails 3.  I learn by example and love things that walk me through how to put things together.  This is a cool and creative idea and would be a big help to someone trying to figure out how to build something in Rails.  The site is aRailsDemo and well worth a look.

SCRUM…Are you an Agile Poser?

May 1, 2010 by · Leave a Comment 

I’ve made some interesting observations recently.  Many “agile” development organizations aren’t quite as agile as they think they are.  SCRUM is undoubtedly the most popular agile project management technique in use today.  My team at my day job does it well.  My partner and I at Kiwiluv do it poorly because we have full time jobs and work on this in evenings and weekends which I consider to be a good excuse.  I was talking to a colleague last week who just started at a major US corporation and was showing her how to use a SCRUM tool (Rally in this case) because it just so happened my company uses the same tool.  In chatting, it was clear that SCRUM was not yet institutionalized in her organization.  Thinking about it, it’s hit or miss at mine too.

At her organization and the less SCRUMesque projects in mine, I noticed some common traits.  I really believe that there are some symptoms that you can use to identify whether you’re an Agile Poser or a real Agile organization.  Here’s some warning signs:

  1. You don’t have a daily SCRUM because “you really don’t need to meet that often.” Bull.  SCRUM teams are meant to be self directed and the daily SCRUM is where the team and Scrummaster sense disturbances in the force or identify outright blockers to the teams forward progress.  The sprints are short and the daily SCRUM is the forum where the team holds one another accountable for getting tasks done.  How many weekly meetings have you attended where “action items” linger on for weeks and weeks.  At the daily SCRUM everyone states what they did yesterday, what they did today and if there are blockers…end of story.  That discipline is critical.
  2. The manager makes assignments.  Big fail here too.  Again, in SCRUM it’s a self directed team.  The manager’s responsibilty is to create an environment where SCRUM is effective.  Specifically, the team needs to feel empowered to work the sprint backlog as they see fit.  Also, once the sprint starts, it is sacred and you don’t break sprint just because the manager’s higher up had a mood swing and wants to change priorities immediately.  Yep, happens all the time but the team needs to establish a rythm, have confidence that they can execute their sprint as they see fit, and not live in fear of constant managerial direction changes.
  3. You have more than one product owner or don’t engage with the one you do have.  My colleague’s situation was that of a traditional organization making a foray into Agile methodologies.  Good for them, but change is painful.  While we were reviewing the backlog, it surfaced that her “SCRUM team” was serving many masters and had to divide their attention between multiple stakeholders.  One team, working on one product, with one major external stakeholder to be the product owner is more effective.
  4. You don’t have a release and sprint planning meeting with the team.  If you’re a manager and you sit in meetings listening to requirements from other organizations from your product, then descend from on high with premade commitments for your team, you’re doomed.  If the team doesn’t have skin in the game by being participants when commitments are made, they’ll just whine about unreasonable demands from management being worked under the charade of SCRUM.  However, if they’re sitting there in the planning meeting and commit to the deliveries for the overall release or just the next sprint the level of motivation will be much higher and peer pressure will drive behavior in support of the commitments.
  5. You have project managers that don’t get or believe in SCRUM.  There is a wealth of information for Project Management Professionals (PMPs…you know…the guys that refer to people as “resources”) on how to integrate SCRUM into an overall larger project management effort.  They are not incompatible, but SCRUM, despite it’s popularity, is not yet standard fair for the training your PMP’s go through.  Having your team happily doing SCRUM and effectively working with a product owner, but having your project manager living in the word of Microsoft Project will end in tears.  The project isn’t the Gantt chart hanging on the wall…it’s the interaction and work getting done at the SCRUM board and in your team’s cubes or offices.
  6. You don’t have a SCRUM board.  This is a corollary to #1.  Most SCRUM tools provide a virtual scrum board, but until the human race evolves for a few more thousand years and we’re all disembodied brains in a jar, personal presence and interaction trumps technology any day.

I’m sure there’s more, but if you see a few of these occurring in your organization, ask yourself if you’re really Agile, or if you’re just using your SCRUM tool as an expensive to-do list.

I’m a “Certified Scrummaster” and am therefore well qualified to comment on this.  Actually, just kidding…the “Certified Scrummaster” bar is very low.  You just have to attend a two-day class and print your certificate.  There’s efforts in play to have an exam and a more traditional certification process which I don’t have much use for.  The reason that the bar is low, is that SCRUM is very simple.  But as simple as it is there’s some rules that you can’t break:

  1. The three key ceremonies need to be followed.  The release planning meeting, sprint planning meeting and daily SCRUM…conducted with monotonous repetition are the only way to drive home that yes…you’re a SCRUM team and this is how we do things.  Just pretend you’re a software development martial arts master and these are your Kata.
  2. The team needs to be self directed.  If you’re a traditional command and control manager just give it up.  If you don’t empower and trust your team you’re doing something wrong anyway.
  3. The product owner needs to be involved.  When you’re team finishes a backlog story, he or she is the one to declare “doneness.”  Every software professional on the planet has experienced development efforts that are “done” but were never quite as done as believed.
  4. The sprint is sacred.  Yep, angry customers call and senior management changes priorities often.  Grow a backbone…that’s why the sprints are so short.  When the team resurfaces after the current sprint, that’s the time to discuss changes in direction and replan….that’s the whole point.  SCRUM is about being responsive to changes in direction, not resisting them.  If you stroll in 4 days into the sprint and issue mandates from your higher ups, you’re not doing SCRUM and your team will know it.

Most importantly, if you can’t get your senior management, project managers, product managers, etc. to buy in to SCRUM or any other Agile process…just don’t do it.  Methodologies like SCRUM create fanboys who claim it’s the only good answer, but there’s no silver bullet.  Maybe Agile development is just not for you.  If so, accept it and move on…there’s too much work to be done to divert energy into force-fitting a methodology that’s en vogue even if it doesn’t fit your needs or culture.  Just move on.

The simplest thing that could possibly work…

April 2, 2010 by · Leave a Comment 

This is one of the battle cries of the agile software movement.  Agile is so prolific these days that I feel we’re loosing sight of the basics sometimes.  My team at work just did a trial of a popular SCRUM tool and when faced with the prospect of migrating back to the corporate standard, they elected to stay with post-it’s, index cards and spreadsheets to manage their project.  It’s working well.

But I digress.  While implementing the Android application portion of our product, I find myself falling into a common trap for technical types.  Specifically, as I’m working on a feature, class, view or some other major component of the application I keep trying to make it feature complete and fully bulletproof the first time.  I know my partner falls into the same trap, but more focused on the aesthetics of the web interface.  These things are critically important, but not now.  We’re learning new technologies and it’s better to get these things out with limited functionality than to keep them in the incubator forever.  I’ve probably lost a good day or two because I wanted our corporate logo displayed on a silly splash screen.  What I should have been doing is focusing on the authentication logic and getting the application so it can login and exchange data with our Rails application.

So, in terms of login to our rails app, what is the simplest thing that could possibly work?

  1. A text field for name and password and a login button.
  2. An HTTP post to the Rails app with that data in cleartext.
  3. Parsing the response for success or failure.

Is that industrial strength?  Absolutely not!  But it is enough to get something deployed and working.  You can add MD5 hashing, masking of the password fields, secure authentication, cookies, etc. later.  So, as you do your development make sure you decompose things into the simplest thing that could possibly work.  In this example, start with dumb unencrypted login with a user name and password.  Next iteration, add masking of the password.  Then, hash the password for security.  Next add protection for cross site scripting vulnerabilities.  Before you know it, you’re there…

A journey of a thousand miles begins with a single step.  Lao-tzu 604-531 BC.  I guess he was an agile software developer.

The Business is Pleasure blog has some more thoughts on keeping it simple…

http://bip.softwarejewel.com/business/losing-sight-of-the-basics-1999/

Rails Development Words of Caution

March 30, 2010 by · Leave a Comment 

If you look at some of my earlier posts, you’ll see that we choose Rails because that’s what the “Cool Kids” were using.  We hit the dark side of that today.  My partner Karen was trying to use ActionMailer to implement a registration confirmation as I discuss on this post.  I gave her an example implementation which I had done with a later version of Rails.  When she tried to use it, we had to work through at least ten errors related to changes to the framework from 2.2.2 to 2.3.5.  Our last problem revealed (in furious googling) that the problem was well known and a fix promised in 2.3.6.

We still like Rails, but I wanted to caution everyone doing rails development to pick their version and follow the upgrade trail cautiously.  If, like us, muliple developers are involved definitely make sure you’re synced up with regard to the version you’re using.

Yes, Rails Rocks, but like all cool new technologies make sure you rapid evolution into consideration when building your products on these new and shiny tools!

Next Page »