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.

The Chief Product Owner on Large Agile Projects

Mike Cohn's Blog - Tue, 11/08/2016 - 16:00
A Note on the Term “Chief Product Owner”

The labels “chief product owner” and “product line owner” are the ones I generally favor, but they are representative only; use others if you wish. In addition to these, I’ve seen both program owner, super product owner, area owner and feature owner used successfully.

For consistency with the bulk of existing Scrum literature, I prefer to use “product owner” for the individual who works directly with one or two teams, prioritizing their work and doing all of the other things associated with the product owner role. In these multilayer hierarchies, the product owner is often someone whose business card reads: “Business Analyst.”

The product owner role can be one of the most challenging on a Scrum project.

On all projects, the product owner is torn between competing inward-facing and outward-facing needs. Among the inward-facing tasks are participating in planning meetings, sprint reviews, sprint retrospectives and daily scrums; managing the product backlog; answering questions from the team; and simply being available to the team during the sprint.

A product owner’s outward-facing tasks include talking to users about their needs; creating and interpreting user surveys; traveling to customer sites; attending industry trade shows; managing stakeholder expectations; prioritizing the product backlog; determining product pricing; developing a medium- and long-term product strategy; watching for industry and market trends; performing competitive analysis; and more.

Too Much for One Person to Do

On a project with one team of developers, this can be a vast but achievable amount of work. On a large project with multiple teams, however, the product owner role is too big for one person, so we must find ways of scaling it.

As a project grows to include multiple teams, ideally a new product owner is found for each. If you cannot achieve a one-to-one correspondence between teams and product owners, try to have each product owner responsible for no more than two teams. This is usually the most that one product owner can effectively work with.

At some point, as the overall size of the project grows, it makes sense to introduce a hierarchy of collaborating product owners. The figure below shows such a hierarchy, with a product owner working with each team, two product line owners each working with a cluster of teams and a chief product owner. Naturally, layers can be added or removed as needed for the scale of the project.

Sharing Responsibility, Dividing Functionality

A chief product owner is responsible for having an overall vision of the entire product or product suite. The chief product owner conveys this to the entire team in whole-team meetings, e-mails, team get-togethers and through whatever other means are available.

But the chief product owner is almost certainly too busy to assume hands-on responsibility for working as the actual product owner for one of the five- to nine-person teams building the product. At this level, the external-facing requirements of the role are too great.

A good chief product owner will be very involved with teams—attending daily scrums occasionally, walking through team areas whenever in the office, and offering support and feedback. But the chief product owner will need to rely on the product line owners and product owners to handle the intricate details of their product segments within the overall project vision.

An Example of a Chief Product Owner and Product Line Owner

Suppose, for example, we decide to develop an office productivity suite that will include a word processor, spreadsheet, presentation software and personal database. Competing with Microsoft Office, Google Apps and other products will be daunting, but our chief product owner is fearless.

Because the chief product owner will be focused on strategic issues, competitive positioning and such, product line owners are selected to own the individual products in the suite—the word processor, spreadsheet, presentation program and database.

Each product line owner in turn identifies product owners who will be responsible for feature areas within the product. The product line owner for the word processor, for example, may work with one product owner who is responsible for tables, another responsible for stylesheets and printing, another who is responsible for the spell checker and so on.

Although as previously mentioned, the chief product owner is too busy to be the product owner for one team, it is possible for a chief product owner to act as the product line owner for part of the product.

Continuing with the preceding example, our chief product owner may choose to also be the product line owner responsible for the word processor, perhaps because of being in that role previously.

Similarly, a product line owner will often want to stay involved in a more hands-on manner and will work also as one of the product owners. Perhaps our product line owner for the spreadsheet product also acts as the product owner for the team that will add charts to the spreadsheet product.

Although functionality can be divided along these lines, it is important for all product owners to feel a shared responsibility for the full product. They must also instill this feeling of shared responsibility in the teams they work with.

How Do You Scale Up the Product Owner Role?

How do you handle the product owner role on projects with three or more teams? Please share your thoughts in the comments below.

Registration Open for January 2017 Writing Workshops

If you are thinking about writing more or better for next year, take a look at my writing workshops.

I am offering Writing Workshop 1: Write Non-Fiction to Enhance Your Business and Reputation again, so you can learn how to create a daily writing habit, write in small chunks, and start to publish.

I am offering a new writing workshop for people who want to publish more (and be paid for their writing): Writing Workshop 2: Secrets of Successful Non-Fiction Writers.

Take Workshop 1 if you are unsure of your writing. It’s a terrific overview and will help you start with a regular writing habit.

Take Workshop 2 if you are ready to take your writing to the next level. This workshop is about getting paid for your writing, and publishing more often and broadly.

If you’re not sure which workshop is right for you, email me and we can¬†discuss what would work for you.

Super early bird registration ends November 18, 2016 for Workshop 1. Super early bird registration ends November 25, 2016 for Workshop 2.

If you are thinking of writing “more” in 2017, commit now. Make it happen for you.

Categories: Project Management

My Purpose

NOOP.NL - Jurgen Appelo - Tue, 11/08/2016 - 11:15
My Purpose

As part of my (soon-to-be-announced) Agility Scales project, I decided to practice what I preach, lead by example, and eat my own dog food. I am happy to share my personal purpose in this blog post.

Every team, organization and individual benefits from crafting a purpose (also called a mission) and focusing on meaningful work. A purpose (or mission) is about why you do your work.

As Simon Sinek says, start with why.

I firmly believe that your purpose should match your actual behaviors. If your intent is to do one thing, but your actions show you’re doing something else, then your purpose has a problem. That’s why I had a critical look at my work habits over the last few years to see if there is a clear “why”.

Patterns were hard to identify because I’ve done many things that seem totally unrelated. I cannot say that my purpose is writing, or speaking, or changing the world of management, because I happily also did other things that did not fit those categories, and I did not consider that a waste of my time.

