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

Quote of the Day

Herding Cats - Glen Alleman - Tue, 12/20/2016 - 04:03

The Due Date doesn't mean the Do Date

If you have a Due date, you need the plan to show up on that date, with what is Due for the cost of that Due Item and have that Due Item be compliant with the attributes (effectiveness and performance) needed by those paying you.

I was asked to look at a corrective action plan this year, that had a list of deliverables that were supposed correct the root causes of the problems identified as the reason the project was not performing as planned. The right two columns were the person performing the work and the DONE date.

A big smile came to my face. I see the real root cause of your troubles here. You don't know what Done looks like. That's the first immutable principle of project success. 

Without knowing what Done looks like in units of measure meaningful to the decision makers, the project has little hope of success.

Categories: Project Management

New SE Radio Show Hosts

Software Engineering Radio welcomes Marcus Blankenship to the team. Marcus is a management consultant, trainer, and executive coach for software managers and leaders. After working in enterprise for 14 years and owning two companies, he now helps engineering managers become better leaders. You can learn more about Marcus at his web site. His first episode was […]
Categories: Programming

The Ultimate Top 200 Best Novels, Ever

NOOP.NL - Jurgen Appelo - Mon, 12/19/2016 - 18:56


I love novels.
And I love lists.

What better way for me to spend some cold and rainy days near the end of the year 2016 making a list of the best novels ever written? I truly desired to know which novels I should read before I die, according to the opinions of experts and book lovers. So I started a project that took me (and my assistant) several weeks to complete. You can now download the results.

In other words, here is my Christmas gift for you:

THE ULTIMATE TOP 200 BEST NOVELS, EVER
(226 Books to Read Before You Die)

For your convenience, I have linked each title to its Amazon page. Each author is linked to the author’s Wikipedia page, and the publication year is linked to the book’s page on GoodReads.

I hope you enjoy reviewing this list as much as I enjoyed making it. If you find any errors or mistakes, or if you know a way to improve this list, please feel free to let me know.

The post The Ultimate Top 200 Best Novels, Ever appeared first on NOOP.NL.

Categories: Project Management

Has Amazon Overthrown Apple as the 'I Hate Buttons' Leader?

 

Steve Jobs is notorious for hating buttons. Here's Jobs explaining the foulness of buttons during his famous iPhone introduction:

What's wrong with their [other phones] user interface? The problem with them is really sort of in the bottom 40. They all have these keyboard that are there whether you need them or not to be there. And they all have these control buttons that are fixed in plastic and are the same for every application. Well every application wants a slightly different user interface, a slightly optimized set of buttons just for it. And what happens if you think of a great idea six months from now? You can't run around and add a button to these things. They're already shipped. So what do you do? It doesn't work because the buttons and the controls can't change.

The iPhone solved the button problem with a new multi-touch screen and by using your finger as the pointing device (not a nasty nasty stylus). We all know how this works now, but it was novel back in the olden days.

The iPhone was one of three new products based on revolutionary user interface development: the mouse and the Macintosh; the click-wheel and the iPod; multi-touch and the iPhone.

 

UI innovation is not enough on its own. Creating a new product category requires a combination of advanced hardware and new supporting software. The Mac was a completely new everything. The iPod paired with iTunes. And the iPhone leveraged OS X, iTunes, and a lot of very smart code for dealing with touch.

That's the history lesson.

Something curious has happened. Amazon. Amazon has escaped the land of misfit phones and has developed three brilliant new products based on revolutionary UIs and sophisticated software systems:

Categories: Architecture

Logically Fallacious Friday

Herding Cats - Glen Alleman - Mon, 12/19/2016 - 01:05

