Warning: Table './devblogsdb/cache_page' is marked as crashed and last (automatic?) repair failed query: SELECT data, created, headers, expire, serialized FROM cache_page WHERE cid = 'http://www.softdevblogs.com/?q=aggregator&page=5' in /home/content/O/c/n/Ocnarfparking9/html/softdevblogs/includes/database.mysql.inc on line 135

Warning: Cannot modify header information - headers already sent by (output started at /home/content/O/c/n/Ocnarfparking9/html/softdevblogs/includes/database.mysql.inc:135) in /home/content/O/c/n/Ocnarfparking9/html/softdevblogs/includes/bootstrap.inc on line 729

Warning: Cannot modify header information - headers already sent by (output started at /home/content/O/c/n/Ocnarfparking9/html/softdevblogs/includes/database.mysql.inc:135) in /home/content/O/c/n/Ocnarfparking9/html/softdevblogs/includes/bootstrap.inc on line 730

Warning: Cannot modify header information - headers already sent by (output started at /home/content/O/c/n/Ocnarfparking9/html/softdevblogs/includes/database.mysql.inc:135) in /home/content/O/c/n/Ocnarfparking9/html/softdevblogs/includes/bootstrap.inc on line 731

Warning: Cannot modify header information - headers already sent by (output started at /home/content/O/c/n/Ocnarfparking9/html/softdevblogs/includes/database.mysql.inc:135) in /home/content/O/c/n/Ocnarfparking9/html/softdevblogs/includes/bootstrap.inc on line 732
Software Development Blogs: Programming, Software Testing, Agile, Project Management
Skip to content

Software Development Blogs: Programming, Software Testing, Agile Project Management

Methods & Tools

Subscribe to Methods & Tools
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!

Feed aggregator
warning: Cannot modify header information - headers already sent by (output started at /home/content/O/c/n/Ocnarfparking9/html/softdevblogs/includes/database.mysql.inc:135) in /home/content/O/c/n/Ocnarfparking9/html/softdevblogs/includes/common.inc on line 153.

My Book Tour in North America

NOOP.NL - Jurgen Appelo - Wed, 04/13/2016 - 00:15
twitter-1500x500

This year in June, publisher John Wiley & Sons will release Managing for Happiness, the updated version of my very successful #Workout book. To celebrate this, I have a special offer for event organizers in the USA and Canada.

For an appearance at any event (either public or in-company) during my book tour, I offer 100 copies of my new book for free, and for anything above that number, I offer a 50% discount from the catalog price (USD 35). This only applies to events taking place during my book tour in North America from June 30 to August 31.

You can see my public fees here: http://jurgenappelo.com/fees/

For private/in-company events, I request flexibility of the event date. My itinerary will be very complicated. I aim to maximize the number of people I can meet in the same region and time span, and at the same time I must minimize the time wasted on travel.

Categories: Project Management

SE-Radio Episode 254: Mike Barker on the LMAX Architecture

Mike Barker talks with Sven Johann about the architecture of the LMAX system. LMAX is a low-latency, high-throughput trading platform. Their discussion begins with what LMAX does; the origins of LMAX; and extreme performance requirements faced by LMAX. They then delve into systems that LMAX communicates with; LMAX users; the two main components of the […]
Categories: Programming

Sponsored Post: TechSummit, Netflix, Aerospike, TrueSight Pulse, Redis Labs, InMemory.Net, VividCortex, MemSQL, Scalyr, AiScaler, AppDynamics, ManageEngine, Site24x7

Who's Hiring?
  • Software Engineer (DevOps). You are one of those rare engineers who loves to tinker with distributed systems at high scale. You know how to build these from scratch, and how to take a system that has reached a scalability limit and break through that barrier to new heights. You are a hands on doer, a code doctor, who loves to get something done the right way. You love designing clean APIs, data models, code structures and system architectures, but retain the humility to learn from others who see things differently. Apply to AppDynamics

  • Software Engineer (C++). You will be responsible for building everything from proof-of-concepts and usability prototypes to deployment- quality code. You should have at least 1+ years of experience developing C++ libraries and APIs, and be comfortable with daily code submissions, delivering projects in short time frames, multi-tasking, handling interrupts, and collaborating with team members. Apply to AppDynamics
