I’d like to formally announce the launch of a new podcast – Fragmented. The Fragmented Podcast is hosted by myself and Kaushik Gopal. Kaushik reached out to me earlier this year to discuss the possibility of starting a podcast around Android Development. We discussed it and we found that we had a lot of the same ideals in regards to Android Development. We clicked and we also found that our goals around the podcast and what we wanted to share with the public were very much in line. Therefore, we decided to go for it.
In Fragmented we’ll talk about Android Development, best practices, patterns, practices and we’ll have occasional Android developer on the show.
Please subscribe and let us know what you think.
This is the question I asked myself last year before I went to Google I/O 2014. I’m an independent consultant who has to foot the bill for all of these types of trips. So not only does the ticket price get you in the wallet but so does the flight, hotel, meals and time off of client work. After weighing the options, I spoke to previous attendees and figured out what they got out of the conf and I figured it was a no-brainer. Totally worth it based upon their personal feedback.
I still decided to calculate the costs. When all said and done, this conference can easily cost any consulting firm around $7,500 per person.
You might be shocked, but let’s break it down.
- Google I/O Ticket: $900
- Flight: ~$300
- Hotel in SF near Conf: ~$1200 (if you’re lucky)
- Meals/Etc: $300
- Lost Billing Time: $4800
Billing time is calculated at a very common rate of $150/hr for most consulting shops that perform quality work. Again this is a rough estimate.
With these numbers, you can ask yourself “Is going to Google I/O worth $7,500? It’s ultimately up to you to decide, but here’s what I determined …
I Came, I Saw, I Left Depressed
I know that may sound harsh, but it was exactly how I felt when I left Google I/O 2014. You may be wondering “its nearly 8 months since the conference happened, why is he bringing this up?”. Simply put – I was not sure what the network effect would be of Google I/O. The network effect does not happen overnight, it takes some time and that’s what I wanted to give it – more time.
I’ve probably written this post a few times now, each time I’ve deleted it. Yup, typed it into the editor, reviewed it, edited it, then deleted it. Today, it feels right, so I’m writing it and posting it.
On my way to Google I/O I was pumped. The only other conference I’ve been to of this magnitude was TechEd in Orlando in 2008 (I think /build is the new big one in place of TechEd, I think). When I went to TechEd I was blown away. Seeing that Google was the new hotness in the industry, I figured this con would blow TechEd out of the water. Unfortunately, that was not the case. I showed up with some teammates from MyFitnessPal and we walked to the Moscone center where the conference was. I was dumbfounded. There was a line wrapped one and half times around the building. This was the line to get into the Keynote. INTO THE KEYNOTE. It was 4-6 people wide and looked like a gigantic snake of people around the building. We got in line and waited. If it’s this popular, it’s got to be good, right?
After about 35-40 minutes of truffle shuffling around the building we got in. There were barely any seats left and the line still went around the building. Crazy. Seat nabbed, time for action to begin.
The keynote was nothing spectacular. A new OS which looked cool, Android Auto, Android TV, and Android Wear all came out of their shell in a big way, but I’ve been skeptical of all of these technologies for a bit. Not because I don’t believe in them, but because I don’t think they’ll work right now. I feel that these technologies that we have (wear, auto, tv) are all stepping stones to something bigger and better. We have to go through this phase of technology to get to the better stuff. People hate vendor lock-in and that’s exactly what Wear, Auto and TV are: Android Vendor lock-in. Don’t get me wrong, I love Android – I can’t stand using iPhones. What the developer side of me saw was cool new tech, but the realistic business side of me saw vendor lock-in and a fight for a portion of the market. I saw three new products that needed to have some major push behind them to work and I didn’t feel any of them were going to get the public relations and developer relations attention they need to succeed. In my eyes, I was looking at something that was not a huge starter for me. The one exception to that was Android TV with the ADT-1. Mixed with Chromecast I think there are a lot of opportunities to take existing tech to the next level (in some areas).
The keynote being a bust wasn’t really a concern of mine. To me, keynotes are usually huge marketing webinars, but with $1000 ticket price to watch in person. Honestly, think about that next time you’re in a big keynote (Apple, Google, Microsoft, etc) … Does this feel like a webinar? Probably. You’ll be surprised. Next up was the sessions.
I went to numerous sessions throughout the days. Covering Wear, Material Design, Async Design Patterns and so forth. All from Google employees. If I had to rate them, most of them would be 4-5 stars out of 10. Not because the presenter stunk (though there were a few of those) but because the content was so shallow that I felt like I was being shown the magic and nothing behind the curtain. I felt like some of them were mini-keynotes for niche areas of Googles product teams.
All Is Not Lost
While the sessions were a big let down I did find some amazing other areas of the conference. Usually these were on the floor. I wouldn’t call these sessions but more watch and learn labs where the presenter is talking to 10-30 people around an open podium. I got to witness how to use Dart and some advanced features of Android. How to write Go and so forth.
Another area that myself and a couple employees from MyFitnessPal took advantage of were the hands-on labs. You could pull up a chair and try out some code. I was able to learn polymer quite quickly and then if I remember correctly I did a bunch of AngularJS because it was something I had already been playing with and wanted to dive into more. The Android topics were all very shallow and didn’t go too crazy. It was all stuff that I had done before. I think those courses would have been great for a beginner though.
The most interesting area of the conference to me was the open discussion/presentations that were around entrepreneurship. Two of the best talks I heard were very short, but packed with insightful tips for those interested in building apps/companies. These two talks were my sanity savers at Google I/O. Those two talks were by Aaron Harris of YCombinator and Adora Cheung of Homejoy. These talks should have been much longer and more open. Both were packed.
As with every Google I/O goodies were to be had. I was able to make it out with the following:
- An LG G Watch MSRP: $229
- A Moto 360 Watch (later shipped to me in Aug/Sep time frame) MSRP: $249
- A Piece of Cardboard MSRP: FREE for DIY or $15 for a kit
I was also lucky enough to speak to one of the Google TV folks and asked him if I might be able to get my hands on an ADT-1. He said they were all gone but he’d take my info just in case, but he re-assurred me that I would most likely never get one. 3-4 months later a magic box shows up at my door – it’s an ADT-1. I don’t remember your name good sir, but thank you very much. I’ve been playing/testing/etc for a bit. From my research online it looks like ADT-1’s are being sold for around $350 through various channels (EBay, Craigslist, etc).
Though the Google I/O sessions were lack luster one great thing was the Google I/O party. They had great food, great drinks (lots of micro brews) and great entertainment. It was good to be with friends, meet new ones and have a good time.
The other events that made this trip better were the other parties going on in the area. Twitter’s being the first one. This was a great place to go. Lots of great people and such a cool vibe. Bit thanks to Hemal for getting us in there. We also went to the first Big Android BBQ in SF. Met some cool folks there and I’m still rocking the Phandroid pint glass that I got there to this day. There were many parties, too many to get to. That’s where it seemed like the real networking came into play.
Was It Worth $7500?
No. Not really. You can take all my goodies away and I’d still stay the same thing and I would not be upset. I feel that this conference at one time may have been a great event. Unfortunately in 2014 Google I/O turned into a marketing conference and the content was rather shallow. I hope that changes, because I love Google’s products and I like the Android platform alot. However due to what I experienced in 2014 I have no interest in attending in 2015. I look at it objectively – do I feel that am I going to get $7,500 in value out of it? Combine the learning, the networking, the goodies and the mental vacation from being away from the office and I have a quotient for me that says: Nope, doesnt work. Again, this may not be the case for you, but this is the case for me.
Over the last few years, I’ve improved my quality of life by following a few heuristics when it comes to social media and they are …
1. Kill The Negative
If what you’re about to post is negative, don’t post it. It’s that simple. I was very guilty of this for a long time. Before you hit the post/send/etc button on your social media page, ask yourself “is this post/tweet/etc negative” If there is any inkling that leans towards “yes”, don’t post it.
Posting negative content spurs the negative bull inside of you. The more you get it going, the more you think negative. Kill it immediately and you’ll notice your mood improving. Remember, negative breeds negative.
A weird side effect will occur within a week or two of following this protocol. You’ll notice how many friends/followers/etc post negative content and then you’ll notice how much that brings you down. That leads me to #2 …
2. Remove The People That Drag You Down
Have you ever read a tweet/FB post/etc and immediately you get super annoyed and irritated? I’m sure you have and I assume that we all have. It happens every single day.
From now on if I find someone who posts nothing but negative content, or acts like a troll, or simply annoys me for one reason or another I unfriend/unfollow/etc them. I don’t want to see their content as it brings me down. Life is too short to be brought down by others. I’d rather live a life where I can have a good, yet realistic outlook on life that isn’t filled with useless negativity.
Plain and simple – if they annoy you or irritate you remove them from your friends/follow list/etc. This applies to your family and close friends too. I have many close friends who I’m “friends” with on Facebook yet I unfollow all of their content in Facebook.
Tip: When you ‘unfollow’ someone on Facebook they don’t know. They still remain your friend, but you don’t get their content in your news feed. More info.
3. Don’t Feed The Trolls
While I can make sure I don’t post negative comments or have negative people in my feeds/followers list I can’t control the internet trolls. The trolls are the ones who just stir up problems for no real reason other than to get under someone’s skin. You’ll run into those folks in news site comments, social news sites, in blog comments and in articles you see posted other social networks.
Long story short – ignore them, dont reply to them. You’ll be happier if you just let it go.
I know it’s not realistic to remove all negativity from one’s life. It’s part of a cycle. For example, how can we be happy if we don’t know what sadness feels like (and vice versa). Through the last couple of years of experimentation with this practice, I have found that being able to control what I consume and what I react to helps me maintain a much happier outlook on life, in general. These simple three heuristics have improved my quality of life more than I could have imagined, I hope they do the same for you.
I challenge you to try this for one month, I’d be surprised if you didn’t feel the same way.
Unfortunately, I’ve noticed a lot of people spewing nonsense about certain technology stacks/platforms/frameworks/etc. Using a given technology or stack or language or framework/etc is up to you, but hating on any given technology (and its adopters) gets you nowhere.
Furthermore, if the ridiculed technology is in production and is making money then it’s far better than whatever is sitting in your private project repo that has not even shipped yet. That’s a fact. Even if you wrote something and it is profitable and it’s in a different language, who cares? It works, it shipped and now you’re onto the next thing. No need to ridicule anyone about how your technology is better. I tell you what – higher level CEO’s rarely care that their system is written in Rails or Python or .NET. You know what they care about? Being profitable. Keeping people employed, motivated and happy. Growing the business. That’s what they are about. Technology is a tool.
Time for a story …
About 7 years ago I was working at a small insurance company in Minnesota. The client had a large application that helped managed specialty insurance policies/claims/etc for a large non-tech industry. Long story short – the app was a disaster and was written in a language I did not care for, but I did know how to work with. In my opinion, the application was poorly architected but it worked. The first glimmer of “WTFness” I encountered was when I had to add a single item to a drop down list. This took two full days. This is unacceptable in any technology. After about a month on the project, I was ready to give up due to frustration. I could not take it anymore I provided some unsolicited advice to one of the architects on the project. I said that the system needs to be put on life support and needs to be re-written because they’re throwing money out the window on small improvements and the project will literally drag on FOREVER. A rewrite of the system or its subcomponents might be a better option. What I didn’t see coming is what hit me the hardest. When he replied, he changed my career, and in turn he also changed my life because it altered the way I approached technology problems from that day forward.
He said something very similar to this …
“Donn, this app generates over 6 million dollars a month for the company. Without this app and us improving it, none of us in these buildings would have a job. The reason we are updating this app is because it is what keeps us employed and it is what keeps the company moving forward. We don’t have time to re-write it. Without this app, we have nothing. With it, we have 6M a month. Sure it was sub-optimally designed at first, but that’s all we could do at the time given our limited resources. Now, we have money to spend on fixing it and improving it incrementally. We have money to hire smart consultants and that is the reason we can afford to have you here. We have to fix it, we have to improve it, because now, we have the money to do so. It is what it is. It may not be fun, but it has to be done.”
That conversation was very humbling and to this day it’s something that resonates with me with every technology conversation that crosses my path.
It did not matter that the app was written in a language I did not like, used patterns that were bad in practice and was difficult to update. It was profitable.
The app was written in the best way possible at the time with the best tools available to those who were knowledgeable at the time. Sure, they may have made some mistakes and did things wrong or skimped in certain areas, but at that time it didn’t matter. They were trying to make a profitable product. Now they have one and it’s making enough money to bring in the proper talent to fix these pain points.
I’ve seen this same scenario replay itself over a dozen times in the last many years (and this happens a lot at startups in the Silicon Valley), but now when I recognize it I don’t carry any sort of spite for a given technology/language/pattern/practice/etc. I realize that this product was written with a particular goal in mind with a particular budget and time frame and most likely they had limited or no budget, a very short time frame and a very small staff when the app started. I’ve also seen this same story replay itself at the enterprise scale. Just because there are 5000 people at a company doesn’t mean that areas of the company do not work in silos. When it happens we have to look at it objectively and say: “It is what it is, but now how do we improve it.”
The thing is … Times change, languages change, frameworks change, best practices change and overall – technology as a whole … changes. This is a good thing, but as professionals we have to recognize when the right time to evaluate and implement a new technology is. We should not come in and bad mouth a particular technology because we don’t like it or approve of it.
We’ve all run into it as well … for example – Perhaps a client’s system is simply too slow with PHP and MySQL and we need more scale to grow the business. Perhaps the app is written in a way we cannot horizontally scale (this happens a lot). Maybe the app is slow because there are no indexes on the MySQL database. Already implemented those indexes and the app is still slow? Already fixed all the areas you can? Then at that time it might be time to evaluate NodeJS or Go or something else. So be it. There is nothing wrong with that. Just don’t throw the baby out with the bathwater simply because the bath water is murky. Realize what you and your client have and evolve. Use the right tool for the right job.
Regardless what it is, regardless how it’s written, regardless how it’s architected, regardless how it’s built, regardless how it’s deployed …
We’re professionals and we have to objectively look at each project with a fresh perspective in order to help move the client forward in the right direction regardless of the technology at hand.
It’s hard to determine when something is worth fixing, improving and redesigning vs starting afresh. It’s hard because sometimes in language X or technology Y solving this same problem would be 10x easier. This is when most of us get easily frustrated. This is the time when we need to sit back and evaluate the situation. When I get in the weeds and start over-analyzing a project I have to remind myself of this simple principle:
If its ships and it’s profitable – then it’s important.
While this may not solve your problem, it will help reset your expectations on said technology and align your current goals to that of the business you’re helping.