Don’t Yolo Hard Conversations

On the list of leadership merit badges, “Successfully deliver hard news” is one the hardest badges to acquire. It’s not just that you have news, it’s hard news. It’s an honest something the human sitting across from you does not want to hear. Not only do you need to deliver it, but you need to successfully deliver it.

There are endless ways to screw this up. This is why it’s a merit badge. Once you learn how to successfully deliver hard news, you will never forget. The experience is hard-earned.

Bad news, I’m not going to give you a complete strategy, these are simple tips. Starting with:

  • Write down what you are going to say. Don’t yolo hard conversations.
  • Share that writing with another neutral human who you know will give you critical feedback. They will find flaws and optimizations that you have not seen.
  • Sleep on the conversation that you’ve written down and vetted with the neutral humans. Your background processing skills are strong.

The final tip is the most important. You can fail to write down your thoughts, you can not share your thoughts with a neutral human, and you can fully yolo the delivery, but the final bullet you skipped is my simple tip: let them sleep on it.

The moment that a human being hears hard news they stop listening. It’s a normal and healthy fight or flight instinct. Right or wrong, the human on the receiving end of this news feels attacked and when you’re attacked you run because who wants to be attacked?

They hear you, they are recording the conversation, but they are not listening because their mind is telling them to run for it. Their first reaction, the first words tell you, are not how they feel. They need to let their guard down, and that only comes with time.

Successfully delivering hard news means honestly and compassionately delivering the news. It’s quietly listening to their reaction, hearing each word, but understanding what they feel won’t be known until they’ve taking their time to hear you.

Powered by WPeMatico

Udgivet i Management

Mobile Center Webinar Recordings | Mobile Center Analytics and Getting More from App Testing

If you would like to sign up for the remaining webinar in the Mobile Center series, you may do so here.

Mobile Center Analytics | Insights Your Users Won’t Tell You

 
Ela Malani and Karl Piteira show you how to win and keep mobile users’ loyalty by constantly improving your apps and shipping new features they’ll love.

Mobile Center Crashes and Analytics gives you the immediate crash reports and user behavior data you need to understand user response to features, triage production issues, and prioritize your next sprint.

In this webinar recording, you’ll learn how to:

  • Easily instrument your Android and iOS apps with the Mobile Center SDK
  • View real-time analytics and crash reports
  • Analyze user behavior to identify trends and ways to improve your users’ experience
  • Quickly identify and fix crashes before they impact your users

 

Get More from Your App Testing with Mobile Center

 
Justin Raczak explains why automated mobile testing apps is critical, but only one part of the mobile quality equation. To exceed mobile users’ expectations and win their loyalty, you need to test on the devices they’re using, rather than just a few popular models.

Mobile Center gives you automated testing at scale, allowing you to test on a variety of real devices and 400+ operating system configurations, identify and fix any issues quickly, and ship high quality apps with confidence.

During this recording, you’ll learn how to:

  • Connect your apps to Mobile Center
  • Instrument Espresso tests
  • Kick off test runs and view results
  • Use robust reporting to debug failed tests

 

If you would like to sign up for the remaining webinar in the Mobile Center series, you may do so here.

The post Mobile Center Webinar Recordings | Mobile Center Analytics and Getting More from App Testing appeared first on Xamarin Blog.

Powered by WPeMatico

Udgivet i Developers, Xamarin Platform

Web Excursions for February 22, 2017

This week’s web excursions brought to you in partnership with Udemy. Learn Anything.