Fun and Informative Events
  • Discover the secrets of scalability in IT. The cream of the Amsterdam and Berlin tech scene are coming together during TechSummit, hosted by LeaseWeb for a great day of tech talk. Find out how to build systems that will cope with constant change and create agile, successful businesses. Speakers from SoundCloud, Fugue, Google, Docker and other leading tech companies will share tips, techniques and the latest trends in a day of interactive presentations. But hurry. Tickets are limited and going fast! No wonder, since they are only €25 including lunch and beer.

  • In today’s enterprise, new applications are being invented in droves. To cultivate this momentum, organizations must provide a fast, reliable environment that enables scalability, empowers innovation and reduces complexity. In a webinar on April 26 entitled “Contain Yourself: Development Just Got Easier”, veteran analyst Dr. Robin Bloor will discuss using containers for application and services development. He’ll be briefed by Alvin Richards of Aerospike (the flash-optimized, high-performance NoSQL database) who will showcase how Docker can simplify building and deploying multi-node Aerospike applications. Sign up here to reserve your seat!
Cool Products and Services
  • TrueSight Pulse is SaaS IT performance monitoring with one-second resolution, visualization and alerting. Monitor on-prem, cloud, VMs and containers with custom dashboards and alert on any metric. Start your free trial with no code or credit card.

  • Turn chaotic logs and metrics into actionable data. Scalyr is a tool your entire team will love. Get visibility into your production issues without juggling multiple tools and tabs. Loved and used by teams at Codecademy, ReturnPath, and InsideSales. Learn more today or see why Scalyr is a great alternative to Splunk.

  • InMemory.Net provides a Dot Net native in memory database for analysing large amounts of data. It runs natively on .Net, and provides a native .Net, COM & ODBC apis for integration. It also has an easy to use language for importing data, and supports standard SQL for querying data. http://InMemory.Net

  • VividCortex measures your database servers’ work (queries), not just global counters. If you’re not monitoring query performance at a deep level, you’re missing opportunities to boost availability, turbocharge performance, ship better code faster, and ultimately delight more customers. VividCortex is a next-generation SaaS platform that helps you find and eliminate database performance problems at scale.

  • MemSQL provides a distributed in-memory database for high value data. It's designed to handle extreme data ingest and store the data for real-time, streaming and historical analysis using SQL. MemSQL also cost effectively supports both application and ad-hoc queries concurrently across all data. Start a free 30 day trial here: http://www.memsql.com/

  • aiScaler, aiProtect, aiMobile Application Delivery Controller with integrated Dynamic Site Acceleration, Denial of Service Protection and Mobile Content Management. Also available on Amazon Web Services. Free instant trial, 2 hours of FREE deployment support, no sign-up required. http://aiscaler.com

  • ManageEngine Applications Manager : Monitor physical, virtual and Cloud Applications.

  • www.site24x7.com : Monitor End User Experience from a global monitoring network.

If any of these items interest you there's a full description of each sponsor below...

Categories: Architecture

The Gig Economy Breaks Social Security

With the tax deadline looming in the US and the future of the gig economy as the engine of scaling startup workforces under fire, there's an important point to consider: In the gig economy the entire social contract is kaput. Here's why.

Everyone who works in the US pays into the Social Security system. The whole idea of Social Security is young people pay in and old people take out.

When you are an employee Social Security taxes are taken directly out of your paycheck. You don't even have to think about it.

When you work in the gig economy you get a 1099-MISC at the end of the year. A 1099 reports payments made by the hiring company during the year and it's sent by the hiring company both to the worker and the IRS.

It's up to the worker to identify their income on their tax return as self employment income, which is subject to a Social Security tax of 15.3%. Most gig workers probably won't declare this income because a lot of them don't even know they are supposed to. My wife, Linda Coleman, a respected Enrolled Agent, says from people she has talked to a lot of gig workers haven't even heard self employment tax. And there's only an ever decreasing budget for the IRS to try to enforce all the rules.

And even if a gig worker does know about the tax they might ask themselves why should should I pay 15.3% on my income when I'm making so little money and the company is capturing almost all the benefit?

The problem: if gig workers aren't contributing how is Social Security supposed to work? Gig workers simply won't have Social Security when they retire.

The way Social Security works is all your wages and self employment income are tracked by the Social Security Administration. If you aren't contributing then you aren't earning credits towards your account. And if you aren't earning credits you won't get much in the way of benefits. Social Security works like a big checking account. The amount you can take out is based on how much you put in (or close enough). If you aren't putting any money you can't take it out later. 

The whole big picture is not being communicated well to the public. Who is benefiting? It's not the worker. It's not the government. It's not even the shareholders because no dividends are being paid.

In the gig economy the entire social contract is kaput.

Categories: Architecture

Announcing My First Certified Scrum Master Course in Austin

Mike Cohn's Blog - Tue, 04/12/2016 - 15:00

I'm coming to Austin!

I've wanted to offer training courses in Austin for a while, and the time is right. I'll be there for a Certified Scrum Master course on October 3-4, 2016. The course will be at the Doubletree Northwest Austin Arboretum.

We've got an early bird discount running. Register by September 5 and save $100.

Groups of three or more can also save $100 per person. Groups of 10 or more save $200 per person.