20 Logical Fallacy Found in Agile and related topics

  1. Appeal to ignorance – Thinking a claim is true (or false) because it can’t be proven true (or false).
  2. Ad hominem – Making a personal attack against the person saying the argument, rather than directly addressing the issue.
  3. Strawman fallacy – Misrepresenting or exaggerating another person’s argument to make it easier to attack.
  4. Bandwagon fallacy – Thinking an argument must be true because it’s popular.
  5. Naturalistic fallacy – Believing something is good or beneficial just because it’s natural.
  6. Cherry picking – Only choosing a few examples that support your argument, rather than looking at the full picture.
  7. False dilemma – Thinking there are only two possibilities when there may be other alternatives you haven’t considered.
  8. Begging the question – Making an argument that something is true by repeating the same thing in different words.
  9. Appeal to tradition – Believing something is right just because it’s been done around for a really long time.
  10. Appeal to emotions – Trying to persuade someone by manipulating their emotions – such as fear, anger, or ridicule – rather than making a rational case.
  11. Shifting the burden of proof – Thinking instead of proving your claim is true, the other person has to prove it’s false.
  12. Appeal to authority – Believing just because an authority or “expert” believes something then it must be true.
  13. Red herring – When you change the subject to a topic that’s easier to attack.
  14. Slippery slope – Taking an argument to an exaggerated extreme. “If we let A happen, then Z will happen.”
  15. Correlation proves causation – Believing that just because two things happen at the same time, that one must have caused the other.
  16. Anecdotal evidence – Thinking that just because something applies to you that it must be true for most people.
  17. Equivocation – Using two different meanings of a word to prove your argument.
  18. Nonsequitur – Implying a logical connection between two things that doesn’t exist. “It doesn’t follow…”
  19. Ecological fallacy – Making an assumption about a specific person based on general tendencies within a group they belong to.
  20. Fallacy fallacy – Thinking just because a claim follows a logical fallacy that it must be false.
Categories: Project Management

SPaMCAST 422 – Philip Lew, Agile Risk Management and Quality

SPaMCAST Logo

http://www.spamcast.net

Listen Now
Subscribe on iTunes
Check out the podcast on Google Play Music

The Software Process and Measurement Cast 422 features our interview with Phil Lew.  Phil and I talked about the topic of Agile risk management.  We explored how risk can be managed in Agile projects and the barriers to effective risk management.  As important as the mechanics of Agile risk management are, Philip and I also explored the relationship between quality and risk, which may be more important in the long run.

Phil’s Bio

Philip Lew is the CEO at XBOSoft. XBOSoft’s software QA and software testing services help their clients deliver products to market faster and with higher quality; an ever increasing challenge as software becomes more complex and platforms increase. As a Corporate Executive, Development Manager, Product Manager and Software Engineer, Philip has managed teams to tackle broken processes, develop solutions to difficult problems, and coached others be leaders, managers, and experts. He leverages his academic background in operations research, industrial engineering, and computer science combined with hands-on work experience with programming, predictive modeling and algorithm development to work with clients and colleagues around the world. For kicks, he rides a bicycle and travels the world to quench his thirst for exploration and learning.

Contact Data
LinkedIn: https://www.linkedin.com/in/philiplew
Email: philiplew@gmail.com
Twitter: @philiplew

Re-Read Saturday News

In this week’s re-read of The Five Dysfunctions of a Team  by Patrick Lencioni (Jossey-Bass, Copyright 2002, 33rd printing), we conclude Part Four with the sections titled Harvest, Gut Check, and March. I suspect we have 2 or 3 weeks left before moving to the next book, BUT we still have a number of ideas to extract from this book.

If you are new to the re-read series buy a copy and bo back to week one and read along!

I am running a poll to decide between Carol Dweck’s Mindset, Thinking Fast and Slow (Daniel Kahneman) and Flow (Mihaly Csikszentmihalyi).  I have also had suggestions (in the other category) for Originals: How Non-Conformists Move the World (Adam Grant) and Management Lessons from Taiichi Ohno: What Every Leader Can Learn from the Man by Takehiko Harada.  I would like your opinion! (see the poll below)

Take Our Poll (function(d,c,j){if(!d.getElementById(j)){var pd=d.createElement(c),s;pd.id=j;pd.src='https://s1.wp.com/wp-content/mu-plugins/shortcodes/js/polldaddy-shortcode.js';s=d.getElementsByTagName(c)[0];s.parentNode.insertBefore(pd,s);} else if(typeof jQuery !=='undefined')jQuery(d.body).trigger('pd-script-load');}(document,'script','pd-polldaddy-loader'));

Takeaways from this week include:

  •  Progress is rarely linear (think two steps forward and one step back).
  •  Good teams can debate and then be friends.
  •  The good of the organization is important (Spock got it right).

Visit the Software Process and Measurement Cast blog to participate in this and previous re-reads.

Next SPaMCAST

The Software Process and Measurement Cast 423 will post on Christmas Day.  SPaMCAST 423 will build on our interview from this week with Mr. Lew and discuss measuring quality.  Quality is related to risk, productivity, and customer satisfaction.  We will also have columns from Kim Pries, Jon M Quigley, and Jeremy Berriault. A big show to end the year!

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 422 - Philip Lew, Agile Risk Management and Quality