However, I only do work that I enjoy; I always try to turn that work into revenue streams, and I only want to do things that matter to other people. I canceled many experiments because I lost interest, lost money, or lost people’s support.

This insight reminded me of a slogan that I once came up with:

Make fun, make money, and make a difference.

I have decided to turn this slogan into my personal mission statement. It describes what I’ve done for the last seven years; it’s what I want to do for many years to come; and it guides my decision-making process, at least for now.

Some critics from the English language police may object and say that “making fun” should actually be “having fun”. I know that. But I like having a bit of fun with the English language, and many people know me for making fun of both myself and others. I don’t take everything too seriously. So there.

Other critics may point out that the statement is too general. Almost any kind of work could match this purpose. In fact, it looks suspiciously similar to the Ikigai model, which says that your purpose is the cross-section of what you love, what you’re good at, what the world needs, and what people are willing to pay for.

I agree.

But maybe that is exactly the point of my mission statement. It’s not the purpose of a team or company; it’s the purpose of me. I want the freedom to do anything I want, and be able to change my focus to any new opportunity, including things I haven’t even imagined yet. But the self-imposed constraints remain: I should always enjoy the work, earn an income, and do something meaningful for others. Make fun, make money, and make a difference.

And that’s a fine purpose to have, I think.

 

Photo: (c) 2009  Seth Sawyers, Creative Commons 2.0

The post My Purpose appeared first on NOOP.NL.

Categories: Project Management

CMake and ndk-build support in Android Studio 2.2

Android Developers Blog - Mon, 11/07/2016 - 22:37
Posted by Kathryn Shih, Android Product Manager

In addition to supporting the experimental Gradle plugin, Android Studio 2.2 enables you to build C/C++ components of Android projects using CMake and ndk-build.

The Android Studio team plans to continue to support the experimental Gradle plugin. This will eventually replace the current Gradle plugin, providing additional tightly-integrated benefits to C/C++ developers such as smarter dependency management. So if you're interested in someday having the smartest possible interface between your IDE and your build system, you shouldn't ignore the experimental plugin.

CMake and ndk-build are useful alternatives to Gradle in several cases:

  • Projects that are already using CMake or ndk-build, such as legacy Eclipse ndk projects
  • Projects that are unable to assume the risk of using an experimental plugin for their C/C++ builds
  • Projects that will share a C/C++ build system across multiple platforms
  • C/C++ projects that need to use advanced features currently unavailable in experimental Gradle such as NEON support

For new projects, we recommend using CMake or experimental Gradle. For new Android projects with limited C++, we recommend trying the experimental Gradle plugin. For projects with substantial amounts of C++, or where you want the maximally stable build configuration, we recommend using a CMake build. Android Studio intends CMake to be a permanently supported solution.

While we think that there are substantial advantages to having a single build system able to handle all parts of an Android application, stabilizing the experimental plugin is not an option for us because it relies on Gradle APIs that are still a work in progress. Until the Gradle APIs are stabilized, the experimental plugin will keep changing, particularly in its Domain Specific Language, and will be strictly tied to a very specific version of Gradle itself.

Note that the the old, undocumented ndkCompile integration is deprecated. If you are using it, you need to move away from it as we'll remove it completely in the near future. We recommend migrating to gradle+cmake via our migration guide.

Migrating from Eclipse to Android Studio

We no longer support the Eclipse ADT. To get started migrating, download and install Android Studio. For most projects, migration is as simple as importing your existing Eclipse ADT projects in Android Studio with the File ‚Üí New‚Üí Import Project menu option. For more details on the migration process, check out the migration guide.

Feedback and Open Source Contributions

We're dedicated to making Android Studio the best possible integrated development environment for building Android apps, so if there are missing features or other challenges preventing you from using Android Studio, we want to hear about it [please take our survey]. You can also file bugs or feature requests directly with the team, and let us know via our Twitter or Google+ accounts.

Android Studio is an open source project, available to all at no cost. Check out our Open Source project page if you're interested in contributing or learning more.

Categories: Programming

Support Ended for Eclipse Android Developer Tools

Android Developers Blog - Mon, 11/07/2016 - 20:14

By Jamal Eason, Product Manager, Android

With the release of Android Studio 2.2, the time has now come to say goodbye to the Eclipse Android Developer Tools. We have formally ended their support and development. There's never been a better time to switch to Android Studio and experience the improvements we've made to the Android development workflow.

Android Studio

Android Studio, the official IDE for Android, features powerful code editing with advanced code-completion and refactoring. It includes robust static analysis, bringing the intelligence of the Android engineering team to you to help you easily apply Android coding best practices, and includes simultaneous debugging in both Java and C++ to help fix any bugs that slip through. When you combine this with performance tooling, a fast, flexible build system, code templates, GitHub integration, and its high-performance, feature-rich emulator, you get a deeply Android-tailored development environment for the many form factors of the OS. It's the development environment used by 92% of the top 125 Google Play apps and games, and we're constantly innovating it to handle every Android development need.

What's New in Android Studio 2.2

Android Studio 2.2 builds on the great features from Android Studio 2.0. There are over twenty new features that improve development whether you are designing, iterating, or testing. Notable changes include:

  • Instant Run - The super-fast iteration engine now is both more reliable and available for more types of changes
  • Layout Editor - The new user interface designer that makes it easier than ever to create beautiful app experiences
  • Constraint Layout - A new flexible layout engine for building dynamic user interfaces - designed to work with the new layout editor
  • C++ Support - CMake and ndk-build are now supported alongside improved editing and debug experiences
  • APK Analyzer - Inspects APKs to help you streamline your APK and debug multi-dex issues
  • GPU Debugger (beta) - Captures a stream of OpenGL ES commands and replays them with GPU state inspection
  • Espresso Test Recorder (beta) - Records interactions with your app and outputs UI test code
Top Developers Love Android Studio

For our ADT Fans

