Treetown Agile Adventure

Pages

Wednesday, March 11, 2015

I've been thinking about the role of Tech Lead. It is one of those titles where I think everyone "knows" what it means but most of us haven't tried to define it.

It goes without saying that a tech lead has to be strong technically, but I think what makes or breaks a tech lead is whether they have strong leadership characteristics. I see those characteristics falling in three categories (Self / Team / Business):

Self
Has an active desire to work with people
Possesses "confident humility"
Can accept a position with less than 100% of time spent working on code (sometimes a lot less)
Knows where the gaps in their knowledge are
Is not concerned with "looking good"
Can delegate work

Team
Can facilitate conflict resolution and team decision making
Wants team and individual members (including self) to grow and learn
Wants team members to succeed and actively works to ensure they receive recognition for it
When necessary, can combine their own experience with the thoughts of a team and render a decision
Understands that people have different learning styles (visual, tactile, auditory, etc)
Shields team from outside influences, so they can get their work done (much as a scrum master does)

Business

Understands the value that IT provides to business
Can speak to technical decisions in a way that addresses business partners' priorities
Understands and accepts that business may only wants to pay for "good enough" solutions, not "best" solutions.

What do you think? Do you agree/disagree with the characteristics I've identified?

Wednesday, January 14, 2015

A co-worker and I were discussing estimation on agile software development teams (Yeah, I know - #noestimates. That was off the table here). I asked him what a story point represents. He said "effort", which PMBOK defines as "measurable work units", and pointed me to a post by Michael Cohn:

"...story points are about time—the effort involved in doing something. Because our bosses, clients and customers want to know when something will be done, we need to estimate with something based on effort. Risk, uncertainty and complexity are factors that may influence the effort involved."

Management wants estimates of duration which we calculate according to the first equation by dividing points by velocity (Cohn mentions this too). In either formula, points cancel out. What that says to me is that units of story points don't matter. We can estimate in complexity, risk, time, or elephants! The upside of this is that non-timebased units for points prevents management from translating stories directly back and forth between points and hours, which can cause friction between the team and management

Launch ios_webkit_debug_proxy:
ios_webkit_debug_proxy -d
Go to http://localhost:9221/
You should see “iOS Devices” and nothing else
Connect iPhone
You should see “1. localhost:9222 - iPhone” where localhost:9222 is a hotlink
Disconnect iPhone.
Refresh browser. localhost:9222 is no longer a hotline
Reconnect iPhone
Refresh browser. Hotlink is back.
Click link and see: “Inspectable pages for iPhone:”
Launch Safari on iPhone and go to google
Reload browser on Mac and see a line added to the page: “1. https://www.google.com/” where https... is a hotlink
Click hotline and you will see ios_webkit_debug_proxy tool, which you can use like Firebug to inspect elements on the page.

Get the UDID of the iPhone:
http://whatsmyudid.com/
When you see your UDID in iTunes, you may need to right-click it and select Copy. Keyboard shortcut may not work.

Run appium server:
In a new terminal shell, type:
appium --session-override

Write a test that uses SafariLauncher to open your website and make Selenium calls to test the site:{Beyond scope}

Run your test against the iPhone simulator:
In another terminal shell, type:
mvn -Dtest=com.saucelabs.appium.SimulatorSafariTest test
Watch as the simulator starts (SLOW)
You will see SafariLauncher start (SLOW)
You will see the website launch (SLOW)
You will see your test steps performed.
Look at output of appium window.

Stop appium server:
In the terminal shell where you launched appium, type ctrl-c

Run appium server and tell it the id of the iPhone you want to use:
In same terminal shell used for , type:
appium --session-override --udid e8fae...719
Use the udid for your iPhone, not e8fae...719 shown above.

Run your iPhone test:
In the same terminal shell you used to run the simulator, type:
mvn -Dtest=com.saucelabs.appium.iPhoneSafariTest test
Fix any compilation errors
Watch iPhone screen.
You will see SafariLauncher installed
You will see SafariLauncher run.
After a delay, SafariLauncher will launch your website in Safari.
You will see your test steps performed.
Look at output of appium window.

Sunday, March 3, 2013

I'm excited to announce that I will be presenting at Agile and Beyond 2013, this Saturday, March 9 in Dearborn, Michigan! It's a great conference, even if you don't come to hear me. ;) There are still seats open. The website lists the price as $129, but if you contact me I can give you a discount code that will get you in for $79.

I will be presenting the talk that I gave at Agile Groupies in October of last year, "Refactor Your Software Career." I will be talking about my three-year journey from stagnant developer to my awesome position today with Pillar. A key component of that journey is my idea of Transformative Networking, which is a way of identifying events that will allow you to simultaneously increase your tech skills and expand your network. In short, the events that I found the most worthwhile for improving my career met most or all of the following criteria:

If you can't make it to my talk, you can get my original deck here, or I will be publishing my new deck shortly after Agile and Beyond this weekend.

If it's a nice day, you might enjoy a walk in the Matthaei Botanical Gardens & Nichols Arboretum: http://mbgna.umich.edu

The downtown area, especially Main Street, has a many nice shops and restaurants.

If
you want a fairly upscale dinner, the Earle is very good.
http://theearle.com/ And they have some nice specials during happy hour
5-8 weekdays.

Kerrytown is a nice indoor collection of shops and
a market: http://www.kerrytown.com/ There's a nice farmer's market
there too Saturdays and Wednesdays from 7am-3pm.

If you're
looking to see a show, you could check the Ark http://www.theark.org/ ,
the Kerrytown Concert House http://www.kerrytownconcerthouse.com/ or
Performance Network http://www.performancenetwork.org/