The last time I was in Austin, I was walking around downtown and stopped in a little bar because I liked the band I could hear as I walked by.

I sat down, and by the second song, I realized that blues legend Pinetop Perkins was sitting in on piano with the band. He was in his 90s by then and was still amazing to see.

Seeing Pinetop Perkins perform, meeting him and getting his autograph was an amazing experience.

I hope to have just as much fun in Austin this October. And I hope you'll join me for my first public Certified Scrum Master class there.

Where to Next?

I’m looking to add another city or two into my usual rotation. If you have a suggestion, please let me know in the comments below or by emailing us.

The Ultimate Tester: Value Creation

Xebia Blog - Tue, 04/12/2016 - 10:10
Once upon a time, when project managers still thought that building software was a completely manageable and predictable activity, and testers were put in a seperate team to ensure independence, the result was shitty software and frustrated people. Even though the rise of the agile way of working has improved some aspects of software development,

Quote of the Month April 2016

From the Editor of Methods & Tools - Tue, 04/12/2016 - 08:44
Having conversations is more important than capturing conversations is more important than automating conversations. Liz Keogh, “Behavior Driven Development”, http://www.slideshare.net/lunivore/behavior-driven-development-11754474, slide 14 mentioned in “More Agile Testing: Learning Journeys for the Whole Team”, Janet Gregory & Lisa Crispin

Everything You Know About How To Be Persuasive Might Be Wrong

Making the Complex Simple - John Sonmez - Mon, 04/11/2016 - 16:30

They say that everything in life is a sale. From convincing your significant other to pick their socks up off the floor to implementing a new test pattern at the office, right down to actually selling your products and ideas, you are constantly in the midst of a conversation or situation that will involve you […]

The post Everything You Know About How To Be Persuasive Might Be Wrong appeared first on Simple Programmer.

Categories: Programming

R: tm – Unique words/terms per document

Mark Needham - Mon, 04/11/2016 - 06:40

I’ve been doing a bit of text mining over the weekend using the R tm package and I wanted to only count a term once per document which isn’t how it works out the box.

For example let’s say we’re writing a bit of code to calculate the frequency of terms across some documents. We might write the following code:

library(tm)
text = c("I am Mark I am Mark", "Neo4j is cool Neo4j is cool")
corpus = VCorpus(VectorSource(text))
tdm = as.matrix(TermDocumentMatrix(corpus, control = list(wordLengths = c(1, Inf))))
 
> tdm
       Docs
Terms   1 2
  am    2 0
  cool  0 2
  i     2 0
  is    0 2
  mark  2 0
  neo4j 0 2
 
> rowSums(tdm)
   am  cool     i    is  mark neo4j 
    2     2     2     2     2     2

We’ve created a small corpus over a vector which contains two bits of text. On the last line we output a TermDocumentMatrix which shows how frequently each term shows up across the corpus. I had to tweak the default word length of 3 to make sure we could see ‘am’ and ‘cool’.

But we’ve actually got some duplicate terms in each of our documents so we want to get rid of those and only count unique terms per document.

We can achieve that by mapping over the corpus using the tm_map function and then applying a function which returns unique terms. I wrote the following function:

uniqueWords = function(d) {
  return(paste(unique(strsplit(d, " ")[[1]]), collapse = ' '))
}

We can then apply the function like so:

corpus = tm_map(corpus, content_transformer(uniqueWords))
tdm = as.matrix(TermDocumentMatrix(corpus, control = list(wordLengths = c(1, Inf))))
 
> tdm
       Docs
Terms   1 2
  am    1 0
  cool  0 1
  i     1 0
  is    0 1
  mark  1 0
  neo4j 0 1
 
> rowSums(tdm)
   am  cool     i    is  mark neo4j 
    1     1     1     1     1     1

And now each term is only counted once. Success!

Categories: Programming

SPaMCAST 389 – AUAT, Soft Skills, OODA vs PDCA

SPaMCAST Logo

http://www.spamcast.net

Listen Now

Subscribe on iTunes

The Software Process and Measurement Cast 389 essay on different layers and anti-patterns of Agile Acceptance Testing. Many practitioners see Agile acceptance testing as focused solely on validating the business facing functionality. This is a misunderstanding; acceptance testing is more varied.

We also have a column from Kim Pries, the Software Sensei.  Kim discusses the significance of soft skills. Kim starts his essay with the statement, “The terms we use to talk about soft skills may reek of subjective hand-waving, but they can often be critical to a career.”

Gene Hughson anchors the cast with a discussion from his blog Form Follows Function, titled OODA vs PDCA – What’s the Difference? Gene concludes that OODA loops help address the fact that “We can’t operate with a “one and done” philosophy” when it comes to software architecture.