Software Process and Measurement Cast - Sun, 12/18/2016 - 23:00

The Software Process and Measurement Cast 422 features our interview with Phil Lew.  Phil and I talked about the topic of Agile risk management.  We explored how risk can be managed in Agile projects and the barriers to effective risk management.  As important as the mechanics of Agile risk management are, Philip and I also explored the relationship between quality and risk, which may be more important in the long run.

Phil’s Bio

Philip Lew is the CEO at XBOSoft. XBOSoft’s software QA and software testing services help their clients deliver products to market faster and with higher quality; an ever increasing challenge as software becomes more complex and platforms increase. As a Corporate Executive, Development Manager, Product Manager and Software Engineer, Philip has managed teams to tackle broken processes, develop solutions to difficult problems, and coached others be leaders, managers, and experts. He leverages his academic background in operations research, industrial engineering, and computer science combined with hands-on work experience with programming, predictive modeling and algorithm development to work with clients and colleagues around the world. For kicks, he rides a bicycle and travels the world to quench his thirst for exploration and learning.

Contact Data
LinkedIn: https://www.linkedin.com/in/philiplew
Email: philiplew@gmail.com
Twitter: @philiplew

Re-Read Saturday News

In this week’s re-read of The Five Dysfunctions of a Team  by Patrick Lencioni (Jossey-Bass, Copyright 2002, 33rd printing), we conclude Part Four with the sections titled Harvest, Gut Check, and March. I suspect we have 2 or 3 weeks left before moving to the next book, BUT we still have a number of ideas to extract from this book.

If you are new to the re-read series buy a copy and bo back to week one and read along!

I am running a poll to decide between Carol Dweck’s Mindset, Thinking Fast and Slow (Daniel Kahneman) and Flow (Mihaly Csikszentmihalyi).  I have also had suggestions (in the other category) for Originals: How Non-Conformists Move the World (Adam Grant) and Management Lessons from Taiichi Ohno: What Every Leader Can Learn from the Man by Takehiko Harada.  I would like your opinion! (see the poll below)

[polldaddy poll=9605629]

Takeaways from this week include:

  •  Progress is rarely linear (think two steps forward and one step back).
  •  Good teams can debate and then be friends.
  •  The good of the organization is important (Spock got it right).

Visit the Software Process and Measurement Cast blog to participate in this and previous re-reads.

Next SPaMCAST

The Software Process and Measurement Cast 423 will post on Christmas Day.  SPaMCAST 423 will build on our interview from this week with Mr. Lew and discuss measuring quality.  Quality is related to risk, productivity, and customer satisfaction.  We will also have columns from Kim Pries, Jon M Quigley, and Jeremy Berriault. A big show to end the year!

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

An alternative AngularJS test runner

Xebia Blog - Sun, 12/18/2016 - 12:13
When building an Angular application, we usually stick to the suggested or auto-generated solution of unit testing; the Karma test runner and server, the Jasmine testing framework, and PhantomJS as the environment to run it all in. In this blog post I'll explain how this is rather silly, and will provide an alternative and lightweight

Five Dysfunctions of a Team, Patrick Lencioni: Re-Read Week 12

Five Dysfunctions of a Team

Five Dysfunctions of a Team

In this week’s re-read of The Five Dysfunctions of a Team by Patrick Lencioni (Jossey-Bass, Copyright 2002, 33rd printing), we address section four with the sections titled The Harvest, Gut Check, and The March.  These three sections complete and sum up The Fable.  I am planning three more weeks on this book.  

Which means we need to choose a new book. We have a poll going for the next book. I have identified three books, including re-reading Carol Dweck’s Mindset, Thinking Fast and Slow (Daniel Kahneman) and Flow (Mihaly Csikszentmihalyi).   I have also had suggestions (in the other category) for Originals: How Non-Conformists Move the World (Adam Grant) and Management Lessons from Taiichi Ohno: What Every Leader Can Learn from the Man by Takehiko Harada.  I would like your opinion.

Take Our Poll (function(d,c,j){if(!d.getElementById(j)){var pd=d.createElement(c),s;pd.id=j;pd.src='https://s1.wp.com/wp-content/mu-plugins/shortcodes/js/polldaddy-shortcode.js';s=d.getElementsByTagName(c)[0];s.parentNode.insertBefore(pd,s);} else if(typeof jQuery !=='undefined')jQuery(d.body).trigger('pd-script-load');}(document,'script','pd-polldaddy-loader'));

If you are new to the re-read series buy a copy of the current book and go back to week one and read along!

