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!
Software Development Blogs: Programming, Software Testing, Agile Project Management
if you are not afraid to read more than one page to be a smarter software developer, software tester or project manager!
Hey, it's HighScalability time:
Hacking recognition systems with fashion.
If you like this sort of Stuff then please support me on Patreon.
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)...
For all of us who have served, are serving, and those who gave their lives in service of our countryÂ - honor them today
I’m writing this the day after Donald Trump won the election to become the 45th President of the United States. It is a day many of us are sure to remember.
Others have written enough about Trump’s behaviors, ethics, and his style of communication. There is nothing for me to add. Maybe the best way of dealing with the current situation (and the next four years) is to reflect on our own personal values. Criticizing others is easy. But what about being more critical of ourselves?
So… I had a good look at myself, the things that motivate me, and the aspects of my work ethic that I value above everything else. After extensive deliberation, I came up with five core values. I call them my IICCC (double I, triple C):
Independence: I do everything to stay free and autonomous
Integrity: I treat everyone fairly and equally, without discrimination
Curiosity: Exploring and understanding the world has my highest priority
Creativity: Making new things and being innovative is equally important
Competence: When I do work I enjoy, I aim to become very good at it
That’s it! Those are my new core values.
Of course, defining your values is the easy part. The hard part is living them. That will require regular reflection and maybe some rewards for my good behaviors. Some chocolate cookies perhaps.
Let’s hope that Donald Trump is doing a similar exercise.
(This post is part of my soon-to-be-announced Agility Scales project.)
(c)2015 Nichole Burrows, Creative Commons 2.0
A Scrum of Scrums (SoS) is a mechanism to coordinate a group of teams so that they act as a team of teams.Â Powerful tools often have side effects that, if not countered, can do more harm than good. There are several âanti-patternsâ that organizations adopt that negatively impact the value a SoS can deliver. In Scaling Agile: Scrum of Scrums: Anti-patterns PartÂ 1 we explored The Soapbox, The Blame Game and Surrogate Project Manager, which three typical anti-patterns. Two other common anti-patterns are the Three Bears and Pyramid syndromes.
The Three Bears Syndrome. In the childrenâs version of the classic fairy tale, Goldilocks broke into the three bearâs house and sampled three bowls of porridge. One bowl was too hot, one bowl was too cold and one was just right. Many organizations determine what the right cadence is for SoS meetings for the organization regardless of context. The problem is that context is really important. Much like the story of The Three Bears, having too many meetings steals time from getting work done, while too few SoS meetings can keep work from being accomplished by delaying issue resolution and decisions. When the number of meetings is just right, work flows through the process with minimal delay caused by the need to wait for coordination or decisions. The most common version of this anti-pattern is the required single daily SoS. Many times organizations rigorously require SoS meetings on a daily basis because they believe that what is good for the daily stand-up/Scrum meeting is good for the SoS. Daily sounds like a good cadence,Â but some projects, for example projects with a handful of teams whose work is only loosely coupled, might not need a daily SoS. Alternately, projects with a large number of very tightly coupled teams late in the development cycle might need multiple SoS meetings on a daily basis. Another variation of this anti-pattern is seen in organizations that reduce the SoS cadence (usually coupled with lengthening the duration the meetings when they do occur) for projects with distributed teams. In real life, this is the opposite of what is needed, the complexity of projects with distributed teams typically demands more coordination, not less.
One possible solution is to empower the SoS to regulate itself.
Pyramid Syndrome. One of the more exciting features of the Scrum of Scrums technique is the ability to scale up the meetings up like a pyramid or a hierarchy. For example, a REALLY big project might have 10 to 20 teams. 20 teams with 7 members (Scrum teams are typically 5 â 9 people) which would equate to approximately 140 team members. 140 overall team members is still below the common interpretation of Dunbar’s Number. SoS meetings should be limited to the same size as a typical Scrum team (5-9) with smaller groups typically being better to ensure quick coordination. A project with 20 teams using SoS meetings of 7 people would require 3 SoS meetings for the teams and a 4th with a representative from each of the team-level SoS meetings. In some cases the ability to create layers of SoS meetings allows organizations to believe they can create megaprojects with hundreds of team members. Megaprojects and programs leveraging normal SoS techniques would need many layers of SoS meetings. Each meeting takes time and requires shuttling information between teams (with potential fidelity loss). A few years ago I observed an organization in which the some SoS attendees lost several hours a day to SoS meetings. Projects requiring SoS meeting of three or more levels are too large. One possible solution is simply to split the project or program into smaller chunks.
The Three Bears and Pyramid Syndromes are two additional anti-patterns that can plague Scrum of Scrums. None of the five anti-patterns we have explored are insurmountable. The solution for problems with how SoS meetings are work generally first requires diagnosing the problem and then coaching to help replace bad behaviors with good behaviors.
By Jamal Eason, Product Manager, Android
Android Studio 2.2 is available to download today. Previewed at Google I/O 2016, Android Studio 2.2 is the latest release of our IDE used by millions of Android developers around the world.
Packed with enhancements, this release has three major themes: speed, smarts, and Android platform support. Develop faster with features such as the new Layout Editor, which makes creating an app user interface quick and intuitive. Develop smarter with our new APK analyzer, enhanced Layout Inspector, expanded code analysis, IntelliJâs 2016.1.3 features and much more. Lastly, as the official IDE for Android app development, Android Studio 2.2 includes support for all the latest developer features in Android 7.0 Nougat, like code completion to help you add Android platform features like Multi-Window support, Quick Settings API, or the redesigned Notifications, and of course, the built-in Android Emulator to test them all out.
In this release, we evolved the Android Frameworks and the IDE together to create the Constraint Layout. This powerful new layout manager helps you design large and complex layouts in a flat and streamlined hierarchy. The ConstraintLayout integrates into your app like a standard Android support library, and was built in parallel with the new Layout Editor.
Android Studio 2.2 includes 20+ new features across every major phase of the development process: design, develop, build, & test. From designing UIs with the new ConstraintLayout, to developing C++ code with the Android NDK, to building with the latest Jack compliers, to creating Espresso test cases for your app, Android Studio 2.2 is the update you do not want to miss. Hereâs more detail on some of the top highlights:
C++ Code Editing & CMake Support
Sample Code Menu
Enable Instant Run
Build Cache Setting
Android Emulator Virtual Sensors
To recap, Android Studio 2.2 includes these major features and more:Design
If you are using a previous version of Android Studio, you can check for updates on the Stable channel from the navigation menu (Help â Check for Update [Windows/Linux] , Android Studio â Check for Updates [OS X]). You can also download Android Studio 2.2 from the official download page. To take advantage of all the new features and improvements in Android Studio, you should also update to the Android Gradle plugin version to 2.2.0 in your current app project.
We would like to thank all of you in the Android Developer community for your work on this release. We are grateful for your contributions, your ongoing feedback which inspired the new features in this release, and your highly active use on canary and beta builds filing bugs. We all wanted to make Android Studio 2.2 our best release yet, with many stability and performance fixes in addition to the many new features. For our next release, look for even more; we want to work hard to address feedback and keep driving up quality and stability on existing features to make you productive.
b_serv --port=1234 --db=/tmp/fakedb
a_serv --b_spec=localhost:1234 --c_spec=localhost:1235
chrome --renderer-cmd-prefix='xterm -title renderer -e gdb --args'
$ git cl upload
Error: the media/audio directory requires formatting. Please run
git cl format media/audio.
It's been a busy month for reading. I've been on the road, so I try and focus on reading rather than on working while on the plane. Here are three books underway that are related for the programs we work
This book contains processes for improving the performance of Scrum teams when they are distributed.
Two of my clients are in this situation. Mainly because the cost of living near the office is prohibitive and travel distances are the worst in Metro DC.
The book shows how to develop User Stories using a distributedÂ team, engaging in effectiveÂ release planning, managing culturalÂ and language differences, resolving dependencies, and using remote software processes.
It seems many of theÂ idea debates we get into are based on logical fallacies.Â
Here's a nice book on how this happens and how to address the issues when it comes up.
I've saved the best for last.
This is a MUST READ book for anyone working with agile or thinking about it.
With the Logically Fallacious book in hand, Agile! can be read in parallel.
There is so muchÂ crap out there around Agile, this book is mandatory reading.Â
From theÂ nonsense of #Noestimates to simply bad advice, Bertrand calls it out. Along with all the good things of agile
ÂRelated articles Five Estimating Pathologies and Their Corrective Actions Taxonomy of Logical Fallacies Essential Reading List for Managing Other People's Money Architecture -Center ERP Systems in the Manufacturing Domain IT Risk Management Why Guessing is not Estimating and Estimating is not Guessing Mike Cohn's Agile Quotes
Good morning! Only one minute to go until Darin Fisher, VP of Chrome kick's off this year's keynote at Chrome Dev Summit 2016. Join us as we take a look at the latest web advancements with over 20 sessions presented by Chrome engineers. We're live streaming all sessions and posting videos throughout the next two days.
Posted by Dorothy Kelly, Head of Developer Insights, Google Play Developer Marketing
Core to our mission, we're always focused on the user and delivering the best experience possible. This same principle underlies how Google Play works with developers, as we aim to provide you with best experience working with us and our products. We can only do this through understanding what you need and how we can improve. We ran our first Developer Sentiment Survey in July this year, and heard feedback from over 4,000 developers across 15 countries. This bi-annual survey gathers feedback at scale from the thousands of developers around the world who publish their apps and games on Google Play. While it was great to hear how Google Play is working for you, we also learned how we should improve to enable you to build even more successful businesses.
This month, you may receive an email from Google Play inviting you to participate in the next Google Play Developer Sentiment Survey. This invitation is sent to a selection developers who have opted in to receive Research contacts in the Developer Console, or to those who are directly managed by Google. You can review and update your preferences in the Developer Console to ensure you get the opportunity to be invited to participate in future surveys.
In this survey we ask you to give us feedback across a number of areas:
We use your feedback to decide what we need to focus on next to help you grow your app or game business. Initiatives announced at I/O 2016, such as improved betas, prelaunch reporting, the Developer Console app, and pricing templates, were all developed in response to feedback from developers like you.
If you do receive an invitation to participate in this survey, we really appreciate you taking the time to complete it. We value your feedback and want to act on it to help you create apps and games that delight your users, and help you build a successful business anywhere in the world.
Posted by Wesley Chun, Developer Advocate, G Suite
At Google I/O 2016, we gave developers a preview of the Google Slides API. Since then, the gears have been cranking at full speed, and we've been working with various early-access partners and developers to showcase what you can do with it. Today, we're happy to announce that the Slides API v1 is now generally available and represents the first time that developers have ever been able to programmatically access Slides!
The Slides API breaks new ground, changing the way that presentations are created. No longer do they require manual creation by users on their desktops or mobile devices. Business data on inventory items like retail merchandise, homes/property, hotels/lodging, restaurants/menus, venues/events, and other "cataloged" assets can be instantly turned into presentations based on pre-existing slide templates. Traditionally, the sheer amount of data (and of course time[!]) that went into creating these slide decks made it unwieldy if done by hand. Applications leveraging the API can easily generate presentations like these, customized as desired, and in short order.
Developers use the API by crafting a JSON payload for each request. (We recommend you batch multiple commands together to send to the API.) You can think of these as actions one can perform from the Slides user interface but available programmatically. To give you an idea of how the new API works, here are what some requests look like for several common operations:
// create new slide (title & body layout)
// insert text into textbox
"text": "Hello World!"
// add bullets to text paragraphs
// replace text "variables" with image
If you're interested in seeing what developers have already built using the API, take a look at our initial set of partner integrations by Conga, Trello, Lucidchart, Zapier and more, as described in detail in our G Suite blog post.
To help you get started, check out the DevByte above from our new series dedicated to G Suite developers. In the video, we demonstrate how to take "variables" or placeholders in a template deck and use the API to generate new decks replacing those proxies with the desired text or image. Want to dive deeper into its code sample? Check out this blogpost. If you're not a Python developer, it'll be your pseudocode as you can use any language supported by the Google APIs Client Libraries. Regardless of your development environment, you can use similar "scaffolding" to generate many presentations with varying content for your users. Stay tuned for more videos that highlight other Slides API features.
The Slides API is available to projects in your Google Developers console today. Developers can find out more in the official documentation which features an API overview plus Quickstarts, sample code in multiple languages and environments, to bootstrap your next project. We look forward to seeing all the amazing slide deck generating applications you build with our first ever API!
The TV Input Framework (TIF) on Android TV makes it easy for third-party app developers to create their own TV channels with any type of linear media. It introduces a new way for apps to engage with users with a high-quality channel surfing experience, and it gives users a single interface to browse and watch all of their channels.
To help developers get started with building TV channels, we have created the TV Input Framework Companion Library, which includes a number of helper methods and classes to make the development process as easy as possible.
This library provides standard classes to set up a background task that updates the program guide and an interface that helps integrate your media player with the playback controller, as well as supports the new TV Recording APIs that are available in Android Nougat. It includes everything you need to start showing your content on your Android TV's live TV app.
To get started, take a look at the sample app and documentation. The sample demonstrates how to extend this library to create custom channels and manage video playback. Developers can immediately get started with the sample app by updating the XMLTV file with their own content or dynamically creating channels in the SampleJobService.
You can include this library in your app by copying the library directory from the sample into your project root directory. Then, add the following to your project's settings.gradle file:
In your app's build.gradle file, add the following to your dependencies:
Android TV continues to grow, and whether your app has on-demand or live media, TIF is a great way to keep users engaged with your content. One partner for example, Haystack TV, recently integrated TIF into their app and it now accounts for 16% of watch time for new users on Android TV.
Estimating is a learned skill, used for any purpose from every-day life to management of projects. When I left for the airport this morning to catch my flight to a customer site I estimated, given the conditions, how much time I need to get to my favorite parking spot at DIA. When I landed in Boston, I asked the taxi driver how long it will take to get back to the airport on Wednesday at 3:00PM. He knew that answer. From my location at the office in the North End to the airport, between 7 to 12 minutes to the SWA terminal.
The same process forÂ estimating is applied to multi-billion dollar projects we work. And the same process is applied to the Scrum development processes on those projects.Â
Here's some materials that provide the tools and processes needed to learn how to estimate. Google will find these when there is no URL provided.
So when you hearÂ we can't estimate you'll know better. And when you hearÂ estimates are a waste you'll realize that person must work in a de minimis project, where those paying have no need to know how much it will cost, when the project will be done, and what Capabilities they'll get for that time and money before the time and money runs outs.
The primary purpose of software estimation is not to predict a projectâs outcome; it is to determine whether a projectâs targets are realistic enough to allow the project to be controlled to meet them â Steve McConnell
A Scum of Scrums (SoS) is a mechanism to coordinate a group of teams so that they act as a team of teams.Â SoS is a powerful tool. As with any powerful tool, if you use it wrong, problems will ensue. Six problematic implementations, called anti-patterns, are fairly common. Weâll discuss three in part 1 and finish the rest in part 2.
The Soapbox, Blame Game and Surrogate Project Manager are three anti-patterns that often plague Scrum of Scrums. We will discuss the Three Bears and Pyramid anti-patterns in the next blog entry. All of these problems are not insurmountable. They first require teams to recognize they have a problem and then be willing to take action that might feel uncomfortable. Coaching one of the best tools to generate change.
If any of these items interest you there's a full description of each sponsor below...