We are also changing and curtailing some of the comments at the end of the cast based on feedback from listeners. We will begin spreading out some of the segments such as future events over the month so that if you binge listen, the last few minutes won’t be as boring and boring.

Re-Read Saturday News

This week we begin the read Commitment – Novel About Managing Project Risk by Maassen, Matts, and Geary.  Buy your copy today and read along (use the link to support the podcast). This week we tackle Chapters One and Two which set the context for the novel and introduces the concept of real options.

 

Upcoming Events

I will be at the QAI Quest 2016 in Chicago beginning April 18th through April 22nd.  I will be teaching a full day class on Agile Estimation on April 18 and presenting Budgeting, Estimating, Planning and #NoEstimates: They ALL Make Sense for Agile Testing! on Wednesday, April 20th.  Register now!

I will be speaking at the CMMI Institute’s Capability Counts 2016 Conference in Annapolis, Maryland May 10th and 11th. Register Now!

Next SPaMCAST

The next Software Process and Measurement Cast features our interview with Vinay Patankar.  We discussed his start up, Process Street, and the path Vinay and his partner took in order to embrace agile because it delivered value, not just because it was cool.  We also discussed how Agile fits or helps in a lean start-up and the lessons Vinay wants to pass on to others.

 

Shameless Ad for my book!

Mastering Software Project Management: Best Practices, Tools and Techniques co-authored by Murali Chematuri and myself and published by J. Ross Publishing. We have received unsolicited reviews like the following: “This book will prove that software projects should not be a tedious process, for you or your team.” Support SPaMCAST by buying the book here. Available in English and Chinese.


Categories: Process Management

SPaMCAST 389 – AUAT, Soft Skills, OODA vs PDCA

Software Process and Measurement Cast - Sun, 04/10/2016 - 22:00

The Software Process and Measurement Cast 389 essay on different layers and anti-patterns of Agile Acceptance Testing. Many practitioners see Agile acceptance testing as focused solely on validating the business facing functionality. This is a misunderstanding; acceptance testing is more varied.

We also have a column from Kim Pries, the Software Sensei.  Kim discusses the significance of soft skills. Kim starts his essay with the statement, “The terms we use to talk about soft skills may reek of subjective hand-waving, but they can often be critical to a career.”

Gene Hughson anchors the cast with a discussion from his blog Form Follows Function, titled OODA vs PDCA – What’s the Difference? Gene concludes that OODA loops help address the fact that “We can’t operate with a “one and done” philosophy” when it comes to software architecture.

We are also changing and curtailing some of the comments at the end of the cast based on feedback from listeners. We will begin spreading out some of the segments such as future events over the month so that if you binge listen, the last few minutes won’t be as boring and boring.

Re-Read Saturday News

This week we begin the read Commitment – Novel About Managing Project Risk by Maassen, Matts, and Geary.  Buy your copy today and read along (use the link to support the podcast). This week we tackle Chapters One and Two which set the context for the novel and introduces the concept of real options.

 

Upcoming Events

I will be at the QAI Quest 2016 in Chicago beginning April 18th through April 22nd.  I will be teaching a full day class on Agile Estimation on April 18 and presenting Budgeting, Estimating, Planning and #NoEstimates: They ALL Make Sense for Agile Testing! on Wednesday, April 20th.  Register now!

I will be speaking at the CMMI Institute’s Capability Counts 2016 Conference in Annapolis, Maryland May 10th and 11th. Register Now!

Next SPaMCAST

The next Software Process and Measurement Cast features our interview with Vinay Patankar.  We discussed his start up, Process Street, and the path Vinay and his partner took in order to embrace agile because it delivered value, not just because it was cool.  We also discussed how Agile fits or helps in a lean start-up and the lessons Vinay wants to pass on to others.

 

Shameless Ad for my book!

Mastering Software Project Management: Best Practices, Tools and Techniques co-authored by Murali Chematuri and myself and published by J. Ross Publishing. We have received unsolicited reviews like the following: “This book will prove that software projects should not be a tedious process, for you or your team.” Support SPaMCAST by buying the book here. Available in English and Chinese.

Categories: Process Management

Re-Read Saturday: Commitment – Novel about Managing Project Risk, Part 1

Picture of the book cover

Commitment by Maassen, Matts and Geary

This week we begin the read of Commitment – Novel about Managing Project Risk by Olav Maassen, Chris Matts and Chris Geary (second edition 2016) The book is a graphic novel that generally uses a six panel page drawn in a black and white style, reminiscent of Frank Miller’s Sin City series (one of my favorites).  Interspersed among the graphics are text in the form of diary entries and blobs (blog entries) to fill in the back story and for exposition on the Agile and lean topics found in the book.  Commitment has seven chapters and an epilogue.  My intent is to re-read Commitment in five weeks, including a recap. 