Part Four

In this section, Lencioni completes The Fable and sets the book up for a final discussion of the model.

Harvest

This section outlines the final offsite with the team.  I use the term “team” to express the evolution from a group of individuals into a more cohesive unit.  In the book, two markers show that the team has becomes more of a unit.  During the meetings, more laughter can be heard even after contentious debate, and during breaks the team members stayed together rather heading back to their rooms or places unknown. Lencioni also uses this section to remind readers of the overall model (shown below) which will be reviewed in detail during the last few weeks of the re-read.

Regardless of progress, this section reminds us that all teams struggle and tend not to progress in a straight line.  Even the best teams I have been part of have struggled with some topics or decisions.  Often team struggles generate short-term trust issues which need to quickly dealt with or the team can fall apart.  Lencioni indicates that the team (and by extension the team leader) must have the discipline to ensure the dysfunctions do not filter back into the team’s behavior patterns.

Gut check

The firm, Green Banana, that Nick had suggested DecsionTech buy earlier in the story is back; however, this time they are pursuing an unsolicited offer to acquire DecsionTech.  The team rejects the offer seeing a better future working together. Mikey’s replacement, the new marketing guy, is amazed at how energetically the team debated the decision about Green Banana and other topics.  The team held each other accountable and ended with clear decisions without any animus.  Lencioni uses the Gut Check section to highlight the behavioral differences compared to earlier in the book.  Teams that address the dysfunctions can debate and hold each other accountable without damaging relationships so that they end up with better decisions.

The March

This section completes The Fable.  In my mind, this is the section where everyone lives semi-happily ever after.  Over the next years, Lencioni describes an organization where things are better, but not perfect.  In this section, DecisionTech is tied for the top spot in the industry but wants to be on top. Kathryn rearranges her staff to make the executive team more compact.  Jeff suggests that he work for Nick (who is the new COO) rather than continue as a direct report to make the team more streamlined.  I am reminded of Dumas and the Three Musketeers, “all for one and one for all.”  While I think The Fable ends a tad contritely – I wanted lasers and starships – it is good to remember that everyone (includes those with stock options) should be working for the good of the organization, not just the quick payout. 

Three Key takeaways:

  1.   Progress is rarely linear (think two steps forward and one step back).
  2.   Good teams can debate and then be friends.
  3.   The good of the organization is important (Spock got it right).

Previous Installments in the re-read of  The Five Dysfunctions of a Team by Patrick Lencioni:

Week 1 – Introduction through Observations

Week 2 – The Staff through the End Run

Week 3 – Drawing the Line though Pushing Back

Week 4 – Entering Danger though Rebound

Week 5 – Awareness through Goals

Week 6 – Deep Tissue through Exhibition

Week 7 – Film Noir through Application

Week 8 – On-site through Fireworks

Week 9 – Leaks through Plowing On

Week 10 – Accountability through The Talk

Week 11 – Last Stand through Rally

 


Categories: Process Management

Games authentication adopting Google Sign-In API

Android Developers Blog - Fri, 12/16/2016 - 22:45

Posted by Clayton Wilkinson, Developer Platform Engineer

Some changes are coming to Play Game Services in early 2017:

Changes to Google API Client building

In November, we announced an update to Google Sign-In API. Play Game Services is being updated to use Google Sign-In API for authentication. The advantages are:

  • Games and Sign-In in same client connection.
  • Single API for getting Auth code to send to backend servers.

This change unifies the Google Sign-in and the Games API Sign-in, so there are updates to how to build the Google API Client:

// Defaults to Games Lite scope, no server component
  GoogleSignInOptions gso = new
     GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).build();

// OR for apps with a server component
   GoogleSignInOptions gso = new
     GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
         .requestServerAuthCode(SERVER_CLIENT_ID)
         .build();

// OR for developers who need real user Identity
  GoogleSignInOptions gso = new
     GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
         .requestEmail()
         .build();

// Build the api client.
     mApiClient = new GoogleApiClient.Builder(this)
                .addApi(Games.API)
                .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
                .addConnectionCallbacks(this)
                .build();
    }

 @Override
    public void onConnected(Bundle connectionHint) {
        if (mApiClient.hasConnectedApi(Games.API)) {
            Auth.GoogleSignInApi.silentSignIn(mApiClient).setResultCallback(
                   new ResultCallback() {
                       @Override
                       public void onResult(GoogleSignInResult googleSignInResult) {
                           // In this case, we are sure the result is a success.
                           GoogleSignInAccount acct = 
                              googleSignInResult.getGoogleSignInAccount());
 
                          // For Games with a server, send the auth code to your server.
                          String serverAuthCode = signInAccount.getServerAuthCode();
 
                         // Use the API client as normal.
                        Player player = Games.API.getCurrentPlayer(mApiClient);
                       }
                   }
            );
        } else {
            onSignedOut();
        }
    }