All of your favorite ADT tools are now part of Android Studio, including DDMS, Trace Viewer, Network Monitor, and CPU Monitor. We've also improved Android Studio's accessibility, including keyboard navigation enhancements and screen reader support.

We announced that we were ending development and official support for the Android Developer Tools (ADT) in Eclipse at the end of 2015, including the Eclipse ADT plugin and Android Ant build system. With the latest updates to Studio, we've completed the transition.

Migrating to Android Studio

To get started, download and install Android Studio. For most developers, including those with C/C++ projects, migration is as simple as importing your existing Eclipse ADT projects in Android Studio with the File > New > Import Project menu option. For more details on the migration process, check out the migration guide.

Feedback and Open Source Contributions

We're dedicated to making Android Studio the best possible integrated development environment for building Android apps, so if there are missing features or other challenges preventing you from switching to Android Studio, we want to hear about it [survey] ! You can also file bugs or feature requests directly with the team, and let us know via our Twitter or Google+ accounts.

Android Studio is an open source project, available to all at no cost. Check out our Open Source project page if you're interested in contributing or learning more.

Categories: Programming

Get Ready for the Chrome Dev Summit 2016

Google Code Blog - Mon, 11/07/2016 - 19:04

Posted by Paul Kinlan, Chrome Developer Relations

Chrome Dev Summit is almost here! We'll kick off live from San Francisco at the SFJAZZ Center, at 10:00 AM PT this coming Thursday, Nov 10th. This year's summit will focus on key themes that matter to you: Progressive, to build high quality web apps; Performance, to increase user engagement; and What's Next, a look at how the Chrome team is thinking about the future of the web.

While we're putting the finishing touches on the keynote, sessions, and code labs, we wanted to provide you with some tips to get ready to experience Chrome Dev Summit, either in-person or via the livestream.

Navigate the summit with notifications

To get the most out of Chrome Dev Summit, make sure to check out the schedule and set up notificationsfor the sessions you don't want to miss. These will help you plan your schedule whether you're in person or tuning in via the livestream.

Can't join us in person?

Don't worry, we've got you covered! Here are some ways you can connect with Chrome Dev Summit in real-time:

  • Tune in to the livestream at any time throughout the 2 day summit on developer.chrome.com/devsummit. We will stream the keynote and all sessions over the course of the event. If you want us to send you a reminder to tune into the livestream, sign up here.
  • Subscribeto the Chrome Developers YouTube Channel to stay up to date as we'll be publishing all of the talks from the event.
  • Join the conversation and send us your web questions on Twitter that include the #ChromeDevSummit hashtag or join our Slack by signing up here and a team of onsite Googlers will do their best to track down an answer in real time for you.

We're looking forward to having you with us you for 2 days of web fun, soon!

Don't forget to join the social conversation at #ChromeDevSummit.

Categories: Programming

The QuickBooks Platform

This is a guest post by Siddharth Ram – Chief Architect, Small Business. Siddharth_ram@intuit.com.

The QuickBooks ecosystem is the largest small business SaaS product. The QuickBooks Platform supports bookkeeping, payroll and payment solutions for small businesses, their customers and accountants worldwide. Since QuickBooks is also a compliance & tax filing platform, consistency in reporting is extremely important.. Financial reporting requires flexibility in queries – a given report may have dozens of different dimensions that can be tweaked. Collaboration requires multiple edits by employees, Accountants and Business owners at the same time, leading to potential conflicts. All this leads to solving interesting scaling problems at Intuit.

Solving for scalability requires thinking on multiple time horizons and axes. Scaling is not just about scaling software – it is also about people scalability, process scalability and culture scalability. All these axes are actively worked on at Intuit. Our goal with employees is to create an atmosphere that allows them to do the best work of their lives.

Background
Categories: Architecture

Live from the Firebase Dev Summit in Berlin: Firebase, six months after I/O

Google Code Blog - Mon, 11/07/2016 - 12:53

Posted by Francis Ma, Firebase Product Manager

Originally posted to the Firebase blog

Our goal with Firebase is to help developers build better apps and grow them into successful businesses. Six months ago at Google I/O, we took our well-loved backend-as-a-service (BaaS) and expanded it to 15 features to make it Google’s unified app development platform, available across iOS, Android, and the web.

We launched many new features at Google I/O, but our work didn’t stop there. Since then, we’ve learned a lot from you (750,000+ projects created on Firebase to date!) about how you’re using our platform and how we can improve it. Thanks to your feedback, today we’re launching a number of enhancements to Crash Reporting, Analytics, support for game developers and more. For more information on our announcements, tune in to the livestream video from Firebase Dev Summit in Berlin. They’re also listed here:

Improve App Quality to Deliver Better User Experiences Firebase Crash Reporting comes out of Beta and adds a new feature that helps you diagnose and reproduce app crashes.

Often the hardest part about fixing an issue is reproducing it, so we’ve added rich context to each crash to make the process simple. Firebase Crash Reporting now shows Firebase Analytics event data in the logs for each crash. This gives you clarity into the state of your app leading up to an error. Things like which screens of your app were visited are automatically logged with no instrumentation code required. Crash logs will also display any custom events and parameters you explicitly log using Firebase Analytics. Firebase Crash Reporting works for both iOS and Android apps.

Glide, a popular live video messaging app, relies on Firebase Crash Reporting to ensure user quality and release agility. ‚ÄúNo matter how much effort you put into testing, it will never be as thorough as millions of active users in different locations, experiencing a variety of network conditions and real life situations. Firebase allows us to rapidly gain trust in our new version during phased release, as well as accelerate the process of identifying core issues and providing quick solutions.‚ÄĚ - Roi Ginat, Founder, Glide.

Firebase Test Lab for Android supports more devices and introduces a free tier.

We want to help you deliver high-quality experiences, so testing your app before it goes into the wild is incredibly important. Firebase Test Lab allows you to easily test your app on many physical and virtual devices in the cloud, without writing a single line of test code. Beginning today, developers on the Spark service tier (which is free!) can run five tests per day on physical devices and ten tests per day on virtual devices‚ÄĒwith no credit card setup required. We‚Äôve also heard that you want more device options, so we‚Äôve added 11 new popular Android device models to Test Lab, available today.