Chapter One.  Commitment is a story of enlightenment and Chapter One provides the context for the novel.  Larry is the project manager and Susan ‘s boss.  Susan, the book’s protagonist, is the project admin/whip.  Larry is taking advantage of Susan because Susan feels an obligation to Larry, who has supported her when other project managers would not hire her after an earlier project cratered. 

I discussed Commitment with several colleagues this week.  One person had a problem with the trope that management is uniformly unenlightened and that a single team leader can become the Jedi Master that leads the project and organization into enlightenment. While might be a bit tired in 2016, if we accept the use of the trope as a tool to sharply highlight how different the concepts identified in this book are from many typical organizational practices, I do not find it distracting.  Susan, in her role as project admin/whip, passes on Larry’s edicts, does the analysis on project progress and writes all of the reports needed for management.  Larry believes in his own work/life balance while Susan is a first name basis with the night guard.  We all can recognize the project in Chapter One, it is a classic death march. Death marches typically burn out teams, and if they fail, which is a high probability, leave a string of wrecked or damaged careers in their wake.  But if they succeed, and every leader seems to feel they have the magic solution, the success can lead to an addiction to stress.  I had that problem once upon a time. The chapter culminates with the introduction of Lil, Susan’s sister, who pushed Susan to call for help.

Chapter Two. The Commitment follows the classic arc of an adventure story which Joseph Campbell called the Monomyth or The Hero’s Journey.  Chapter One described the ordinary world before change and adventure begins while Chapter Two is the call to adventure (also part of The Hero’s Journey). Larry gets fired and Susan must rescue the project to save her and the team’s jobs. In order to lead the team Susan’s fears including second thoughts and personal doubts as to whether she is up to the challenge need to be overcome. Susan resorts to classic Gantt charts and project schedules to find a way forward. Susan exhorts the team to work harder and smarter (I inferred smarter), even though they are already working at 110%.  Susan returns to scheduling and workload balancing only to find there is no obvious solution.  Lil introduces the concept of real options to Susan. A real option is the right, not the obligation or commitment, to undertake certain business initiatives or tasks. This would include developing, delivering or deferring a specific function or feature. The project’s requirements are being treated as commitments which lock the team into a development path that is death march. If the decisions and requirements are view as choices or options the can team can more easily negotiate a path to success based on the circumstances they discover as the software is being developed. After dinner with Lil, Susan returns to form and uses a schedule that works back from a delivery date (and probably a 100%+ resource utilization rate). If you are using the Hero’s Journey to map the action, this step represents the refusal of the call to action and sets up the “meeting the mentor” step in Chapter Three. 

The concept of real options leverages three attributes.  The first is that an option represents a choice.  If you can’t choose, then no option exists. The second is that an option has value.  The value of an option is a function of the amount of uncertainty (we will circle back to Hubbard and How To Measure Anything later in this series) we have whether to execute the option or not. As soon as certainty exists an option becomes a decision or commitment and so has no value as a potential choice.  Finally, options expire.  At some point, an option ceases to be available because time has passed or conditions have changed.  Here is a simple example, recently I drove from Philadelphia to Fairfax, VA to make a speech.  Getting to the venue was important.  I had two options for the last few miles of the trip.  Having options had value based on the vagaries of DC beltway traffic.  Having options had value because they helped ensure I would appear on time.  As I approached, Google Maps informed me that an accident had caused one option to be a bad idea, and then that option expired. 

The first two chapters in Commitment introduce the primary pallet of characters and provides a context for introducing change.  Chapter Three provides Susan with a mentor to help her on the adventure of introducing Real Options and potentially rescuing the project and her career.


Categories: Process Management

Find the Root Cause Before Assuming Your Fix Can Actually Fix Anything

Herding Cats - Glen Alleman - Sat, 04/09/2016 - 23:38

A burst of Tweets of No Estimates fixes these problems came across Twitter this morning. I won't repeat who they are attributed to, to protect the guilty. But here's a core concept that is totally missing from not only the No Estimates conjecture, but from most every discussion, where a solution is proposed before the problem has been defined. Let's start with Dean Gano's introduction to Apollo Root Cause Analysis, which is a George Bernard Shaw quote so fitting to the discussion of ignoring the root cause and going straight for a solution to the symptom - in many cases an Unnamed symptom.

Ignorance is a most wonderful thing.
It facilitates magic.
It allows the masses to be led.
It provides answers when there are none.
It allows happiness in the presence of danger.
All this while, the pursuit of knowledge can only destroy the illusion.
Is it any wonder mankind chooses ignorance?
~ George Bernard Shaw

