Wednesday, April 20, 2016

Agile Sig - How Yahoo! Embraced Automated Testing

Neil Manvar from Saucelabs who used to work at Yahoo! gave a very interesting presentation on how Yahoo! did QA to fifty people at PlanView.

My Notes::

150 people work at Yahoo! on mail.

Challenges at Yahoo Mail
Multiple browsers on multiple OSes
New browsers coming out
Right to Left languages
Terabytes of data

Used beta version of email internally even for personal mail so everyone a Yahoo tests new versions of email.

Manual testing just doesn't work its not reliable and not scalable

"developers are not bad people."
It's all about getting info back to the developers.

Marissa Mayers gave them 3 months to get framework in place for automated testing, no new features.

Continuous improvement
Pull requested need unit tests and selenium tests.

Ruby and Open Source ruby gems / Cucumber / Watir-webdriver (Selenium)

A build would fail if code coverage was not sufficient.  It had to run in 10 minutes.
256 unit tests run in parallel

He recommended the book "Leading the Transformation: Applying Agile and DevOps Principals at Scale" by Gary Gruver, Tommy Mouser

Tuesday, April 19, 2016

SQL Server Error: CREATE DATABASE failed. Some file names listed could not be created.

I recently installed Windows 10 under VMWare and added SQL Server Express to do some work with MVC5 using the default Entity Framework backend.

I kept getting this error:

Directory lookup for the file "c:\users\fincherm\documents\visual studio 2015\Projects\
failed with the operating system error 5(Access is denied.).
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.

It turns out the problem was the identity of the SQLExpress service, "NT Service\MSSQL$SQLExpress"  did not have write permissions in the file system to create a database.  Adding "write" permission to that identity fixed the problem and now my MVC app works with SQL Server.

Tuesday, April 12, 2016

Photo from Agile Austin April 12 Managers talk about Agile

125 people attended the April meeting of Agile Austin at Kasasa.  A panel of experts answered preselected and on demand questions about Agile.

  • How to evaluate employees and managers?
Motivation?  Make sure employee knows what it takes to go to the next level.  Make sure employees "own" their problems.
Use a phone app to get feedback on employees and even meetings. 
 Give feedback all year round.

  • How to do interviewing and hiring?
It's important to have the whole team involved.  Don't hire anyone the team has doubts about.
Candidate must be technically adept.  Look for competence and humility.  And an ability to learn. 
If any interviewee answers "I don't know." is a good sign.
Look for someone who enjoys the work.
Look for good culture fit.  Establish values for your company and test your candidate for those qualities.
Look for motivation, desire to fix problems and to grow technically.
Ask candidate about their past process.  Look for enthusiasm or just rote description.
Ask candidate about best team they have worked with.  What makes a good team?
Try to find the culture they want to be in.
90% of time is human interaction, 10% is hands on keyboard.
Be honest with candidate about job environment.  Don't let salesperson in manager take over and gloss over the problems.
Do not get reactions about candidate in email or separately.  Get feedback in a group so they can bounce thoughts off each other.

  • How do Agile managers handle employee issues?
How to handle employees with significant life problems like death in family, illness.
Be a servant leader.
You don't have to have the right answers.

How to handle team conflicts?  You want them to take ownership if possible.  If not, bring awareness through one-on-one.  Healthy teams do have meaningful debates in an atmosphere of trust.

In the old school it was the manager's task to fix problems, now the team needs to take ownership, define the problem, and fix it.

  • How to retain great teams?  How to foster team satisfaction?
Show appreciate to team members.  A little appreciation goes a long way.   It's a matter of continually checking in with each individual and seeing how they are doing.

What do employees want the most?  They like to feel like they are contributing to the organization.
Show your programmers customers using their software. 
People don't like to deal with the same problems.  If an employee tells you about an issue they cannot fix, you need to solve it.

  • How to balance business needs with the needs of forming an agile team?   
Be honest, if company is struggling tell the team.

What big fails have you had as a manager that you learned from?
Focusing too much on process without the principles.  If execs don't understand Agile principles, it's a recipe for disaster.
Not releasing a product for review even if it's not a minimal usable product.
Not firing someone early.

  • How have you changed from managing an Agile team?