Account creation within iOS is no longer supported
  • Currently, there is no support for new players to create a Play Games account on iOS. Additionally, the Google+ integration has been removed from iOS. As a result "social" APIs will return result codes indicating success, but return empty lists. This includes the "standard" UIs for leaderboards and multiplayer invitations.
Google+ is no longer integrated
  • Announced last year, Games is decoupled from Google+ during this transition. As a result the public APIs for getting connected players via circles stopped working, but the standard UIs for multiplayer invitations and social leaderboards continued to work. Starting from February 2017, the standard UIs will also not display the Social graph results as Google+ data becomes inaccessible. This will affect multiplayer games, social leaderboards, and gifts API on Android. The effect will be that these APIs will return successfully, but with an empty list of players.

List of APIs that are deprecated by removing Google+ integration (and their C++ equivalents):

  1. Games.Players.getPlayerSearchIntent()
  2. Games.Players.loadConnectedPlayers()
  3. Games.Players.loadInvitablePlayers()
  4. The value LeaderboardVariant.COLLECTION_SOCIAL
  5. Invitations.loadInvitations()
  6. RealtimeMultiplayer.getSelectOpponentsIntent()
  7. TurnBasedMultiplayer.getSelectOpponentsIntent()
  8. All methods in the Requests package.

We realize this is a large change, but moving forward Play Game Services are much better aligned with the rest of the Mobile platform from Google and will lead to better developer experience for Android game developers.

Categories: Programming

Stuff The Internet Says On Scalability For December 16th, 2016

Hey, it's HighScalability time:

 

This is the entire internet. In 1973! David Newbury found the map going through his dad's old papers.
If you like this sort of Stuff then please support me on Patreon.
  • 2.5 billion+: smartphones on earth; $36,000: loss making a VR game; $1 million: spent playing Game of War; 2000 terabytes: saved downloading Font Awesome's fonts per day; 14TB: new hard drives; 19: Systems We Love talks; 4,600Mbps: new 802.11ad Wi-Fi standard; 

  • Quotable Quotes:
    • Thomas Friedman: [John] Doerr immediately volunteered to start a fund that would support creation of applications for this device by third-party developers, but Jobs wasn’t interested at the time. He didn’t want outsiders messing with his elegant phone.
    • Fastly: For every problem in computer networking there is a closed-box solution that offers the correct abstraction at the wrong cost. 
    • ben stopford: The Data Dichotomy. Data systems are about exposing data. Services are about hiding it.
    • Ernie: just as Amazon invaded the CDN ecosystem with CloudFront and S3, CDNs are going to invade the cloud compute space of AWS.
    • The Attention Merchants: When not chronicling death in its many forms, Bennett loved to gain attention for his paper by hurling insults and starting fights. Once he managed in a single issue to insult seven rival papers and their editors. He was perhaps the media’s first bona fide “troll.” As with contemporary trolls, Bennett’s insults were not clever.
    • @swardley: "Serving 2.1 million API requests for $11" not bad at all. My company site used to cost £19 pcm
    • hibikir: I don't know about Uber, but I've worked at a lot of places that had sensitive data. A common patterns is to fail to treat employees like attackers, and protect data in ways that are very beatable by a motivated employee. 
    • @davecheney: OH: lambdas are stored procedures for millenials.
    • @jamesurquhart: This. Containers will play a huge role in low-level service deployments, but not user facing (e.g. “consumer”) app deployments (5-7 years).
    • theptip: Geo-redundancy seems like a luxury, until your entire site comes down due to a datacenter-level outage. (E.g. the power goes down, or someone cuts the internet lines when doing construction work on the street outside).
    • Resilience Thinking: The ruling paradigm-that we can optimize components of a system in isolation of the rest of the system-is proving inadequate to deal with the dynamic complexity of the real world.
    • Eliezer Steinbock: Disconnect users when they’ve just left their tab open. It’s so simple to do and saves precious resources
    • @ieatkillerbees: In 20 years of engineering I've never said, "thank goodness we hired someone who can reverse a b tree on a whiteboard while strangers watch"
    • Rushkoff: I think as people realize they can’t get jobs in this highly centralized digital economy, as companies realize that it might be better to beat them than join them, I think we will see the retrieval of some of these earlier networking values.
    • Darren Cibis: I think BigQuery is the better product at this stage, however, it’s had a big head start over Athena which has a lot of catching up to do.
    • Fastly: Over the span of a day, IoT devices were probed for vulnerabilities 800 times per hour by attackers from across the globe.
    • Quantum Gravity Research Could Unearth the True Nature of Time: somehow, you can emerge time from timeless degrees of freedom using entanglement.
    • @SystemsWeLove: "You can think of the OS as the bouncer at Club CPU: if a VIP comes in and buys up the place, you're out." -- @arunthomas #systemswelove
    • Erik Darling: When starting to index temp tables, I usually start with a clustered index, and potentially add nonclustered indexes later if performance isn’t where I want it to be.
    • Customers Don’t Give a Shit About Your Data Centers: My youngest daughter co-developed an Alexa skill called PotterHead. By taking advantage of the templates and how-to instructions, the skill was designed, developed, tested, and deployed within 24 hours — without a data center or any knowledge of ansible, git, jenkins, chef, or kubernetes.

  • In summary: mobile is [still] eating the world, everything is changing, nobody knows where it will all end up. And people are scared. Interesting observation on the new scale: Facebook, Amazon, Apple, and Google are 10x bigger than Microsoft & Intel when they were changing the world. 

  • Bigger is not always better when it comes to datacenters. AWS re:Invent 2016: Tuesday Night Live with James Hamilton. Amazon could easily build 200 megawatt (MW) facilities, yet they choose to build mostly 32MW facilities. Why? The data tells them to. What does the data say? The law of diminishing returns. The cost savings don't justify having a larger failure domain. When you start small and scale up a datacenter you get really big gains in cost advantage. As you get bigger and bigger it's a logarithm. The gains of going bigger are relatively small. The negative gain of a big datacenter is linear. If you have a 32MW datacenter tha's about 80k servers it's bad if it goes down, but it can be handled so that it's unnoticeable. If a datacenter with 500K server goes down the amount of network traffic needed to heal all the problems is difficult to handle.