Illustration of Firebase Crash Reporting

Make Faster Data Driven Decisions with Firebase Analytics Firebase Analytics now offers live conversion collection, a new integration with Google ‚ÄúData Studio‚ÄĚ, and real-time exporting to BigQuery.

We know that your data is most actionable when you can see and process it as quickly as possible. Therefore, we’re announcing a number of features to help you maximize the potential of your analytics events:

  1. Real-time uploading of conversion events
  2. Real-time exporting to BigQuery
  3. DebugView for validation of your analytics instrumentation is currently offered in limited availability and will be made more broadly available later this year

We were happy to give you a sneak preview at the Firebase Dev Summit of a new feature we are now building, StreamView, which will offer a live, dynamic view of your analytics data as it streams in.

To further enhance your targeting options, we’ve improved the connection between Firebase Analytics and other Firebase features, such as Dynamic Links and Remote Config. For example, you can now use Dynamic Links on your Facebook business page, and we can identify Facebook as a source in Firebase Analytics reporting. Also, you can now target Remote Config changes by User Properties, in addition to Audiences.

Build Better Games using Firebase Firebase now has a Unity plugin!

Game developers are building great apps, and we want Firebase to work for you, too. We’ve built an entirely new plugin for Unity that supports Analytics, the Realtime Database, Authentication, Dynamic Links, Remote Config, Notifications and more. We've also expanded our C++ SDK with Realtime Database support.

Integrate Firebase Even Easier with Open-Sourced UI Library FirebaseUI is updated to v1.0.

FirebaseUI is a library that provides common UI elements when building apps, and it’s a quick way to integrate with Firebase. FirebaseUI 1.0 includes a drop-in UI flow for Firebase Authentication, with common identity providers such as Google, Facebook, and Twitter. FirebaseUI 1.0 also added features such as client-side joins and intersections for the Realtime Database, plus integrations with Glide and SDWebImage that make downloading and displaying images from Firebase Storage a cinch. Follow our progress or contribute to our Android, iOS, and Web components on Github.

Learn More via Udacity and Join the Firebase Community

We want to provide the best tool for developers, but it’s also important that we give resources and training to help you get more out of the platform. As such, we’ve created a new Udacity course: Firebase in a Weekend! It’s an instructor-led video course to help all developers get up and running with Firebase on iOS and Android, in two days.

Finally, to help wrap your head around all our announcements, we’ve created a new demo app. This is an easy way to see how Analytics, Crash Reporting, Test Lab, Notifications, and Remote Config work in a live environment, without having to write a line of code.

Helping developers build better apps and successful businesses is at the core of Firebase. We work hard on it every day. We love hearing your feedback and ideas for new features and improvements‚ÄĒand we hope you can see from the length of this post that we take them to heart! Follow us on Twitter, join our Slack channel, participate in our Google Group, and let us know what you think. We‚Äôre excited to see what you‚Äôll build next!

Categories: Programming

SPaMCAST Schedule Change for Vacation

Just Say No!

Just Say No!

 

I am in Sweden for the ¬†√ėredev conference with a day of sightseeing thrown in. If you are attending, let‚Äôs connect! The trip to Sweden has been eventful (not a word professional travelers want to hear). Travails included: delayed luggage, flight maintenance and running in airports (not where I like to run). My wife is still waiting on her luggage. ¬†Both United and SAS Airlines have done a great job helping (not something you don’t hear a lot of when talking about airlines). ¬†That said, the planned posting of my interview with Larry Cooper scheduled for today will happen next Sunday, 13 November, with next magazine entry posting on the 27th (there is a trip to Brazil following on the trip to Sweden). ¬†We will be back to weekly posting in December. ¬†

I will be highlighting interviews on Twitter and¬†Facebook that I have done with √ėredev conference participants this week (people like Allan Kelly and Marcus Hammarberg to name two).
Categories: Process Management

SPaMCAST Schedule Change for Vacation

Software Process and Measurement Cast - Sun, 11/06/2016 - 23:44