Learn to let other people fix their problems.
Letting go and let the team make decisions.
I don't have to know what everyone is doing all the time.
Having patience that it will all work out.
Learn to take my hands off the steering wheel.

Monday, March 28, 2016

How to install aspell for emacs on a macbook

Recently I bought a shiny new macbook and needed to install "aspell" for emacs.  Here's the way I did this:

1.  First install Homebrew, the missing package manager for the mac.  The hardest part is the arcane license acceptance bit.  In a console window enter:

sudo xcodebuild -license
/usr/bin/ruby -e "$(curl -fsSL"

2. Then install "aspell" into the "/usr/local/bin" by entering this command:

brew install aspell --with-lang-en

3.  In your .emacs file add the code to link this all together:

(setq-default ispell-program-name "aspell")
(add-to-list 'exec-path "/usr/local/bin")

4. Enjoy.

Tuesday, March 15, 2016

The Six Rules for Talkiing Politics at Work

You can talk politics at work, since we are all political animals, but you have to be careful because things can go dreadfully wrong.  Here's the things you need to know:

1.  Realize your vote doesn't count for anything - nada, zilch, zip.  No national election has ever been won by one vote.  It doesn't matter how you vote, you won't change the election outcome.

2.  Realize your political opinion doesn't count for anything.  Even if you could convince all your friends and acquaintances that your slightly offbeat politics are correct, it doesn't change anything. The increase of a few hundred votes won't change a national or congressional election.

3.  Realize your relationships with your co-workers are everything.  You work there 8 hours a day and your co-workers are key to your happiness and success there. 

4. Realize that knowing your co-workers better can actually improve your relationships.  That's the purpose of talking politics at work - it's not to change their wacky political views - it's to understand them better and improve your relationships.

5. Don't try to change their viewpoint - that's when things go wrong.  If things get a little testy, say, "Oh, my, look at the time, I've got to go."

6.  Don't tell them directly your viewpoints, but ask them their viewpoint. As Covey says, "Seek First to Understand, Then to Be Understood".  Wait for them to ask your opinion, if they don't, bite your lip, and don't tell them.

For example, in the break room you can ask, "What did you think of the primary results last night?"  Let them talk and listen, but really do listen.  Always remember they could actually, gulp, be right and you could be wrong.

Go ahead and talk politics at work, it can be great fun and deepen your understanding of your co-workers, but be careful.

Pics from .Net Users Group - Barrett Simms on Unit Testing

 Barrett Simms spoke to 80 people at the Austin .Net Users Group about Unit testing and tools.
Here's a few pics of what a users group looks like.  Join us next month.

 My notes:

His Toolset includes
ProjectRoller - a github project to get the initial setup

BaseAspNetAngularUnity - initial "project zero" code

 Unity for Dependency Injection

Simian to find duplicate code
Angular 1.5
Ncover - he uses desktop version, comments were made about how expensive it is
Moq - for mock object

command line to start:   ProjectRoller.exe ADNUG
testfast.bat - runs tests code in command window (used ConEmu, my fav shell replacement)

Branch Coverage is the one to pay attention to.  Try to keep above 94%.
Write a unit test for every conditional branch
Restricted access to constructors so we have to use DI
If you use "new" on an important object its an anti-pattern, use DI

Saturday, March 12, 2016

Turbo Tax Error: Schedule B: State ID exempt-int div-3 must be entered.

I was cruising along doing my taxes online with Turbo Tax, wishing we just had a national sales tax instead of income tax, and during the review, Turbo Tax gave me this error:

 "Schedule B: State ID exempt-int div-3 must be entered."

and offered to let me fix it in the form below.  Don't fall for it.  Do not try to fix it on the form shown.  You have to fix it elsewhere.

Go back to "Personal / Personal Income / I'll Choose what to work on / Dividends on 1099-DIV"

 If your problem is the same as mine, under "Exempt Div." you have "$0" shown.
You need to get rid of the "$0" and have it show a "-" instead.

 I was able to just hit "Edit" on both entries, change nothing, and select "Continue".
 After that it showed the "-" instead of the "$0".
Then my taxes passed review.
I hope your fix is as easy.
(Is it too late for the fairtax?)