Don't miss all that the Internet has to say on Scalability, click below and become eventually consistent with all scalability knowledge (which means this post has many more items to read so please keep on reading)...

Categories: Architecture

Quote of the Day

Herding Cats - Glen Alleman - Fri, 12/16/2016 - 17:39

What can asserted can be dismissed

Those making the original assertion need to bring evidence. Without that evidence, those challenging the assertion have no need to bring evidence. For those making the assertation to ask for evidence as to why their conjecture is correct is the Burden of Proof fallacy, which is common when the original conjecture has no basis in principle, fact, or experience - it's just a conjecture. All attempts by the original assertion author to invert this fallacy should be strongly rejected, since it shows a lack of understanding of who ideas are put forth and tested in the larger marketplace of ideas.

Related articles Making Conjectures Without Testable Outcomes Are Estimates Really The Smell of Dysfunction? Why Guessing is not Estimating and Estimating is not Guessing Architecture -Center ERP Systems in the Manufacturing Domain IT Risk Management
Categories: Project Management

Post-Agile Age: A Lack of Systems Thinking/Management

 

The Agile movement was built on a premise that skilled, motivated individuals working on teams could self-organize and self-manage in order to deliver value and make their customers happy. Acceptance of this premise means that leaders, who are generally already successful, need to change how they make decisions on a day-to-day basis. Changing how successful leaders and managers work is hard.  Some organizations and leaders have been able to change how they worked and embraced a systems-thinking view of their organization. This change has shifted significant levels of decision making from middle management into the team. The change in the approach to thinking and decision-making Agile is based on several criteria:

  1.  Cross-functional teams.  Scrum, the most commonly adopted Agile framework, demands that functionality is potentially implementable at the end of each sprint (or iteration). In order to transform a story into implementable code requires a range of skills.  Teams of all coders, business analysts, database analysts or testers can’t transform a user story into code that can be put into production at the end of an iteration.  Cross-functional teams are often at odds with organizations that have organized teams by specialties and then move work around in a matrix or factory fashion.  For example, in many organizations coders code and once coding is done pass the code to the testing team.
  2.  Diverse perspectives. Much has been written on the need for teams to have a diverse perspective.  In many cases, significant progress has been made on this front.  The gotcha is that diverse perspectives include not only different technical specialties and backgrounds but also business acumen.  This last item has been a stumbling block with the rise of the proxy product owner who is often a business analyst or someone in the technology hierarchy without access to internal and external customer knowledge because of the barrier between development and the business.
  3.  Using systems thinking to guide work. Organizations are a series of interlocking systems. The software is generally an integral cog in a bigger picture. Systems thinking is an approach to problem-solving that emphasizes the whole process, including the environment the system, like software development, operates within.  Organizing work to maximize the flow through the system increases value to the entire organization.  Improving any specific step without having a few view of the whole can lead to improvements in a step that to do not translate to the bottom line (this is called local maximization).  Often software development offers a constrained example of a breakdown of systems thinking in which specialist such as coders, testers, and business analysts each tries to make their internal processes more efficient without reference to the bigger picture.   This lack of systems thinking is typically a reflection of how people are organized and how they are incented.  Organization and incentive plans, while not carved in stone, are tied to an organizational culture which makes them difficult to change.
  4.  Servant Leadership (ish). A servant leader is the representative of a goal; a servant leader draws followers to the goal and then helps them to improve. The term was popularized in the 1970’s by Robert Greenleaf and has evolved into a current definition which focuses on helping the team/followers to improve.  Servant leadership is a very powerful tool to help unlock the power of teams and therefore is a core attribute of effective Agile.  The problem is that servant leadership is difficult to implement and often at odds with the hierarchical management structures common in the corporate environment.  