So until the symptom is named - and the smell of dysfunction is not a symptom. Until the search for the root cause of the symptom, and applying the 5 whys to an unnamed symptom is applied properly, the root cause will be undetermined. Without discovering the root cause, there will be no chance that any suggested processes, method, or change in behaviors will have any impact on the symptom - named or unnamed.

To see how the statement Estimating is the smell of Dysfunction is seriously flawed and the approach of asking 5 Whys equally flawed, please read RealityCharting® Seven Steps to Effective Problem-Solving and Strategies for Personal Success, Dean L. Gano

The Seven Steps are:

  1. Define the problem.
  2. Determine the known causal relationships to include the actions and condition of each effect.
  3. Provide a graphical representation of the causal relationships to include specific actions and conditional causes.
  4. Provide EVIDENCE to support the existence of each cause.
  5. Determine if each set of causes is sufficient and necessary to cause the effect.
  6. Provide effective solutions that remove, change, or control one of more causes of the event. Solutions must have been shown to prevent recurrence, meet our goals and objectives, be within our control and not cause other problems.
  7. Implement and track the effectiveness of each solution.

When one or all of these steps are missing, anyone conjecturing their solution - or worse conjecturing we're just exploring for the solution - that conjectured solution is NOT a solution, it's just unsubstantiated conjecture. 

One of my favorite quotes when hearing unsubstantiated claims is this:

How many legs does a dog have if you call the tail a leg? Four. Calling a tail a leg doesn't make it a leg - Abraham Lincoln

Calling estimating the smell of Dysfunction doesn't make estimating the smell of dysfunction. You've only identified an unsubstantiated symptom. Until you have found the cause and certainly can't suggest Not estimating is the corrective action.

When we have willful ignorance of the Microeconomics of decision making, managerial finance as a governance process for managing other people's money, denial that the uncertainties of projects - aleatory and epistemic uncertainty - can be addressed without estimates of the impact of those uncertainties. Then we are no better than the people mentioned in George Bernard Shaw's quote above. And we are doomed to repeating the symptoms that result from ignoring these principles of managing in the presence of uncertainty. 

 

Related articles The Dysfunctional Approach to Using "5 Whys" Carl Sagan's BS Detector Myth's Abound Making Conjectures Without Testable Outcomes Are Estimates Really The Smell of Dysfunction? Architecture -Center ERP Systems in the Manufacturing Domain The Fallacy of the Planning Fallacy IT Risk Management
Categories: Project Management

GTAC 2016 - Save the Date

Google Testing Blog - Sat, 04/09/2016 - 01:22
by Sonal Shah on behalf of the GTAC Committee


We are pleased to announce that the tenth GTAC (Google Test Automation Conference) will be held on Google’s campus in Sunnyvale (California, USA) on Tuesday and Wednesday, November 15th and 16th, 2016.  

Based on feedback from the last GTAC (2015) and the increasing demand every year, we have decided to keep GTAC on a fall schedule. This schedule is a change from what we previously announced.

The schedule for the next few months is:
May 1, 2016  - Registration opens for speakers and attendees.June 1, 2016 - Registration closes for speaker and attendee submissions.June 30, 2016 - Selected attendees will be notified.August 15, 2016 - Selected speakers will be notified.November 14, 2016 - Rehearsal day for speakers.November 15-16, 2016 - GTAC 2016!

As part of our efforts to increase diversity of speakers and attendees at GTAC,  we will be offering travel scholarships for selected applicants from traditionally underrepresented groups in technology.

Stay tuned to this blog and the GTAC website for information about attending or presenting at GTAC. Please do not hesitate to contact gtac2016@google.com if you have any questions. We look forward to seeing you there!
Categories: Testing & QA

Stuff The Internet Says On Scalability For April 8th, 2016

Hey, it's HighScalability time:


Time for a little drone envy. Sea Hunter, 132 foot autonomous surface vessel.

 

If you like this sort of Stuff then please consider offering your support on Patreon.
  • 12,000: base pairs in the largest biological circuit ever built; 3x: places GitHub data is now stored; 3.5x: Slacks daily user growth this year; 56 million: events/sec processed through BigTable; 100 Billion: requests per day served by Google App Engine

  • Quotable Quotes:
    • Horst724: #PanamaPapers is the biggest secret data leak in history. It involves 2,6 TB of data, a total of 11.5 million documents that have been leaked by an anonymous insider.
    • Amazon cloud has 1 million users and is near $10 billion in annual sales: Today, AWS offers more than 70 services for compute, storage, databases, analytics, mobile, Internet of Things, and enterprise applications. We also offer 33 Availability Zones across 12 geographic regions worldwide, with another five regions and 11 Availability Zones.
    • @CodeWisdom: "Give someone a program, you frustrate them for a day; teach them how to program, you frustrate them for a lifetime." - David Leinweber
    • @peterseibel: OH: it is amazing how many people reach for some complex distributed system when really all they need is a PC with 256 gigs of RAM in it.
    • @dschobel: once you realize that 1TB of ram costs ~$10k it changes your calculus for going distributed. I mean hopefully it does :)
    • @channingwalton: “The grid takes 8 hours so I’ll run it on my dev box, it’ll take 20 mins”, OH’d at a large bank
    • @noahsussman: First attempt at showing that CPU usage statistics of Web servers exhibit a 1/f spectral density. #devops #testing
    • @BenedictEvans: Tech spirals: Open/closed Client/server Search/curation Messaging/apps Document/service Bundle/unbundle Special/general purpose FB/Myspace
    • @Carnage4Life: Insider states Nest falling apart from constant death marches, no new products and missed revenue numbers.
