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
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!
I've been happy with my 2016 HTPC, but the situation has changed, largely because of something I mentioned in passing back in November:
The Xbox One and PS4 are effectively plain old PCs, built on:
The golden age of x86 gaming is well upon us. That's why the future of PC gaming is looking brighter every day. We can see it coming true in the solid GPU and idle power improvements in Skylake, riding the inevitable wave of x86 becoming the dominant kind of (non mobile, anyway) gaming for the forseeable future.
And then, the bombshell. It is all but announced that Sony will be upgrading the PS4 this year, no more than three years after it was first introduced … just like you would upgrade a PC.
Sony may be tight-lipped for now, but it's looking increasingly likely that the company will release an updated version of the PlayStation 4 later this year. So far, the rumoured console has gone under the moniker PS4K or PS4.5, but a new report from gaming site GiantBomb suggests that the codename for the console is "NEO," and it even provides hardware specs for the PlayStation 4's improved CPU, GPU, and higher bandwidth memory.
In PC enthusiast parlance, you might say Sony just slotted in a new video card, a faster CPU, and slightly higher speed RAM.
This is old hat for PCs, but to release a new, faster model that is perfectly backwards compatible is almost unprecedented in the console world. I have to wonder if this is partially due to the intense performance pressure of VR, but whatever the reason, I applaud Sony for taking this step. It's a giant leap towards consoles being more like PCs, and another sign that the golden age of x86 is really and truly here.
I hate to break this to PS4 enthusiasts, but as big of an upgrade as that is – and it really is – it's still nowhere near enough power to drive modern games at 4k. Nvidia's latest and greatest 1080 GTX can only sometimes manage 30fps at 4k. The increase in required GPU power when going from 1080p to 4k is so vast that even the PC "cost is no object" folks who will happily pay $600 for a video card and $1000 for the rest of their box have some difficulty getting there today. Stuffing all that into a $299 box for the masses is going to take quite a few more years.
Still, I like the idea of the PS4 Neo so much that I'm considering buying it myself. I strongly support this sea change in console upgradeability, even though I swore I'd stick with the Xbox One this generation. To be honest, my Xbox One has been a disappointment to me. I bought the "Elite" edition because it had a hybrid 1TB drive, and then added a 512GB USB 3.0 SSD to the thing and painstakingly moved all my games over to that, and it is still appallingly slow to boot, to log in, to page through the UI, to load games. It's also noisy under load and sounds like a broken down air conditioner even when in low power, background mode. The Xbox One experience is way too often drudgery and random errors instead of the gaming fun it's supposed to be. Although I do unabashedly love the new controller, I feel like the Xbox One is, overall, a worse gaming experience than the Xbox 360 was. And that's sad.
Or maybe I'm just spoiled by PC performance, and the relatively crippled flavor of PC you get in these $399 console boxes. If all evidence points to the golden age of x86 being upon us, why not double down on x86 in the living room? Heck, while I'm at it … why not triple down?
This, my friends, is what tripling down on x86 in the living room looks like.
It's Intel's latest Skull Canyon NUC. What does that acronym stand for? Too embarrassing to explain. Let's just pretend it means "tiny awesome x86 PC". What's significant about this box is it contains the first on-die GPU Intel has ever shipped that can legitimately be considered console class.
It's not cheap at $699, but this tiny box bristles with cutting edge x86 tech:
All impressive, but the most remarkable items are the GPU and the Thunderbolt 3 port. Putting together a HTPC that can kick an Xbox One's butt as a gaming box is now as simple as adding these three items together:
Ok, fine, it's a cool $1,080 plus tax compared to $399 for one of those console x86 boxes. But did I mention it has skulls on it? Skulls!
The CPU and disk performance on offer here are hilariously far beyond what's available on current consoles:
Disk performance of the two internal PCIe 3.0 4x M.2 slots, assuming you choose a proper NVMe drive as you should, is measured in not megabytes per second but gigabytes per second. Meanwhile consoles lumber on with, at best, hybrid drives.
But most importantly, its GPU performance is on par with current consoles. NUC blog measured 41fps average in Battlefield 4 at 1080p and medium settings. Digging through old benchmarks I find plenty of pages where a Radeon 78xx or 77xx series video card, the closest analog to what's in the XBox One and PS4, achieves a similar result in Battlefield 4:
I personally benchmarked GRID 2 at 720p (high detail) on all three of the last HTPC models I owned:MaxMinAvg i3-4130T, HD 4400322127 i3-6100T, HD 530503239 i7-6770HQ, Iris Pro 580965978
When I up the resolution to 1080p, I get 59fps average, 38 min, 71 max. Checking with Notebookcheck's exhaustive benchmark database, that is closest to the AMD R7 250, a rebranded Radeon 7770.
What we have here is legitimately the first on-die GPU that can compete with a low-end discrete video card from AMD or Nvidia. Granted, an older one, one you could buy for about $80 today, but one that is certainly equivalent to what's in the Xbox One and PS4 right now. This is a real first for Intel, and it probably won't be the last time, considering that on-die GPU performance increases have massively outpaced CPU performance increases for the last 5 years.
As for power usage, I was pleasantly surprised to measure that this box idles at 15w at the Windows Desktop doing nothing, and drops to 13w when the display sleeps. Considering the best idle numbers I've measured are from the Scooter Computer at 7w and my previous HTPC build at 10w, that's not bad at all! Under full game load, it's more like 70 to 80 watts, and in typical light use, 20 to 30 watts. It's the idle number that matters the most, as that represents the typical state of the box. And compared to the 75 watts a console uses even when idling at the dashboard, it's no contest.
Of course, 4k video playback is no problem, though 10-bit 4K video may be a stretch. If that's not enough — if you dream bigger than medium detail 1080p gameplay — the presence of a Thunderbolt 3 port on this little box means you can, at considerable expense, use any external GPU of your choice.
That's the Razer Core external graphics dock, and it's $499 all by itself, but it opens up an entire world of upgrading your GPU to whatever the heck you want, as long as your x86 computer has a Thunderbolt 3 port. And it really works! In fact, here's a video of it working live with this exact configuration:
Zero games are meaningfully CPU limited today; the disk and CPU performance of this Skull Canyon NUC is already so vastly far ahead of current x86 consoles, even the PS4 Neo that's about to be introduced. So being able to replace the one piece that needs to be the most replaceable is huge. Down the road you can add the latest, greatest GPU model whenever you want, just by plugging it in!
The only downside of using such a small box as my HTPC is that my two 2.5" 2TB media drives become external USB 3.0 enclosures, and I am limited by the 4 USB ports. So it's a little … cable-y in there. But I've come to terms with that, and its tiny size is an acceptable tradeoff for all the cable and dongle overhead.
I still remember how shocked I was when Apple switched to x86 back in 2005. I was also surprised to discover just how thoroughly both the PS4 and Xbox One embraced x86 in 2013. Add in the current furor over VR, plus the PS4 Neo opening new console upgrade paths, and the future of x86 as a gaming platform is rapidly approaching supernova.
If you want to experience what console gaming will be like in 10 years, invest in a Skull Canyon NUC and an external Thunderbolt 3 graphics dock today. If we are in a golden age of x86 gaming, this configuration is its logical endpoint.[advertisement] Find a better job the Stack Overflow way - what you need when you need it, no spam, and no scams.
Today at Google I/O, we announced the most significant Android Wear update since its launch two years ago: Android Wear 2.0. Based on what weâve learned from users and developers, we're evolving the platform to improve key experiences on the watch, including watch faces, messaging, and fitness.
Android Wear 2.0 will be available to users this fall. Weâre making a Developer Preview available today and plan to release additional updates throughout the summer, so please send us your feedback early and often. Also, please keep in mind that this preview is a work in progress, and is not yet intended for daily use.Whatâs new?
Today we announced that weâre adding Android apps to Chromebooks, which means users will be able to install the apps they know and love. Later this year you can expand your appâs reach to a new hardware platform and wider audience while maximizing the Google Play ecosystem. With expanded app availability, new use cases and improved workflows can be achieved for all Chromebook users, whether for personal use, for work or for education. As a developer we encourage you to test your app as described here.
Posted by Purnima Kochikar, Director, Apps and Games Business Development, Google Play
During a special ceremony last tonight at Google I/O, we honored ten apps and games for their outstanding achievements as part of the inaugural Google Play Awards.
As we shared onstage, when you look at how Google Play has evolved over the years, itâs pretty amazing. Weâre now reaching over 1 billion users every month and thereâs literally something for everyone. From real-time multiplayer to beautiful Indie games, industry changing startups to innovative uses of mobile technology, developers like you continue to push the boundaries of what apps can do.
Congrats to the following developers in each category!
Marcus Blankenship and I wrote an article,Â Stay Agile with Discovery, to discuss how to help your clients see the benefits of working in an agile or more agile way.
We have seen too many clients want “agile” and not want all the responsibilities that being a Product Owner or customer involves. If your client asks you to be agile and then demands you estimate “everything” and provide a fixed cost, fixed scope “agile” contract, you don’t have to say, “NO.”
You can say, let’s try a discovery project so we (as the provider) can explore what it would take to do “everything.” As we finish this first discovery project, where we will provide working product, you can provide us feedback. Based on that feedback, we might do another discovery project. In fact, you can work in month-long (or two-week long) discovery projects all the way through. Your client can ask for changes that you incorporate into the next discovery.
That’s just one way to help people learn about collaboration and resilience over contracts and guarantees.
If you are a Product Owner or a person who represents the customer, you might like our Practical Product Owner workshop.
The simple cumulative flow diagram (CFD) used inÂ Metrics:Â Cumulative Flow Diagrams â BasicsÂ and in moreÂ complex versionsÂ provide a basis for interpreting the flow of work through a process. A CFD can help everyone from team members to program managers to gain insight into issues, cycle time and likely completion dates. Learning to read a CFD will provide a powerful tool to spot issues that a team, teams or program may be facing. But to get the most value a practitioner needs to decide on granularity, a unit of measure, and time frame needed to make decisions.
Granularity / Complexity.Â As we have seen, organizations use CFDs to reflect any consistent process. In order to reflect the complexity of software development or maintenance requires identifying the flow of work. Often organizations begin with a process map when constructing a CFD or kanban board.Â In order to develop a CFD, it is rarely necessary to include the all of the tasks, activities and parameters, rather identify the major state changes.Â A few examples of state changes for a piece of work could include story definition, design, coding and unit testing and integration testing (just of few of the typical state changes between an idea and functional code). In terms of granularity, a CFD is typically more a reflection of aÂ value chain mapÂ than a process map. The decision of the level of granularity and complexity is always a balance between the cost and effort needed to collect, analyze and display the data. Â Most importantly, granularity is driven by the data needed to informÂ keyÂ theÂ decisions. More complexity generates a higher cost of data collection and a larger the potential impact on the process being measured.
Unit of Measure: Value, Stories or Points. All CFDâs have two axes: time frame and units of measure. Time is the X-axis is some unit of time (see below) and theÂ Y-axisÂ is a measure of what the team is delivering.Â The most common CFDÂ uses stories to measure the flow of work through the process.Â The common problem with using stories is that the varying levels of granularity can mean that one story is far larger than another. Story points and function points are techniques used to consistently size stories.Â Value is another [WHAT?] used to develop aÂ consistent understanding of the amount work flowing through the process.Â In scenarios that require combining the performance of multiple teams, a consistent sizing mechanism makes reporting easier for groups with different perspectives to understand.
Timeframe or Reporting Period. Â In most Agile and lean efforts, the data needed to develop and maintain cumulative flow diagrams is available on a continuous basis. I recommend having the CFD available to review both at daily stand-ups as well as for higher-level status meetings.Â At a team level, I typically show a chart that reflects the planning period (sprint length for Scrum or Scrumban) and a chart that reflects the process for release.Â At a program level (multiple teams or program increment in SAFe), I generate both a planning period and release CFD that reflects all teams.Â
The decisions on granularity, a unit of measure and timeframe for reporting shape the kindÂ of decisions a team or manager can make using a CFD.Â A simple CFD will not be able to pinpoint problems in specific process steps, but will require relatively little effort to create and maintain. Similarly, decisions about the unit of measure and timeframe change frame what can and canât be done with a CFD. Â Â
Originally posted on Google Chromium Blog
Originally posted on Google for Education blog
Posted by Ed Kupershlak, Google Classroom Software Engineer
Last year, we launched the Classroom API to make it easier for administrators to manage classes, and for developers to integrate their applications with Classroom. Since that time, hundreds of applications have integrated with Classroom to help teachers gamify their classes, improve studentsâ writing skills, build interactive presentations and more.
Do more with coursework in the Classroom API
Today, weâre introducing new coursework endpoints that allow developers to access assignments, grades and workflow. Learning tools can focus on creating great content and, in turn, use Classroom to manage the workflow for assignments created with this content. Gradebooks and reporting systems can now also sync grades with Classroom, eliminating the need for teachers to manually transfer grades.
Several partners have been helping to test the new functionality, including:
Access course Drive folders, groups and materials
In addition to the coursework endpoints, weâve added new functionality to our existing course and roster API endpoints. Developers can now access course Drive folders, groups and materials. Applications can use this new functionality to store files in the same Drive folder as the rest of the resources in a class, or use course groups to manage file sharing permissions.
In the coming months, weâll be adding more coursework management capabilities. When we do, weâll post updates to the developer forum and issue tracker. We look forward to working together to make it even easier for teachers and students to use the tools they love with Classroom. Developers, please review the documentation, the FAQ, and ask questions on Stack Overflow. Also, donât forget to let us know what youâre building using the #withClassroom hashtag on Twitter or G+. And teachers, check out this list of applications that work well with Classroom today.
Posted by Andrey Doronichev, Group Product Manager, Google VR
In Daydream Labs, the Google VR team explores virtual realityâs possibilities and shares what we learn with the world. While itâs still early days, the VR community has already come a long way in understanding what works well in VR across hardware, software, video, and much more. But, part of what makes developing for VR so exciting is that thereâs still so much more to discover.
Apps are a big focus for Daydream Labs. In the past year, weâve built more than 60 app experiments that test different use cases and interaction designs. To learn fast, we build two new app prototypes each week. Not all of our experiments are successful, but we learn something new with each one.
For example, in one week we built a virtual drum kit that used HTC Vive controllers as drumsticks. The following week, when we were debating how to make typing in VR more natural and playful, we thought â âwhat if we made a keyboard out of tiny drums?â
We were initially skeptical that drumsticks could be more efficient than direct hand interaction, but the result surprised us. Not only was typing with drumsticks faster than with a laser pointer, it was really fun! We even built a game that lets you track your words per minute (mine was 50 wpm!).
Daydream Labs is just getting started. This post is the first in an ongoing series sharing what weâve learned through our experiments so stay tuned for more! You can also see more of what weâve learned about VR interactions, immersion, and social design by watching our Google I/O talks on the live stream.
Posted by Nathan Martz, Product Manager, Daydream
Two years ago at Google I/O, we introduced Google Cardboard, a simple and fun way to experience virtual reality on your smartphone. Since then, we've grown the Google VR family with Expeditions and Jump, and this week at Google I/O, we announced Daydream, a platform for high quality mobile virtual reality.Jumpâin the hands of creators and more cameras on the way
We announced Jump, cameras and software to make producing beautiful VR video simple, at I/O last year. Jump cameras are now in the hands of media partners such as Paramount Pictures, The New York Times, and Discovery Communications. Virtual reality production companies including WEVR, Vrse, The Secret Location, Surreal, Specular Theory, Panograma, and RYOT also have cameras in hand. We can't wait to see the wide variety of immersive videos these creators will share with a growing VR audience.
To enable cameras in a range of shapes and sizes and price points. Today, the Jump ecosystem expands with two partnerships to build Jump cameras. First, we're working with Yi Technology on a rig based around their new 4K Action Cam, coming later this year.
With Jump, we've also seen incredible interest from filmmakers. Of course when you're creating the best content you want the absolute highest quality, cinema-grade camera available. To help create this, we're collaborating with IMAX to develop a very high-end cinema-grade Jump camera.ExpeditionsâOne year, one million students
More than one million students from over 11 countries have taken an Expedition since we introduced the Google Expeditions Pioneer Program last May. The program lets students take virtual reality trips to over 200 places including Buckingham Palace, underwater in the Great Barrier Reefâand in seventh grader Lance Teeselinkâs caseâDubaiâs Burj Khalifa, the tallest building in the world.
And soon, students will have even more places to visit, virtually, thanks to new partnerships with the Associated Press and Getty Images. These partners will provide the Expeditions program with high-resolution VR imagery for current events to help students better understand whatâs happening around the world.Daydreamâhigh quality VR on your Android smartphone
Daydream is our new platform for high quality mobile virtual reality, coming this fall. Over time, Daydream will encompass VR devices in many shapes and sizes, and Daydream will enable high quality VR on Android smartphones.
We are working with a number of smartphone manufacturers to create a specification for Daydream-ready phones. These smartphones enable VR experiences with high-performance sensors for smooth, accurate head tracking, fast response displays to minimize blur, and powerful mobile processors. Daydream-ready phones take advantage of VR mode in Android N, a set of powerful optimizations for virtual reality built right into Android.
With Daydream, we've also created a reference design for a comfortable headset and an intuitive controller. And, yes we're building one too. The headset and controller work in tandem to provide rich, immersive experiences. Take a look at how the controller lets you interact in VR:Build for Daydream
The most important part of virtual reality is what you experience. Some of the world's best content creators and game studios are bringing their content to Daydream. You will also have your favorite Google apps including Play Movies, Street View, Google Photos, and YouTube.
You can start building for Daydream today. The Google VR SDK now includes a C++ NDK. And if you develop with Unreal or Unity, Daydream will be natively supported by both engines. Visit the Daydream developer site where you can get access the tools. Plus, with Android N Developer Preview 3 you can use the Nexus 6P as a Daydream developer kit.
This is just the beginning for Daydream. Weâll be sharing much more on this blog over the coming months. Weâre excited to build the next chapter of VR with you.
Do not deny the classical approach, simply as a reaction, or you will have created another pattern and trapped yourself there.
â Bruce Lee
Any new innovative or revolutionary suggestion in the software development world, needs to be anchored on the established principles of how to manage the spend of other people's money. If it's your own money, spend as you please - no one cares.
But if you're spending other people's money to produce value in exchange for that money, those providing the money likely have a fiduciary obligation to know something to some level of confidence how much it will cost, when it will be done, and what they'll get for that that cost and time.
To suggest otherwise without a foundation of principles by which this new and innovative idea can be tested isÂ selling snake oil to the uninformed. That approach has worked since the dawn of time - I have the solution to your unnamedÂ ailment, just try this magicÂ elixir and all will be better.Â
I see a lot of confusion around velocity in new-to-agile teams.
Too many people treat velocity as an acceleration measurement. That is, they expect velocity to increase to some large number, as a stable state.
Velocity is a rate of change coupled with direction. When managers think they can measure a team with velocity, they confuse velocity with acceleration.
As I enter a highway, I have a higher rate of acceleration. As I continue to drive, I achieve a stable state: I get into a laneÂ and maintain a constant speed. (Well, with any luck.) I stay stableÂ withÂ respect to the road (my direction). My velocity stays the same—especially if I use my cruise control. With a reasonable velocity—that might change a little with traffic—I can get to my destination.
A note on direction: Â I live in the Boston area, where roads curve. North, South, East, and West are useful to other people. We have highways that literally point south that have a designation of “North.” They curve. I don’t find these directions useful. I am more likely to talk about the exit number on a highway or the gas station on a side road. Direction is as contextual as is velocity.
Direction for a project is much more about finishing features. How close to “done” are you? More on that below.
When managers try to use velocity as acceleration, they create schedule games. See Double Your Velocity. That often leads to people taking shortcuts and incurring technical debt.
What can you use instead of velocity? The feature burnup/burndown chart and the product backlog burnup chart.
You chart the total number of features (the green line that wiggles at the top), the features complete (the burnup red line that continues to increase), and the features remaining (the burndown in blue, the line that proceeds down). I like this chart because you can see if things get a little “wonky” during the project.
If you add too many features faster than the team can finish features, you will have aÂ large gap between the green and red lines. The blue line will go up. This chart shows you that. You can see how close to done you are for the project.
I also like the product backlog burnup chart. This shows how much progress a team (or teams) make on all the feature sets. (That helps people realize they should define feature sets. Feature sets help the team see where the product is headed.)
In this chart, the team works on feature set 1 (FS 1) and feature set 2 (FS 2). Those stories are more valuable than anything in feature set 3.
You can see that feature set 2 increased in the number of stories for the 5th milestone/iteration. That also helps people understand when they can expect the project to be done.
Measuring velocityÂ can help a team see what’s happening. See Value of Burndown and Burnup Charts.
However, velocity is for a team. Velocity helps a team see its context over some time period. They get to decide how to show it and what to do about it. If management wants to see progress, the team can measure the features complete, remaining, total chart and the product backlog burnup chart. (I would also measure cumulative flow to see how much work in progress the team has.)
Don’t measure velocity to see progress. Â That’s not the measurement you want or need.
I had a great time with my previous version of theÂ Non-Fiction Writing Workshop: Write Non-Fiction to Enhance Your Business and Reputation. I am offering it again, starting this August 24.
I added another week, so you have the chance to practice more. I am also offering a personal accountability option. If you want, you can track your writing (words or minutes) in a group spreadsheet.
If you want to improve your non-fiction, start with your non-fiction writing, or nudge yourself to writing that book, please join me in the workshop. I’d love to work with you.
Today, weâre enhancing our APIs, making it easier than ever for the developer community to integrate with Android Pay. With just a few lines of code, you can enable quick and seamless checkout to help increase purchase conversions and ongoing engagement.Improve conversions within apps
Google Play reaches over 1 billion monthly active users giving developers the worldâs largest app distribution platform. Last year, Play users installed apps 65 billion times. To keep that great momentum going, weâre continuing to listen to your feedback and invest in more ways to help you grow your app or game business. Today, weâre sharing new features that benefit developers of all sizes.
Today weâre sharing a preview of a new project that we think will change how people experience Android apps. We call it Android Instant Apps, and it evolves Android apps to be able to run instantly, without requiring installation. With Instant Apps, a tap on a URL can open right in an Android app, even if the user doesnât have that app installed.