The Agile movement has moved many early adopters away from solely relying on eminence-based leadership, which is associated with seniority and hierarchy as is normal in command and control environments. Much of the easy change is over and a more pragmatic and slow evolution that is wrestling with changing organizations cultures that are less driven to change is now occurring.  The shift away from the loud insistence of team-based, servant leadership is a direct signal that Agile as a movement has run its course.  Just because the movement is over does not mean that systems thinking and Agile leadership styles will not continue to slowly penetrate organizations.  They will continue to penetrate but only as they overcome culture, organizational hierarchies, incentive plans and lack of business involvement which will be a long term grind!

 

Planned essays in Post Agile Age Arc include:

  1. Post Agile Age: The Movement Is Dead
  2. Post Agile Age: Drivers of the End of the Agile Movement and Method Lemmings
  3. Proscriptive Norms
  4. A Brand Driven Ecosystems
  5. A Lack of Systems Thinking/Management (Current)
  6. The Age of Aquarius (Something Better is Beginning)

Categories: Process Management

Start with a line, let the planet complete the picture

Google Code Blog - Thu, 12/15/2016 - 19:03
Jeff Nusz, Data Arts Team

Take a break this holiday season and paint with satellite images of the Earth through a new experiment called Land Lines. The project lets you explore Google Earth images in unexpected ways through gesture. Earth provides the palette; your fingers, the paintbrush.
There are two ways to explore–drag or draw. "Draw" to find satellite images that match your every line. "Drag" to create an infinite line of connected rivers, highways and coastlines. Here's a quick demo:


Everything runs in real time in your phone's web browser without any servers. The responsiveness of the project is a result of using machine learning, data optimization, and vantage-point trees to analyze the images and store that data.

We preprocessed the images using a combination of Open CV's Structured Forests machine learning based edge detection and ImageJ's Ridge Detection library. This culled the initial dataset of over fifty thousand high res images down to just a few thousand selected for their presence of lines, as shown in the example below. What ordinarily would take days was completed in just a few hours.


Example output from the line detection processing. The dominant line is highlighted in red while secondary lines are highlighted in green.

In the drawing exploration, we stored the resulting data in a vantage-point tree. This enabled us to efficiently run gesture matching against all the images and have results appear in milliseconds.


An early example of gesture matching using vantage point trees, where the drawn input is on the right and the closest results on the left.


Another example of user gesture analysis, where the drawn input is on the right and the closest results on the left.

Built in collaboration with Zach Lieberman, Land Lines is an experiment in big visual data that explores themes of connection. We tried several machine learning libraries in our development process. The learnings from that experience can be found in the case study, while the project code is available open-source on Git Hub. Start with a line at g.co/landlines.
Categories: Programming

The Myth of Standish Reports - Update Number 2

Herding Cats - Glen Alleman - Thu, 12/15/2016 - 16:39

The Standish Report is raising its head again in the Agile presentations I've seen recently at conferences. Forgetting for the moment all the past "criticisms" of Standish...

