Break Up With Your Codebase? Or Make it Work?

This session (at GHC15) was of immense interest to me because I have been in this situations so many times at work.

You know what I mean?

When the code base is borderline unbearable and some hard decisions have to be made that would weigh on cost and developer resources.

Anyways, the session was more of a discussion though than an expose and I will try to reproduce it here as well as I can.

One question was: How do you minimize risk when migrating to a new code version?

A great way to do that is to maintain multiple versions, and run parallel versions before migrating. This basically means running the new and old platform at the same time for a while for proper tests and checks before actually migrating your data and users to the new.

Another way to minimize risk when deciding to go with refactor or rewrite  is testing. Unit testing. Documentation of every little change/step is also very helpful.

A third helpful tip is for you to measure as much as you can. While migrating measure every thing that you can  to see that all is going well, if not, adjust. Also incremental changes help for easy roll backs if things aren’t going well.

Backups too shouldn’t be forgotten. Absolutely necessary. 

 Trisha, one of the speakers, emphasized a little more on testing. She said that it is important to make sure your current users are not adversely affected by any changes to data, and a way to ensure this is testing with production data to make sure everything is fine.

One should also keep in mind the fact that some techniques used to minimize risks can increase risks in other areas.

Then the discussion moved to how the speakers had dealt with a wrong decision to rewrite code. 

Some dealt with it by scratching the whole product itself when it turned out that the rewrite made the product more complicated and difficult for users to use, despite being a great product, that is. 

Also, If you are going to onboard customers to a new version you have to do a lot of hand holding, Support them every step of the way to help them get used to the new flow. 

On resource allocation, it was agreed that recreating a system -especially a working system- is always a huge engineering investment. It normally takes more time than was anticipated.

Sometimes recreating a platform will not even be of interest to customers, so a balance has to be stricken and things weighed appropriately before making these decisions.

On prevention, there are ways to minimize legacy Code that is not maintainable.

One way to prevent this is  by doing code reviews

Another is Pair programming, and that makes so much sense.

Also, a constant aim should be to improve your existing code,constantly ask question about things- like if is the most efficient way- and constantly assess things to know if they are optimized.Even if it’s documentation.

Sara Tansey said that she tried as much as possible not to start over if she could help it in any way. 


Lastly, Be willing to change Code. Have everyone on the team on all of the code. Let go of Code Ownership- that thing where each developer owns a section of the code and doesn’t want anyone else to work on it.

All in all, I would say I concluded that rewriting code was to be avoided in favor of refactoring when working with Legacy code that is hard to maintain. If it could be helped, that is. 🙂


Developing Market-Leading Products: Strategies and Techniques for Growth Engineering

I attended a growth engineering session featuring speakers: Helena Tan (Fitbit)  Anna Majkowska (Pinterest) June Wang (Instagram) and Karen Kim (Airbnb)

It was anchored by June Wang from Instagram and was very Interactive. The four panelists  did a marvelous expose on developing market leading products and gave us insights based on data from the companies they work in.

market2 market3

The discussion  was structured around the four stages of the growth cycle.

On User acquistion, one thing that worked well is SEO, according to Anna from Pinterest. Especially important while trying to grow internationally, where there is a lot less brand awareness/ word of mouth. Pinterest is largely image based, she said and since it is pretty challenging for search engines to interpret images, their strategy was to make more content.

Also, they paid close attention to quality and filtered content so that less than quality content didn’t get through. Another pretty good strategy employed was use of site maps. They also limited amount of content accessible by a user that was not signed up; and prompted them to sign up if they wanted to see more. They basically gave a sneak peek of value proposition.

I learned that about 70% of things you try  on growth will probably not work. You have to try a lot of things.And when you find that which works, optimize and improve it.

June Wang talked about making the sign up process seamless as a way to acquire users. She also pointed out some thing that were not so obvious that had to be done to secure users. One of which was reducing errors on sign up forms.(For example using double checks for passwords). The other was mitigating abandonment by adding a confirmation of sign out for users.

 Helena Tan talked on Personalized ads. She emphasized presenting relevant content to customers based on their behavior, information  of which is and should be tracked.

On User activation, Karen from Airbnb mentioned that a challenge is scaling. At Airbnb they try to minimize friction on web flow. They minimize difficulties in using the platform  so that they can win users’ trust. She also talked of payments. An important trend is mobile payments. They also had a lot of success with presenting users with methods of payment that was familiar to them.

On the third stage of growth which is User Retention (Keeping the romance with users alive), Helena Tam advocated personalized retargeting ads as an effective technique  It is important for an advertiser to have full picture of a customer’s behavior across different devices. That of course means that this behavior has to be tracked.

There are some tricks to bringing back users who have stopped engaging. In this, timing is really important. The sooner you can bring people back the better.According to June, Study has showed that bringing them back sooner was more effective.

The session ended with a Q & A section which was even more illuminating. I thoroughly enjoyed it and you can totally contact me for the notes if you want.

Oh and PS: I got to take a selfie with Helena. 🙂

Photo 15-10-2015, 11 37 25

Yes! …Only a few hours left till GHC15 starts.

Many hours ago, I arrived in Houston for the Grace Hopper Celebration (GHC) of women in computing 2015.

Right now, I can almost feel GHC15 on my fingertips.

In a few hours the biggest convention of women in computing will be taking place and I am going to be witnessing it live.  I feel super excited and wide awake even though I should be asleep in order to be up early.

Well, because of the overwhelming nature of activities tomorrow, I decided to make a finite prioritized list of companies’ booths to visit. When I work through my list, I will have direction -I hope- and not end up walking around the George Brown convention center confused-as I am prone to be when I don’t prioritize.

Marking out sessions to attend today is also on my to-do list before I go to bed.


See you there if you’re going to be there!




It’s Really Happening!

I’m really going to be at the Grace Hopper Celebration of Women in computing!

Okay, a little History.

Many months ago, Dayo, a friend, shared a link on facebook for the application. A little research on GHC and I enthusiastically  applied. Now, this application was for an all-expense-paid grant to attend the conference as I knew there weren’t many possibilities of my affording to go.

Boom! On June 27th I got an acceptance email. (Funny how some years ago, It would have been I got an acceptance letter!) That was the beginning.

I have never travelled out of Nigeria before so I began the process of securing a passport and a Visa.It was not the smoothest of all things to do, (I even mentally have a whole blog post lined up about my getting-an-American-Visa Experience) but eventually, I had both.

Now, it is exactly 9 days, 16 hours and 20 minutes to the conference and I can’t keep still. I am making notes about sessions and keynotes to prioritize and people/companies to meet. I am particularly interested in Data Science and Artificial Intelligence and plan to shape my experience around those areas. Software engineering is also welcome as well, of course.

I’m also a little nervous as it is a little too many first times for me. First time travelling outside Nigeria, First time in America, First time at GHC.

For a sense of belonging, I dug through twitter with the Hashtag #GHC15 for people who are going to be attending too as I personally do not know anyone that is.

Apparently, the excitement is not exclusive to me! 😀

🙂    What can I say?

Oh, and I volunteered for Blogging & Notetaking at this event. You should definitely look forward to a recap of everything I can possibly capture on this blog. Category is GHC15.

Too many thanks to my Sponsors Capital One who made this possible.

Find out more about GHC!