People are passing around the advice for daughters. I wrote this for my sons this morning:
1. You will be dead soon. Act like it.
2. Find a small way to be kind or helpful to someone every day.
3. Admit that you don't know something every day and then work to learn about it.
4. Tinker with stuff and try to fix things yourself.
5. Always be building.
6. Don't solve other people's problems, but support them in solving theirs.
7. Take mental health days.
8. Take care of your body. This is mostly about food.
9. Try not to stay physically stagnant for very long.
10. Seek growth through failure and celebrate that you were brave enough to fail.
11. Recover quickly when you fail.
12. After an accomplishment or success, move on quickly and don't get complacent.
13. Remember that almost no one is thinking about you, so stop worrying about what they think about you.
14. Be confident, but respectful with women. That is the most attractive thing you can do.
15. Always remember that you have brothers that will be there for you long after mom and I are gone. Be there for them.
16. Many times, optimizations come from waiting until the last responsible moment to do things.
17. Take your vacation time seriously.
18. Challenge yourself to find a life partner that challenges you.
19. Forgive immediately and sincerely. Grudges are for losers.
20. Quit setting goals. Instead, build systems that you live by every day. If the systems are working, keep going. If not adjust.
21. If you are in a rut, or stuck, just start working on something. Eventually, the work will get you out.
22. Stress kills. Learn to recognize it, acknowledge it and then push it away. Find the source of your stress and face it head on.
23. Let your emotions come out. It's ok to be happy, sad, mad, excited, scared, intimidated, proud, etc...
21. Humans are made to work. Stress and work are totally different things. Separate them and have fun in your work.
22. Your real friends are the ones that know you and all your faults and idiosyncracies and then still want to be around you. Don't put on an unauthentic show because it limits how many real friends you will find.
23. There is nothing you can buy that will make you sustainably happier.
24. Find new ways to keep falling in love with your spouse. There is nothing good that can comes from focusing on their weaknesses. Challenge yourself to recognize what is awesome about them instead every day (yes, that is a system)
25. When all else fails, talk it through with Mom or Dad.
Rants, Ravs and Reflections on 20 years of software and hardware product management and development.
Thursday, January 3, 2019
Is Xamarin The Future of Mobile for ISVs?
In 2011-2012 when we were making all the hard decisions about that architecture to use for our fledgling mobile app initiative, we tried a variety of tools to bypass having to write native versions for Androids and iOS. We kicked the tires with Titanium and actually got to a working app. BUT, it definitely was no panacea. There were stability, performance, and usability issues. So about 3 months in, we pulled the plug and made what I feel was a very brave decision.
We had some pretty audacious things we wanted to do with the user experience to make it as easy as possible on our field formen. We realized that the only way to get there was to write our apps in native Objective-C/Cocoa and Java. And even then, we were subclassing and overriding UI stuff all over the place. Here is the UI of the timecard that really won the industry over and has lead to 20,000+ construction formen moving off paper and laptops to tablets and phones:
That was 5 years ago. Since then, we have built a mountain of mobile apps for safety, job management, forms, skills, etc. Every time, we had to write each app two times. The cold hard truth is that the Android apps often lagged by 6-12 months and seldom got all of the design and feature "love" that the iOS versions got.
We even tried building a mobile web app for low level laborers and operators called the employee app. It was riddled with issues. On crappy phones, it would perform like a dog and often ran into issues with browser caching that would render the app unusable.
SO... We decided to come back and take a look at the new generation of "unification" architectures. We decided that the employee app was the perfect test bed to test the new architecture. We started with Xamarin forms and brought in a consultant fresh of a Xamarin engagement to help accelerate the project.
Xamarin forms is an interesting fit for us. First off, it is C# and since we are largely a .NET/C# shop, we have a lot of developers that can get into Visual Studio and be productive in the environment pretty quickly. The biggest learning curve is getting your head around the Forms definition language. It seems like most C# devs are picking that up in 2-3 days. So, before we even get into the details, Xamarin has a huge head start because the dev tools are already closely aligned with our developer skills.
Also, it is really nice being able to use all the .NET stuff like Entity Framework and the slew of dependency injection frameworks (I think we are going to use Unity because it is easy to tie in our of the box).
WE WENT NATIVE
We had some pretty audacious things we wanted to do with the user experience to make it as easy as possible on our field formen. We realized that the only way to get there was to write our apps in native Objective-C/Cocoa and Java. And even then, we were subclassing and overriding UI stuff all over the place. Here is the UI of the timecard that really won the industry over and has lead to 20,000+ construction formen moving off paper and laptops to tablets and phones:
That was 5 years ago. Since then, we have built a mountain of mobile apps for safety, job management, forms, skills, etc. Every time, we had to write each app two times. The cold hard truth is that the Android apps often lagged by 6-12 months and seldom got all of the design and feature "love" that the iOS versions got.
We even tried building a mobile web app for low level laborers and operators called the employee app. It was riddled with issues. On crappy phones, it would perform like a dog and often ran into issues with browser caching that would render the app unusable.
SO... We decided to come back and take a look at the new generation of "unification" architectures. We decided that the employee app was the perfect test bed to test the new architecture. We started with Xamarin forms and brought in a consultant fresh of a Xamarin engagement to help accelerate the project.
Xamarin forms is an interesting fit for us. First off, it is C# and since we are largely a .NET/C# shop, we have a lot of developers that can get into Visual Studio and be productive in the environment pretty quickly. The biggest learning curve is getting your head around the Forms definition language. It seems like most C# devs are picking that up in 2-3 days. So, before we even get into the details, Xamarin has a huge head start because the dev tools are already closely aligned with our developer skills.
Also, it is really nice being able to use all the .NET stuff like Entity Framework and the slew of dependency injection frameworks (I think we are going to use Unity because it is easy to tie in our of the box).
Responsibly Lazy Parenting?
I was asked to write about my unorthodox parenting style in response to a long series of amazing accomplishments of the three boys I fathered. To establish a little credibility, here are a few of the things these guys have done:
Boy 1: Valedictorian, Graduating with Physics + Systems Engineering + and Computer Science from Washington University, Published AI research, All State in Cross Country
Boy 2: President of student body, Captain of D6 Football Team, Accepted into the MIT mechanical engineering program
Boy 3: Straight As, Track and Football, and social skills that I could only dream of having.
Here is the video Boy 2 used to get into MIT:
When I was a new dad I was told a few key hints from some wise mentors:
Another great mentor told me that there are really only a few principles that will lead to accomplishing #3:
Those principles seem simple, but in practice, they are nearly impossible. Examples:
When you see your boy about to make a mistake like not studying enough for a test, do you hound him to study or let him fail?
When he fails, do you ground him, or just help him see how he may have just closed off certain desirable opportunities in the future?
Do you force them to play an instrument, or just leave a bunch of instruments around the house and see what they gravitate to?
Do you let them do seemingly dangerous things or try to protect them?
Do you compare the siblings, or make sure they know how they are different and why they do not need to follow their brother’s path?
When they have a setback or failure, do you focus on that, or do you find and celebrate the learnings?
The funny thing about all of this is most of the time, the best thing to do is nothing. On the surface, it may look lazy or hands off and it is. But, if you grab your bag of popcorn, watch the show and make sure to laugh and cheer a lot, you just may find that being responsibly lazy might just lead to the best possible outcome.
Boy 1: Valedictorian, Graduating with Physics + Systems Engineering + and Computer Science from Washington University, Published AI research, All State in Cross Country
Boy 2: President of student body, Captain of D6 Football Team, Accepted into the MIT mechanical engineering program
Boy 3: Straight As, Track and Football, and social skills that I could only dream of having.
Here is the video Boy 2 used to get into MIT:
When I was a new dad I was told a few key hints from some wise mentors:
- Those are not MY boys. They are just on loan for a very short period of time. Never treat them like property or possessions.
- They are not lumps of clay for me to mold. Give up any fantasy of shaping them into little versions of me.
- As a parent, I only have one job and that is to help them discover the best possible version of themselves.
Another great mentor told me that there are really only a few principles that will lead to accomplishing #3:
- Give them so much space that they know they are living for themselves and not for you.
- Create an environment where they feel the real world positive and negative consequences of their actions.
- Trust your wife’s instincts about when things are potentially going south (she will know way before you do). That is when Dad steps in to actively coach.
- When you are not sure what to do, just love and encourage them.
Those principles seem simple, but in practice, they are nearly impossible. Examples:
When you see your boy about to make a mistake like not studying enough for a test, do you hound him to study or let him fail?
When he fails, do you ground him, or just help him see how he may have just closed off certain desirable opportunities in the future?
Do you force them to play an instrument, or just leave a bunch of instruments around the house and see what they gravitate to?
Do you let them do seemingly dangerous things or try to protect them?
Do you compare the siblings, or make sure they know how they are different and why they do not need to follow their brother’s path?
When they have a setback or failure, do you focus on that, or do you find and celebrate the learnings?
The funny thing about all of this is most of the time, the best thing to do is nothing. On the surface, it may look lazy or hands off and it is. But, if you grab your bag of popcorn, watch the show and make sure to laugh and cheer a lot, you just may find that being responsibly lazy might just lead to the best possible outcome.
Subscribe to:
Posts (Atom)