I am in Sweden for the ¬†√ėredev conference with a day of sightseeing thrown in. If you are attending, let‚Äôs connect! The trip to Sweden has been eventful (not a word professional travelers want to hear). Travails included: delayed luggage, flight maintenance and running in airports (not where I like to run). My wife is still waiting on her luggage. ¬†Both United and SAS Airlines have done a great job helping (not something you don't hear a lot of when talking about airlines). ¬†That said, the planned posting of my interview with Larry Cooper scheduled for today will happen next Sunday, 13 November, with next magazine entry posting on the 27th (there is a trip to Brazil following on the trip to Sweden). ¬†We will be back to weekly posting in December. ¬†

I will be highlighting interviews on Twitter and¬†Facebook that I have done with √ėredev conference participants this week (people like Allan Kelly and Marcus Hammarberg to name two).
Categories: Process Management

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

The Five Dysfunctions of a Team Cover

The “Book” during unboxing!

This week‚Äôs entry is a bit on the short side, I am on my way to the √ėredev conference. ¬†If you are going to be in Malmo, Sweden for the conference please attend my sessions and let’s connect!

In this week’s re-read of The Five Dysfunctions of a Team  by Patrick Lencioni (Jossey-Bass, Copyright 2002, 33rd printing), we complete the review of off-site meeting with the team setting a goal and an ultimatum.  We end on another cliffhanger.

(Buy a copy from the link above and read along.)

Film Noir

One of the most interesting questions posed in this section was whether anyone on the team would rather attend a meeting or go to a movie.  Movies are typically not interactive (except for movies like the original Rocky Horror Picture Show), but are engaging because they have conflict.  Note:  As discussed here, good stories have other components, but conflict is an important part of the plot, which is a very important component of a good story.  The conflict at the meetings of the DecisionTech executive team is suppressed, which means that even though the meetings are more interactive than a movie, they are far less interesting and rarely make decisions.

The inability for the team to express, discuss or debate the topics that are important to the whole organization makes it very difficult to agree on common goals or make decisions. Without good intellectual conflict there is very little value in holding meetings.

Application

With the meeting nearly at an end, Kathryn challenged the team to discuss and set an overarching goal for the remainder of the year. Kathryn acted as the facilitator for the discussion to ensure that ideas and conflict were exposed.  The group began the discussion primarily focusing on market share, but end with a goal of customer acquisition.  Katheryn’s facilitation, that made sure that conflict was exposed, positions where defended and that the conversation had a time box, ensured that the team made a decision on an overall goal (there can only be one overall goal).

Once the goal was agreed upon the team moved on to setting a goal for the number of new customers.  After an extended discussion, Kathryn finally made a decision because the team could not come to a consensus within a reasonable period and there being no science for the decision, allowing them to move on.  All parties were heard during the decision process, helping to ensure that everyone could support the decision when the meeting broke up.

Lencioni built a cliffhanger and bit of foreshadowing into the end of this section in the form of a final challenge from JR. ¬†JR suggested that they didn’t need to do any more of these off-site meetings and that they should just focus on the goal they had agreed upon. ¬†Kathryn ended the meeting pointing out that DecisionTech had more technology and more money than their competitors, but still lacked teamwork, and therefore were failing. ¬†Based on that assessment Kathryn announced that they would be back in two weeks, and in the interim she would not tolerate any behavior that exhibited a lack of trust amongst team members.

Three quick takeaways:

  • ¬†¬†¬†¬†¬†¬†¬†¬†Meetings need to have conflict.
  • ¬†¬†¬†¬†¬†¬†¬†¬†Facilitation supports learning better meeting behavior.
  • ¬†¬†¬†¬†¬†¬†¬†¬†Poor behavior destroys the trust needed to debate ideas.

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


Categories: Process Management

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

The Five Dysfunctions of a Team Cover

The “Book” during unboxing!

This week‚Äôs entry is a bit on the short side, I am on my way to the √ėredev conference. ¬†If you are going to be in Malmo, Sweden for the conference please attend my sessions and let’s connect!

In this week’s re-read of The Five Dysfunctions of a Team  by Patrick Lencioni (Jossey-Bass, Copyright 2002, 33rd printing), we complete the review of off-site meeting with the team setting a goal and an ultimatum.  We end on another cliffhanger.

(Buy a copy from the link above and read along.)

Film Noir

One of the most interesting questions posed in this section was whether anyone on the team would rather attend a meeting or go to a movie.  Movies are typically not interactive (except for movies like the original Rocky Horror Picture Show), but are engaging because they have conflict.  Note:  As discussed here, good stories have other components, but conflict is an important part of the plot, which is a very important component of a good story.  The conflict at the meetings of the DecisionTech executive team is suppressed, which means that even though the meetings are more interactive than a movie, they are far less interesting and rarely make decisions.

The inability for the team to express, discuss or debate the topics that are important to the whole organization makes it very difficult to agree on common goals or make decisions. Without good intellectual conflict there is very little value in holding meetings.

Application

With the meeting nearly at an end, Kathryn challenged the team to discuss and set an overarching goal for the remainder of the year. Kathryn acted as the facilitator for the discussion to ensure that ideas and conflict were exposed.  The group began the discussion primarily focusing on market share, but end with a goal of customer acquisition.  Katheryn’s facilitation, that made sure that conflict was exposed, positions where defended and that the conversation had a time box, ensured that the team made a decision on an overall goal (there can only be one overall goal).

Once the goal was agreed upon the team moved on to setting a goal for the number of new customers.  After an extended discussion, Kathryn finally made a decision because the team could not come to a consensus within a reasonable period and there being no science for the decision, allowing them to move on.  All parties were heard during the decision process, helping to ensure that everyone could support the decision when the meeting broke up.

Lencioni built a cliffhanger and bit of foreshadowing into the end of this section in the form of a final challenge from JR. ¬†JR suggested that they didn’t need to do any more of these off-site meetings and that they should just focus on the goal they had agreed upon. ¬†Kathryn ended the meeting pointing out that DecisionTech had more technology and more money than their competitors, but still lacked teamwork, and therefore were failing. ¬†Based on that assessment Kathryn announced that they would be back in two weeks, and in the interim she would not tolerate any behavior that exhibited a lack of trust amongst team members.

Three quick takeaways:

  • ¬†¬†¬†¬†¬†¬†¬†¬†Meetings need to have conflict.
  • ¬†¬†¬†¬†¬†¬†¬†¬†Facilitation supports learning better meeting behavior.
  • ¬†¬†¬†¬†¬†¬†¬†¬†Poor behavior destroys the trust needed to debate ideas.

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


Categories: Process Management

Building on the shoulders of giants: microservices as a redesign strategy

Xebia Blog - Fri, 11/04/2016 - 20:10
With the rise of new-IT backed companies in almost every segment; from retail to financial institutions, more traditional companies are often forced in change or perish strategies. Where the business strengths of newer competitors are often enforced by strong, serial startup developers, able to integrate the experience of previous failures into completely new stacks. Older companies’

Why Johnny Can't Estimate?

Herding Cats - Glen Alleman - Fri, 11/04/2016 - 16:00

I work in a domain where engineered systems are developed for complex software-intensive system of systems. These systems are engineered with a variety of development methods. Ranging from traditional to agile and combinations in between. These systems are developed for external and internal customers. Some are products in their own right, some are embedded in larger missions.

In all cases, we start our work with ...

Risk Management is How Adults Manage Projects - Tim Lister

Since all risk comes from uncertainty - reducible (Epistemic) and irreducible (Aleatory), estimating is a foundation of all we do. There is no discussion of the conjecture that estimates are a waste, estimates can't be done, estimates are evil, estimates must be stopped immediately. This would be like saying, risk management is a waste, control system engineering is a waste, thermal analysis of the computer system is a waste, assessment of the reliability, repairable, survivability - all the ...illities are a waste.

In our domain of engineered systems there is a broad range of problems, complex issues, approaches to solving problems. This is a familiar example of that range...

 

Paradigm of agile project management from Glen Alleman   To be informed how to estimate in this broad range of domains, problems, and impacts - education, exp[erience, and skill are needed. This usually starts with education. Mine is in hard science and systems engineering. Some colleagues have engineering or finance educations. During this education process we all have encountered texts that have laid out the principles and processes needed to do our job and deliver the needed capabilities for the needed cost on the needed date to accomplish the needed mission. Here's a few that serve us well Estimating SW Costs

This book provides a clear, complete understanding of how to estimate software costs, schedule, and quality using real-world information. 

This includes planning for and execution the project by phase and activity level cost estimates. How to estimate regression, components, integration, and stress tests for the software. How to compensate for inaccuracies in data collection, calculation, and analysis. 

How to test the design principles of operational characteristics of the product suing prototyping. How to handle configuration change, research, quality and documentation costs.

SW Project Estimation

Software projects are often late and over budget leading to major problems for customers. There is a serious issue in estimating realistic software project budgets and schedules. Generic models cannot be a reliable source of estimating for complex software projects.

This book presents a number of examples using data collected over years from various organizations the build software. It presents an overview of the International Software Benchmarking Standards Group, which collects data on software projects. This data collection is based on ISO Standards for measuring the functional size of software

Dr. Abran shows how to build estimation models from the data of an organization using statistically sound process and how to focus on the quality of the estimation models. 

SW Estimating

Often referred to as the black art because of the complexity and uncertainty, software estimation is as difficult or puzzling as people think. 

Generating accurate and precise estimates is straightforward.

This book shows how to estimate schedule and cost and the functionality that can be delivered within a time frame. Gow to avoid common estimating mistakes. The estimation techniques needed for specific projects activities. How to apply estimation techniques to any type project - small to large 

Estimarting SW Intensive Systems

Many software projects fail because their leaders don't know how to estimate, schedule, or measure them accurately. Proven tools and techniques exist for every facet of software estimation. This book bring them together in a real-world guidebook to help software managers, engineers, and customers immediately improve their estimates - and drive continuous improvement over time.

 

Screen Shot 2016-11-03 at 7.55.20 PM

Software engineering has become procedural and controlled. Agile is a highly procedural process along with more traditional development methods. 

The estimating of the development process still needs maturing. This book provides a concise guide for estimating software development efforts. It shows why accurate estimates are needed, what different estimating methods can be used, and how to analyze risks to make appropriate contingency allowances for the uncertainties encountered on all projects, not just software development projects.

Agile Estimating and Planning

This book is a practical guide to estimating and planning agile projects. 

The book speaks to why conventional planning fails and why agile planning works. How to estimate feature size using story points and ideal days and how to use each measure to make decisions. How and when to reestimate. How to prioritize features using financial and technical approaches. How to split large features into smaller features. How to plan iterations and predict the team's initial rate of progress. How to schedule projects that have unusually high uncertainty or schedule-related risk. How to estimate projects that will be worked by multiple teams.

These books are just a small sample of the resources available for estimating. When you hear someone say it's too hard, can't be done, never seen it done, it's a waste and the variety of other reasons - ask have you read any of these books and found then wanting for your needs? 

Related articles Want To Learn How To Estimate? Populist Books Can Be Misleading Local Firm Has Critical Message for Project Managers Software Estimating for Non Trival Projects Software Engineering is a Verb
Categories: Project Management

Here’s to more HTTPS on the web!

Google Code Blog - Fri, 11/04/2016 - 02:22
Originally posted on Google Security Blog

Posted by Adrienne Porter Felt and Emily Schechter, Chrome Security Team

Security has always been critical to the web, but challenges involved in site migration have inhibited HTTPS adoption for several years. In the interest of a safer web for all, at Google we've worked alongside many others across the online ecosystem to better understand and address these challenges, resulting in real change. A web with ubiquitous HTTPS is not the distant future. It's happening now, with secure browsing becoming standard for users of Chrome.

Today, we're adding a new section to the HTTPS Report Card in our Transparency Report that includes data on how HTTPS usage has been increasing over time. More than half of pages loaded and two-thirds of total time spent by Chrome desktop users occur via HTTPS, and we expect these metrics to continue their strong upward trajectory.

Percentage pages loaded over HTTPS in Chrome

As the remainder of the web transitions to HTTPS, we'll continue working to ensure that migrating to HTTPS is a no-brainer, providing business benefit beyond increased security. HTTPS currently enables the best performancethe web offers and powerful features that benefit site conversions, including both new features such as service workers for offline support and web push notifications, and existing features such as credit card autofill and the HTML5 geolocation API that are too powerful to be used over non-secure HTTP.

As with all major site migrations, there are certain steps webmasters should take to ensure that search ranking transitions are smooth when moving to HTTPS. To help with this, we've posted two FAQs to help sites transition correctly, and will continue to improve our web fundamentals guidance.

We've seen many sites successfully transition with negligible effect on their search ranking and traffic. Brian Wood, Director of Marketing SEO at Wayfair, a large retail site, commented "we were able to migrate Wayfair.com to HTTPS with no meaningful impact to Google rankings or Google organic search traffic. We are very pleased to say that all Wayfair sites are now fully HTTPS." CNET, a large tech news site, had a similar experience. "We successfully completed our move of CNET.com to HTTPS last month," said John Sherwood, Vice President of Engineering & Technology at CNET. "Since then, there has been no change in our Google rankings or Google organic search traffic."

Webmasters that include ads on their sites also carefully monitor ad performance and revenue during large site migrations. The portion of Google ad traffic served over HTTPS has increased dramaticallyover the past 3 years. All ads that come from any Google source always support HTTPS, including AdWords, AdSense or DoubleClick Ad Exchange; ads sold directly, such as those through DoubleClick for Publishers, still need to be designed to be HTTPS-friendly. This means there will be no change to the Google-sourced ads that appear on a site after migrating to HTTPS. Many publishing partners have seen this in practice after a successful HTTPS transition. Jason Tollestrup, Director of Programmatic Advertising for the Washington Post, "saw no material impact to AdX revenue with the transition to SSL."

As migrating to HTTPS becomes even easier, we'll continue working towards a web that's secure by default. Don't hesitate to start planning your HTTPS migration today!

Categories: Programming

Scaling Agile: Scrum of Scrums ‚Äď Barnacles

Remember that while barnacles perform important tasks, such as filtering the oceans water, on the hull of ship they cause drag and reduce efficiency.

Remember that while barnacles perform important tasks, such as filtering the oceans water, on the hull of ship they cause drag and reduce efficiency.

The idea of a Scrum of Scrums (SoS) is fairly simple. A bunch of people get together on periodic basis to coordinate the work their team is doing with other teams. The SoS helps everyone involved work together in order to deliver the maximum value. The SoS typically use the daily stand-up or scrum as a model. The simplicity of the logistics of the SoS and the overall utility often leads to tinkering with the format to address other organizational needs. Four very typical additions include:

1.¬†¬†¬†¬† SoS Hierarchy. As projects get larger, more than one scrum team is often needed to deliver the functionality and value needed by the business in a timely fashion. Any time more than one team has to work together, you need to coordinate to ensure that the teams don’t get in each other’s way. A simple Scrum of Scrums will typically suffice for coordination of a few teams; however, as soon as the number of teams grows to between 7 -10 a single SoS will begin to lose its effectiveness. When a SoS gets too large it generally needs to be split into two, and once you have two SoSs . . . you will need a third. If a project requires ten teams to deliver, then three SoSs will be needed. Two five-person SOSs would meet and then send a representative to the third to coordinate and pass information. Hypothetically SOSs could scale infinitely. However in scenarios requiring more than two layers of SoS, effectiveness usually suffers due to degraded communications and meeting fatigue.

2.     Backlogs. Scrum of Scrums, even those with variable membership, often build up lists of to-do items that need to be tackled by SoS members outside of the meeting. These to-do items often do not belong on the backlog of the everyday team. ANY item that a SoS needs to tackle belongs on a backlog (or a to-do list). Most SoS teams I coach use Scrumban to prioritize and the work items on their backlog. Items on the backlog are often varied. For example, some the items I have seen on SoS backlogs included: tasks for consolidated demos, release planning tasks, activities for coordinating external reviews, training and even team events. Using a backlog allows the SoS to capture and prioritize work that both affects and requires coordination across multiple teams.

3.     Retrospectives. I have never met a team that could not benefit from a retrospective at some point. Scrum of Scrums teams are no different. Standard retrospective techniques can typically be used without modification. One exception to standard approaches are for SoS retrospectives for teams with variable membership. For example, in cases where common patterns occur, such as scrum masters one day, technical leads meeting on another day and perhaps test leads a third day. In this case I suggest holding three separate retrospectives. In cases where membership purely depends on daily context, I usually invite everyone that attended the SoS within the timeframe being addressed. One side note, I tend to do SoS retrospective(s) over a lunch at the end of sprint to minimize the potential for time contention with the ability of SoS participants to work with their regular team.

4.     Planning. Where there is a backlog and a cadence of events, there needs to be planning. A SoS team should plan its activities. Planning should include the number and cadence of meetings, membership and any outside activities that the SoS might need to address. Planning should be done at the beginning of a sprint and then tuned on a daily basis. I typically add 30 minutes to the first SoS meeting to address logistics and planning (a form of sprint planning) and then have the SoS team(s) work the backlog as part of their meetings. Asking the SoS to plan its own schedule sends a message about the need for teams to self-organize and self-manage.

The four typical additions of hierarchy, planning, backlogs and retrospectives are consistent with the principles of Agile. These additions add a layer of transparency and coordination. The simplicity and effectiveness of the SoS (and the daily stand-up for that matter) often generate suggestion add extras to the meeting. Use the concept of the time box, for example limit all meetings of this type to 15 minutes, and the principles of Agile to ensure that additions don’t reduce the effectiveness of the Scrum of Scrums. Remember that while barnacles perform important tasks, such as filtering the oceans water, on the hull of ship they cause drag and reduce efficiency.


Categories: Process Management

Test on Android 7.1 Developer Preview in Firebase Test Lab

Android Developers Blog - Thu, 11/03/2016 - 21:15

By Ahmed Mounir Gad, Product Manager, Firebase Test Lab

To deliver the best user experience right out of the gate, Firebase Test Lab for Android allows you to test your apps and ensure their compatibility with multiple device configurations, across OS versions, screen orientations, and locales. With a single click, you can run your tests on hundreds of device configurations in Google Cloud and receive your results quickly.

Today, we’re excited to announce the availability of the Android 7.1 Developer Preview on Firebase Test Lab virtual devices. In addition to testing the Android 7.1 Developer Preview on your physical Android Device with the Android Beta program, or on your local Android Emulator, you can use the Firebase Test Lab to scale your app testing to hundreds of Android virtual devices.

You can also use Firebase Test Lab to perform your own testing. If you don’t have any test scripts, Robo test is ideal for doing your basic compatibility testing on the new platform. It crawls your app in an attempt to find crashes. You can also use the Espresso Test Recorder in Android Studio to record your own instrumentation tests without writing any code.

From now until the end of December (12/31/2016), Firebase Test Lab will be offered at no charge on the Firebase Blaze plan for all virtual devices, to help you ensure the compatibility of your app with the Android 7.1 Developer Preview release, as well as with other Android releases.

Prepare your app for API level 25, then go to the Firebase Test Lab console to run your first test.

Happy testing!

Robo tests uncovering a crash on Android 7.1 Developer Preview for the Flood-It! app.

Categories: Programming

Welcome to Playtime!

Android Developers Blog - Thu, 11/03/2016 - 19:00

Posted by Larissa Fontaine, Director, Global Head of Apps Business Development, Google Play

Almost three years ago, we started the first of an ongoing series of developer events, called Playtime, dedicated to educating partners on best practices and tools available to improve their apps and games and grow successful businesses on Google Play. It was originally a modest gathering that was held on our campus in Mountain View, CA, but it has quickly grown to become one our premier developer events of the year (outside of Google I/O) with a huge global footprint. We've already been in London, Paris, Berlin, San Paulo, New Delhi, Moscow, Tel Aviv, Tokyo, Seoul and more, just to meet directly with developers.

Today, Playtime is back in San Francisco after a long international run! On stage, we'll recap some of our recent efforts to invest in new areas that go beyond the smartphone, as well as announce new tools and highlight the major progress of recently launched features that help developers increase user engagement and make more money.

Extending beyond mobile devices

We live in a multiscreen world and people want to enjoy Android apps on the their phones, and many other devices. That's why we have been extending Google Play to go beyond the smartphone, enabling new app and gaming experiences while on the go, on a chromebook, in the living room and immersed in virtual reality.

The new Daydream device platform is going to be available soon and will come with a Google Play Store filled with high quality VR apps. Android Apps are now available in beta on a few Chromebook devices (same Android apps that currently run on phones and tablets). And we recently announced a developer preview of Android Wear 2.0 which introduced Google Play for Wear. This makes it easier for users to discover and install great apps that work directly on the watch.

Enhanced developer tools and programs

We continue to deliver the best tools for developers in the Play Developer Console to drive user engagement and increase revenue.

Offer new subscription promos

We know how important subscriptions are in helping you monetize and we're continuing to invest in features to support your subscription business. Subscriptions are the fastest growing business model on Play, with consumer spending in subscription apps increasing 10x over the last 3 years. Coming soon, you'll be able to create an introductory price for new subscribers for a set period of time. For example, you can offer a subscription for $1 per month for the first three months before the normal subscription price kicks in. Along with local/custom pricing and free trials already offered, introductory pricing will help you acquire more subscribers and grow your subscription business.

Build anticipation with pre-registration

Earlier this year, we started working with select developer to let users pre-register for major upcoming Android titles, such as Clash Royale (Supercell), and Candy Crush Jelly Saga (King), which has driven more than 30 million installs so far. With pre-registration, users simply tap the 'pre-register' icon to show their interest. The process automatically sets up an alert that prompts a user once the app is available. The program is limited at this time.

Get feedback early with Early Access

In only a few short months, more developers have been leveraging the "Early Access" open beta program to build a user base, interact with early-adopter users and get invaluable feedback before an official launch. It has been an immediate hit! Since the collection became available to all users, open beta titles have been installed over 4 million times (up from 1 million in September) and demand is growing. If you are a developer getting ready to launch on Google Play, you can nominate your app or game to be part of Early Access. Learn more here.

Recognizing art and innovation from Indies

To build awareness of the awesome innovation and art that indie game developers are bringing to users on Google Play, we have invested heavily over the past year in programs like Indie Corner, as well as industry events like the Google Play Indie Games Festival in North America. The new Indie Corner collection, in particular, has already helped million of gamers discover the latest and most innovative releases on Google Play. Developer can nominate indie game for inclusion at g.co/indiecornersubmission. We'll pick the best games to showcase based on the quality of the experience and exemplary use of Google Play game services.

Ensuring fair play for everyone

Our goal is always to do the right thing for both users and developers. As game economies have become more complex, developers are looking for more tools to ensure that all users play fairly to make gameplay fun for everyone. Today, we are announcing a new API (in beta) that helps developers identify users who have requested refunds so they can better manage their economies. This program is currently in early beta and interested developers can sign up to learn more here.

It has been another great year for Google Play thanks to the continued feedback and support from the developer community.

Categories: Programming

Software Architecture for the Unknown

From the Editor of Methods & Tools - Thu, 11/03/2016 - 16:35
In this SATURN 2016 Keynote, Grady Booch discusses about architecting the unknown. There are many systems that we know how to architect (usually because we’ve built them many times before). There also many systems for which we know a process that will lead us to a reasonable architecture (usually because the forces on our project […]

Efficiency Rants and Raves: Twitter Chat Thursday

I’m doing a Twitter chat November 3 at 4pm Eastern/8pm UK with David Daly. David posted the video of our conversation as prep for the Twitter chat.

Today he tweeted this: “How do you optimize for features? That’s flow efficiency.” Yes, I said that.

There were several Twitter rants about the use of the word “efficiency.” Okay. I can understand that. I don’t try to be efficient as much as I try to be effective.

However, I’ve discussed the ideas of resource efficiency and flow efficiency in several places:

And more. Take a look at the flow efficiency tag on my site.

Here’s the problem with the word, “efficiency.” It’s already in the management¬†lexicon. We can’t stop people from using it. However, we can help them differentiate between resource efficiency (where you optimize for a person), and flow efficiency (where you optimize for features). One of the folks discussing this in the hashtag said he optimized for learning, not speed of features. That’s fine.

Flow efficiency optimizes for moving work through the team. If the work you want is learning, terrific. If the work you want is a finished feature, no problem. Both these require the flow through the team—flow efficiency—and not optimization for a given person.

I’ve mentioned this book before, but I’ll suggest it again. Please take a look at this book: This is Lean: Resolving the Efficiency Paradox.

If I want to change management, I need to speak their language. Right now, “efficiency” is part of their language. I want to move that discussion to helping them realize there is a difference between resource efficiency and flow efficiency.

I hope you decide to join us on the chat (which is about hiring for DevOps). I will be typing as fast as my fingers will go

Categories: Project Management