Categories: Architecture

Metrics: The Complexities of Productivity – Outputs

Three Pencils

     How Many Pencils?

One of the most ubiquitous conversations that occurs in organizations is about productivity, although the word itself is rarely used.  The conversation might be about the need to get more value from the software development budget or the ability to deliver more new functions with the same staff.  The concepts of labor, capital, material and total factor productivity are an undercurrent in these conversations even if the word productivity is not directly mentioned.  There are several possible reasons why the word productivity is not used in polite software development company.  Those reasons range from a mistaken belief that productivity concerns are reserved for blue collar occupations to the complexity of defining productivity in software development and maintenance environments.  Complexity is often the most pernicious reason that keeps productivity in the background during strategic conversations that affect products and jobs. However, with the exception of total factor productivity, the mathematical computation of labor, material or capital productivity appears to be very straight forward. 

The equation for productivity equals output divided by input. The simplicity of the equation obscures the complexity hidden in the term productivity.

Unwinding the complex concepts of measuring productivity begins with understanding and making three critical decisions that define the output side of the equation.

The first step in unwinding the hidden complexity of measuring productivity is deciding which output process or value chain we will measure.  Deciding what to measure begins with defining the decisions the measurement will support.  Douglas W. Hubbard in How to Measure Anything wrote that we care about measurements for one of three reasons. Most organizations measure productivity so they can make specific, key decisions.  Understanding that decision is critical to deciding which output of a process needs to be measured.  For example, to establish whether improving the processing power available to software developers in the form of new laptops would increase productivity requires measuring the output of software development (functional software).  Measuring the organization’s whole value chain would be overkill and far less effective.  Another example is a checking account that a retail bank delivers to a customer.  The software required to account for checking transactions is part of the product and does not represent the full value chain needed to deliver a checking account.  Organizations need to decide whether they are measuring the productivity of the overall product or a component that is part of the value chain.  The software is often not the ultimate product or service delivered to an organization’s ultimate customer (most organizations are not software product companies like Microsoft or SAP). Defining the decision or the question that measurement supports is critical to deciding which output to measure.

The second required decision is the definition of a unit of measure.  For a wooden pencil manufacturer, pencils would be their output unit of measure.  However, what if the pencil manufacturer produced two models?  To measure the combined productivity of both products, they would need some mechanism to normalize the output of both models.  Software development has a similar problem, which the industry has solved using function metrics (for example, IFPUG Function Points) and a wide variety of physical (lines of code) and relative (story points) measures.  In software development and maintenance, the functional software presents the whole process needed to deliver functionality.  The whole process often includes: training, documentation, support, DevOps and more that some people might not recognize as part of the steps needed to deliver value from the software.  Developing an agreement on a universal output measure for software is often fractious. The lack of agreed upon output measure can generate all sorts of bad practices, such as equating productivity to a number of hours worked.

The third decision in unwinding the complexity of the output side of the productivity equation is deciding which units of measure to count.  Using the pencil manufacturer to illustrate this conundrum, if a mistake in manufacturing yields a pencil without the lead (the graphite in the middle for those that have never seen a wooden pencil), should that pencil counted when computing productivity.  The simple answer is no.  The only units that count for productivity are those that are complete and fit for use.  In Agile software development, complete and fit for use would mean that functionality meets the definition of done and have been successfully demo’ed.  The defective or unusable product is not counted regardless of whether you are counting pencils, function points or work orders. This puts the onus on organizations to define and enforce the definition of done. 

Deciding why you are measuring productivity is the first step in unwinding the complexity of output side of the equation because it defines scope.  Understanding the scope of what need to be measured provides guidance on which unit of measure will be useful to support why you are measuring productivity.  Understanding the unit of measure establishes boundaries for defining what the words, “done”, “complete”, and “fit for use” mean so that we don’t count output that is not useful.  Short cutting any of these decisions will reduce or erase the usefulness of measuring productivity.

Next Metrics: The Complexities of Productivity – Inputs


Categories: Process Management