The numbers in the report are still being used by "agile thought leaders" to establish the basis for their proffered solutions. Forgetting even more that "agile" is a bottom-up software development solution. And that most of the issues with large IT programs are leadership at the senior executive level, externalities from the market place at large, and general inability to connect the dots between business strategy and business execution.

And of late by the #NoEstimates thought leader to further their unsubstantiated conjecture that decisions can be made while spending other people's money in the presence of uncertainty.

Further is the complete lack of transparency in the statistical numbers. But here an alternative on how to report IT project success.

IT Dashboard
When you go here you'll see 61% are green, 33% "need attention," and 4.84% have "significant concerns."

The definitions of "needs attention" and "significant concerns" is provided in terms of mission suitability rather than simple - and simple-minded cost and schedule.

So it's time once more to move beyond the worn out red herrings and start to address how to Increase the Probability of Project Success with processes and tools beyond just applying Scrum to the development team.

Willian pointed out the bands for measuring success.  http://it.usaspending.gov/faq-agencies

Related articles Essential Reading List for Managing Other People's Money Three Increasingly Mature Views of Estimate Making in IT Projects I Think You'll Find It's a Bit More Complicated Than That
Categories: Project Management

The Customer Pain Map

Xebia Blog - Thu, 12/15/2016 - 15:28
“Ouch, that really hurt.” “What was it?” my sparring partner replied. “The choke or the overstretching of the elbow joint?” “The quick throw, I had no time for proper fall breaking.” I replied. It happens in our sport, we try and experiment and try to find the best way to perform a technique. The goal

Linking Animations to Scroll Position in React Native

Xebia Blog - Thu, 12/15/2016 - 11:37
When you want to link a custom animation to the scroll position in a ScrollView, like in the card example below, you are in for some bad performance on low end devices. Let’s figure out why and learn how to make it buttery smooth. Read more

SE-Radio Episode 277: Gil Tene on Tail Latency

Gil Tene joins Robert Blumen for a discussion of tail latency. What is latency? What is “tail latency”? Why are the upper percentiles of latency more relevant to humans? How is human interaction with an application influenced by tail latency? What are the economics of tail latency? What are the origins of tail latency within […]
Categories: Programming

Formatting text with the Google Slides API

Google Code Blog - Wed, 12/14/2016 - 19:18
Originally posted on G Suite Developers blog

Posted by Wesley Chun (@wescpy), Developer Advocate, G Suite

It's common knowledge that presentations utilize a set of images to impart ideas to the audience. As a result, one of the best practices for creating great slide decks is to minimize the overall amount of text. It means that if you do have text in a presentation, the (few) words you use must have higher impact and be visually appealing. This is even more true when the slides are generated by a software application, say using the Google Slides API, rather than being crafted by hand.

The G Suite team recently launched the first Slides API, opening up a whole new category of applications. Since then, we've published several videos to help you realize some of those possibilities, showing you how to replace text and images in slides as well as how to generate slides from spreadsheet data. To round out this trifecta of key API use cases, we're adding text formatting to the conversation.

Developers manipulate text in Google Slides by sending API requests. Similar to the Google Sheets API, these requests come in the form of JSON payloads sent to the API's batchUpdate() method. Here's the JavaScript for inserting text in some shape (shapeID) on a slide:

{
"insertText": {
"objectId": shapeID,
"text": "Hello World!\n"
}

In the video, developers learn that writing text, such as the request above, is less complex than reading or formatting because both the latter require developers to know how text on a slide is structured. Notice for writing that just the copy, and optionally an index, are all that's required. (That index defaults to zero if not provided.)

Assuming "Hello World!" has been successfully inserted in a shape on a slide, a request to bold just the "Hello" looks like this:

{
"updateTextStyle": {
"objectId": shapeID,
"style": {
"bold": true
},
"textRange": {
"type": "FIXED_RANGE",
"startIndex": 0,
"endIndex": 5
},
"fields": "bold"
}
If you've got at least one request, like the ones above, in an array named requests, you'd ask the API to execute them with just one call to the API, which in Python looks like this (assuming SLIDES is your service endpoint and the slide deck ID is deckID):
SLIDES.presentations().batchUpdate(presentationId=deckID,
body=requests).execute()

To better understand text structure & styling in Google Slides, check out the text concepts guidein the documentation. For a detailed look at the complete code sample featured in the DevByte, check out the deep dive post. To see more samples for common API operations, take a look at this page. We hope the videos and all these developer resources help you create that next great app that automates producing highly impactful presentations for your users!

Categories: Programming