Reverb for Amazon Alexa
Access Alexa from your Mac (iOS version available as well. I just started playing with this and I’m not even very familiar with Alexa yet and I’m really impressed.
The Petter App – Keep track of your pet’s life.
An iOS app that helps organize info about your pets, including contact info and records for vets, groomers, and pet sitters, plus notes, todo lists, and reminders synced to your calendar. Share the info easily with anyone who needs to know.
Quick Peek
I love this idea (tried to monkeywrench a similar system in Evernote years ago). Order QR-style stickers to put on boxes, photograph the contents of a box, then use the iOS app to associate the inventory in a searchable database.
Songlink – Share music with everyone
Instead of sharing a Spotify, Apple Music, YouTube, Google Music, or Deezer link, share the song with all the links and let people choose their preferred playback service.
Data Selfie
A Chrome extension that tracks you while you are on Facebook to show you your own data traces and reveal how machine learning algorithms use your data to gain insights about your personality.

Oh, and hey, don’t forget to order one of my latest T-shirts: **BOLD**

Udemy Banner


BrettTerpstra.com is supported by readers like you. Click here if you’d like to help out.

Find Brett on Twitter and App.net.

Powered by WPeMatico

Udgivet i Ikke kategoriseret

Building Your First macOS App

When developers think of building Xamarin apps for Apple devices, they often think of iPhone and iPad, but you can also build apps for macOS. While not exactly the same as its iOS counterpart, there are many transferable skills for iOS developers looking to build apps for macOS. With Xamarin.Mac, developers can create great macOS apps with the simplicity of C#.

In this blog post, you’ll learn how to create your first macOS app in C#: a Pomodoro timer to keep us productive.

Getting Started

Building apps for macOS starts just like any other application, with File > New. Note that you’ll need to have Xamarin.Mac installed on your macOS device; building macOS apps from Visual Studio is unsupported.

File > New Solution > Mac > App > Cocoa App

Next we need to enter the app name; we’ll call this “Pomodoro.”

The Dock Item and Extension options are customizable, but for now we’ll leave them unchecked and with the blank / default values. We’ll visit these in a later blog post.

We now have our basic macOS app! You can test it by running the app from the top-left of Xamarin Studio. Unlike Xamarin.iOS, there is no need to choose a target to run the app on, since the app will run right on your Mac. You should see something like this:

Building a User Interface

Now that we have a basic macOS app, it’s time to build out our user interface; a blank app isn’t very useful!

Xamarin.Mac uses Xcode’s Interface Builder to develop UIs. Just like iOS, macOS interfaces are built using storyboards. Storyboard support on macOS was introduced in 10.10 (Yosemite). For the sake of simplicity, we’ll concentrate on macOS 10.10 and higher. If your application needs to support 10.9 or lower, you’ll need to use .xib files, which you can read more about in our working with .xib files guide.

In the solution explorer, double-click Main.storyboard. Xcode will open automatically with a “stub” project and your storyboard will open in Interface Builder.

The first thing we see is our blank UI. Notice that there’s a menu bar within the storyboard; you can use this to customize the menu bar for your app. For now, let’s leave the menu as it is.

Adding objects to our interface is somewhat similar to using the iOS designer in Xamarin Studio. On the bottom-right of the Interface Builder window, you’ll see the toolbox. You can view the available objects by selecting the icon “Show the Object library,” as shown here:

Screen Shot 2017-02-21 at 19.14.15

We can simply drag and drop the views on the view controller. To start with, let’s make an interface like the one below, which consists of a label and a button.

First, find the Label object and then drag and drop the object into our View Controller.

We can do the same for the Push Button.



To edit the label and title for the button, you can either double-click to edit the text, or, in the Attributes Inspector in the top right, find the “Title” and edit it there.

Now that we have our user interface created, it’s time to configure actions and outlets to work with the user interface in code. To do this, we need switch to the Assistant Editor, so at the top right of the main Xcode window, click the icon that looks like two overlapping circles. This should automatically bring up a file called “ViewController.h”. If it doesn’t, then, at the top of the new editor pane, click on “Automatic” and choose Manual > Pomodoro > Pomodoro > ViewController.h. Xcode should now look like this:

Setting up actions and outlets in the header file (the .h file) will allow us to reference them from our Xamarin project. To run code when the button is clicked, we need to set up an action and to reference the label from our Xamarin project, we need to set up an outlet.

Hold down the Control key, then click and drag from the button to the line beneath the final closing brace in the right editor. In the pop-up window, change the Connection to Outlet and the name to TimerLabel and hit connect:

This will automatically populate the header file with the correct definition for the outlet:

@property (nonatomic, retain) IBOutlet NSTextField *TimerLabel;

Repeat the same steps for the button, this time naming it StartStopButton.

Now we need to add the action for the button. Hold down the Control key, then click and drag as before. This time, in the pop-up window, change the Connection to Action and the name to StartStopButtonClicked and hit connect:

Once complete, you should have the following definitions:

@property (nonatomic, retain) IBOutlet NSButton *StartStopButton;
@property (nonatomic, retain) IBOutlet NSTextField *TimerLabel;
- (IBAction)StartStopButtonClicked:(id)sender;

For now, that’s all we need to do with Xcode, so you can switch back to Xamarin Studio and the changes will be synced automatically.

Adding Behavior to the UI

Back in Xamarin Studio, open the ViewController.cs file. We can now add the code for the button we set up in Xcode.

Add the following properties:

Timer MainTimer;
int TimeLeft = 1500; // 1500 seconds in 25 minutes

Then, in ViewDidLoad add the following code:

// Fire the timer once a second
MainTimer = new Timer(1000);
MainTimer.Elapsed += (sender, e) => {
    TimeLeft--;
    // Format the remaining time nicely for the label
    TimeSpan time = TimeSpan.FromSeconds(TimeLeft);
    string timeString = time.ToString(@"mm:ss");
    InvokeOnMainThread(() => {
        //We want to interact with the UI from a different thread,
        // so we must invoke this change on the main thread
        TimerLabel.StringValue = timeString;
    });
    // If 25 minutes have passed
    if (TimeLeft == 0)
    {
        // Stop the timer and reset
        MainTimer.Stop();
        TimeLeft = 1500;
        InvokeOnMainThread(() => {
            // Reset the UI
            TimerLabel.StringValue = "25:00";
            StartStopButton.Title = "Start";
            NSAlert alert = new NSAlert();
            // Set the style and message text
            alert.AlertStyle = NSAlertStyle.Informational;
            alert.MessageText = "25 Minutes elapsed! Take a 5 minute break.";
            // Display the NSAlert from the current view
            alert.BeginSheet(View.Window);
        });
    }
};

Finally, we need the code that will trigger when the button is clicked (we set up the action for this earlier):

partial void StartStopButtonClicked(NSObject sender)
{
    // If the timer is running, we want to stop it,
    // otherwise we want to start it
    if (MainTimer.Enabled)
    {
        MainTimer.Stop();
        StartStopButton.Title = "Start";
    }
    else
    {
        MainTimer.Start();
        StartStopButton.Title = "Stop";
    }
}

Now we have a basic Pomodoro timer! When the app is run, you can click the button to start the countdown timer:



Once 25 minutes has elapsed, an alert will be shown:



Summary

Building apps with Xamarin.Mac is a great way to build powerful apps for macOS that harness the power of C#. In this blog post, we created a basic Pomodoro timer application for macOS. If you want to learn more about Xamarin.Mac, check out the Xamarin.Mac documentation and get involved in discussions on the forum! The completed code for this blog post can be found on my GitHub.

The post Building Your First macOS App appeared first on Xamarin Blog.

Powered by WPeMatico

Udgivet i Developers, iOS, Xamarin Platform

The Body Shop’s Fresh Take on Lasting Customer Relationships

blog-572x320-The_Body_ShopEverywhere they turn, today’s shoppers are bombarded with offers from retailers competing for their attention. For a brand, cutting through all that noise has never been more difficult. Recognizing this, The Body Shop’s Switzerland stores saw an opportunity for a different approach: one that focused on better understanding their customers and building relationships, not blasting […]

Powered by WPeMatico

Udgivet i Android, app, appcelerator, customer-stories, Developer, iOS, University_Published

A Short History of U.S. Presidents

(Via Reddit)

#

Powered by WPeMatico

Udgivet i Excerpt

Your Culture is Rotting

Whoever came up with the name “Human Resources” deserves a medal. Such a descriptive, helpful, and seemingly useful name. Why yes, I’m human and I sure could use some resources. Purely viewed by the name, Humans Resources or HR seems like such a great idea. These are the people who are responsible for looking after your people whether it’s their health, compensation, or career.

So, why do we freak out when HR is in the building? What’s with the hush whispers when you see your boss huddled with HR in her office? Layoffs? Reorg? Has anyone seen Ryan today? HR’s presence typically makes folks paranoid. I’ll repeat that: the folks whose job it is to be resources for humans collectively gives us the shakes. What happened?

It’s not HR; it’s your culture.

Humane Resources

Disclaimer: I’ve never worked in HR, and all of my observations regarding HR have been made without what I assume is the daily toil of having a gig where the expectations are so high, but corporate support is traditionally low. However, both as manager and as a former employee of an HR-focused start-up, I know a bit.

Simplification: There are all sorts of different jobs inside of HR and depending on the size of your company, your HR team may have one or all of them. Benefits, recruiting, compensation, training, it’s a long list. For the purpose of this article, let’s consider HR to be the folks who are responsible for helping a team thrive. They have many other jobs, but that’s the one I’m thinking about in this piece.

HR is a tough gig. They have constraints which often leads to unique behavior that affects their reputation. Two examples:

  • Lack of clear measures. Just like managers, HR folks have fuzzy measures of success. You write code, you fix bugs, you make it 27.5% faster, and everyone can point at that work and say, “You did something of measurable value.” While engineering managers can ride the coattails of this work by completing meta-goals like “Ship on time” or “Deliver the features the customers needs,” HR often has fewer obvious concrete deliverables that directly affect the production and selling of the product.
  • As a support team and a cost center, HR traditionally does not receive a lot of investment. How many folks is your manager responsible for? Ok, how many is your HR partner responsible for? My guess is your HR person has 10x the number of people for whom they are responsible. This under-resourcing has interesting consequences.

First, because of their limited numbers, they logically gravitate towards informed decision makers because these humans are an early warning system regarding what is and aren’t going well. This network helps keep them as to the state of the company.

Second, because of their allegedly human-related skills, they are called in when there are people-related problems. This means you only see them when something is going down. These infrequent appearances when the sky is falling contributes to their grim reaper reputation.

Finally, when they do arrive because the sky is falling, they are informed because of the carefully built information gathering network, but when they start talking, they don’t sound like you. They, like every group at your company, have a language all their own, which when accompanied with the penchant for showing up when the shit is going down makes their language the language of trouble.

All of these attributes contribute to the problematic reputation of HR. Yet, in two decades of work I’ve discovered that when the team is freaked out by HR, it’s not HR, it’s the culture. Something is rotting.

Culture == Values

Your company has values regardless of whether you’ve painted them on the wall or produced an employee handbook. They exist as a result of the Old Guard employees working together, making decisions, and successfully building the company.

Values exist as stories. Back in our first building, Christine once stayed up all night working on a single performance bug that ended up revealing fundamental flaws in our architecture. The implied value? Persistence or perhaps craftsmanship.

Values exist as people. When I watch Brad run a meeting, I realize how poorly I run my own. The implied value? Everyone’s time is valuable, efficiency, or maybe constant improvement.

Values are principles or standards of behavior, and in a group of humans, they are first defined by the founding employees and then evolved over time by the leadership team. Painting them on the walls or writing them down in an employee handbook makes them accessible and obvious, but it is how these values are consistently applied especially during times of crisis that gives values value.

When I hear, “I don’t trust HR,” I ask, “Why?” The answers vary, “They are political. They are risk mitigators. They protect the company… not the employees.” There are humans in HR who exhibit this behavior. However, it is equally likely there are humans at every level of leadership who exhibit this behavior, and all are allowed to behave in this way because of the values of the company.

Has Anyone Seen Ryan Today?

The rule is: in the absence of information, humans will make up a story to fill the vacuum. When this happens, listen to the story because not only do they usually find the worst case scenario, it’s a situation that reflects the perception of your company’s values.

Where is Ryan? Well, he left early on Friday and was out all day on Monday. I think he’s checked out and you know what we do to checked out people here? HR fires them without warning.

No, HR doesn’t fire people without warning. No, Ryan is not checked out. He’s just sick, and his manager forgot to send a message to the team. The issue here is that the team believes HR has nefarious unchecked power and in my experience they rarely do. They are capable, overworked, emotionally intelligent humans who I call when I need help.

Yes, they swarm around disasters. Yes, they have access to a lot of information. You should hold them to them a high bar. More importantly, you should understand how in the world your team comes to hold seemingly irrational beliefs because their existence is not a sign of their character of your team, it is a sign your culture is rotting.

Powered by WPeMatico

Udgivet i Management

The Week in Mobile: February 12-18, 2017

TWIMiPhone 8 rumors in full swing, Facebook smart TV app, Google rolls out TensorFlow 1.0 and more Each week we round up the top news stories, think pieces and other content that centers on the fast-paced, quickly changing world of mobile technology. We tell you which companies are employing clever mobile strategies, illuminate new ways […]

Powered by WPeMatico

Udgivet i Enterprise, mobility

RC Release for Titanium SDK 6.0.2

RC ReleaseToday, we published a Release Candidate release for Titanium SDK 6.0.2. Noteworthy Changes Titanium SDK has the following new feature: Added support for ignoreSslError property for Titanium.UI.WebView API (TIMOB-11278) Release Notes This release includes 21 bug fixes and 1 new feature. For a more detailed overview, known issues and closed tickets see the release note: […]

Powered by WPeMatico

Udgivet i appcelerator, Developer, Product Updates, release, sdk, Titanium

Mobile Center Webinar Recordings | Mobile Center for Xamarin Developers and Continuous Delivery

Mobile Center for Xamarin Developers

 
James Montemagno shows how Xamarin developers can fully automate their Android and iOS release pipelines, including builds, tests, and beta distribution. He also discusses how to integrate the Mobile Center SDK into your apps to track how they—and your users—behave in the wild.

During the webinar recording, you’ll see how to:

  • Build your apps automatically with every pull request
  • Test apps on thousands of real-world devices and 400+ configurations
  • Seamlessly distribute passing builds to beta testers
  • Monitor production apps for crashes and bugs to prioritize fixes
  • Collect mobile analytics and understand your users
  • Connect to a cloud backend, adding critical cloud services, like offline data sync, tabular storage, and user authentication, and scaling on-demand

 

 

Continuous Delivery | Building a Development Pipeline in Mobile Center

 
Simina Pasat and Joshua Weber show you how Mobile Center simplifies your entire mobile development pipeline, from build to distribution, so you can focus on building better apps for your customers.

Mobile Center builds your app after every code check-in, streamlines your team’s workflow, and automatically tests and distributes passing builds to your distribution groups.

In this webinar recording, you’ll learn how to:

  • Automatically build your app after each check-in
  • Distribute builds to beta testers or collaborators for real testing and fast feedback
  • Increase visibility across your team members, including easily viewing commits and integrating with repos
  • Iterate and continuously improve your apps, rapidly developing, testing, and shipping new features

 

The post Mobile Center Webinar Recordings | Mobile Center for Xamarin Developers and Continuous Delivery appeared first on Xamarin Blog.

Powered by WPeMatico

Udgivet i Developers, Xamarin Platform