Android N and Coffee with Googler Ian Lake

Google Code Blog - Thu, 04/07/2016 - 22:26

Posted by Laurence Moroney, Developer Advocate

In this episode of Coffee with a Googler, Laurence Moroney meets with Ian Lake to talk about some of the new features in Android N, including updates to Doze, giving greater power savings, and expanding on what was available in Android 6.0 Marshmallow.

They also discuss how the multi-window support works in Android N, and what’s needed to prepare for it to ensure the best integration. Check out the video to see the entire conversation, including discussion on the new notifications in Android N. Learn more at developer.android.com/preview.

Categories: Programming

Can “Normal Developers” Learn Design?

Making the Complex Simple - John Sonmez - Thu, 04/07/2016 - 13:00

Can “Normal Developers” Learn Design? This is a common question I get asked a lot: Can normal programmers learn design? You’re a programmer… You write code. What if you could step up your game and learn not only how to write code, but to design… Do you think this is possible? Design is often seen as […]

The post Can “Normal Developers” Learn Design? appeared first on Simple Programmer.

Categories: Programming

Joining an EC2 Windows instance to an AWS Directory Service domain

Agile Testing - Grig Gheorghiu - Wed, 04/06/2016 - 21:53
I've been struggling with the existing documentation on how to join an EC2 instance running Windows Server 2012 to an AWS Directory Service domain, so I am hastening to jot down some notes on how I got it to work.

1) Create an AWS Directory Service domain

There is good documentation on doing this. I chose the Microsoft Active Directory option.

A few notes on the creation of an AWS Directory Service:

  • I created a new VPC with 2 subnets for the Directory Service usage
  • I made sure each subnet has an Internet gateway associated so that it can be reachable from the outside
During the creation of the Directory Service, you'll be asked to specify an administrator-type user name and password. Make sure you remember what you specified there because you'll need this info in a subsequent step. Also make note of the DNS server IP addresses that were set during the Directory Service creation.
2) Create an IAM role to be associated with the EC2 Windows instance
  • the IAM role needs to be associated with the AmazonEC2RoleforSSM and AmazonSSMFullAccess policies
  • the IAM role also needs to have a trust relationship with ec2.amazonaws.com

3) Launch EC2 Windows instance associated with the AWS Directory Service domain
I chose the Windows_Server-2012-R2_RTM-English-64Bit-Base-2016.03.09 AMI.  In Step 3 of the AWS launch instance wizard ("Configure instance details") I made sure I specified the following:
  • Network: the VPC created in step 1) above
  • Subnet: one of the 2 subnets created in step 1) above
  • Domain join directory: the directory name for the Directory Service created in step 1) above
  • IAM role: the IAM role created in step 2) above
4) Connect to EC2 Windows instance via RDP
First get the administrator password via the AWS console (you'll need to paste the contents of the private key corresponding to the EC2 key you used when launching the Windows instance). Then connect to the Windows instance as the local administrator user.
Verify that you see the fully qualified domain name of your Directory Service (whatever you indicated in step 1) as the domain of the Windows instance (in Server Manager -> Local Server). If you don't, something went wrong with joining the domain during the instance launch. You can see the system log of that instance in the AWS console by selecting the instance, then going to Actions->Instance Settings->Get System Log. For example, in one of my failed attempts to get all of this working I saw errors related to the IAM role I was using, which at the time didn't have the correct SSM policies attached.
If the Windows instance is correctly joined to the domain, you need to install the Active Directory management tools in order to actually manage the AWS Directory Service. Here is a Rackspace article I found with good instructions.

5) Log in to the EC2 Windows instance as the domain admin to manage AD
After the EC2 Windows instance was rebooted, I managed to log in via RDP as my.aws.directory.fqdn\myusername (where both of these values are the ones chosen in Step 1 above) with the password also chosen in Step 1. At this point I was able to use the Active Directory management tools to add new AD users etc.
Here are some other good resources I found:


Android Developer Story: Video editing app WeVideo increases user engagement with material design

Android Developers Blog - Wed, 04/06/2016 - 17:36

Posted by Lily Sheringham, Google Play team

WeVideo is a video editing platform founded on a vision to make video creation accessible to anyone, anywhere. They first launched the popular WeVideo Video Editor app for Android, and since the latest update to the app, revenue on the platform has doubled every two months. In fact, almost 85% of their mobile users are on Android devices.

Watch Krishna Menon, President & CTO, and Oleg Tsaregorodtsev, Head of Mobile Development at WeVideo, explain how relaunching their app with material design increased user engagement by 100%. They also share how WeVideo improved monetization and installs using ratings & reviews, store listing experiments, and other features on Google Play.

Find out more about material design principles, and, learn how to find success on Google Play.

Categories: Programming