SCRUM Primer

Scrum Cycle

SCRUM Theory

Empiricism: SCRUM is founded on empirical process control theory, or empiricism. Asserts that knowledge comes from experience and making decisions based on what is known. SCRUM employs an iterative, incremental approach to optimize predictability and control risk.

Three pillars uphold every implementation of empirical process control: transparency, inspection, and adaptation.


Observers share a common understanding of what is being seen. For example:  Those performing the work and those accepting the work product must share a common definition of “Done”.


Inspect SCRUM artifacts and progress toward a Sprint Goal to detect undesirable variances. Should not be so frequent that inspection gets in the way of the work. Most beneficial when diligently performed by skilled inspectors at the point of work.


When  a process deviates outside acceptable limits and the resulting product will be unacceptable; the process or the material being processed must be adjusted. Adjustments must be made as soon as possible to minimize further deviation. Four formal events exist in SCRUM for inspection and adaptation:

Sprint Planning


Sprint Review

Sprint Retrospective

The SCRUM Team

The SCRUM Team consists of a:

Product Owner

SCRUM Master – Servant Leader

Development Team


SCRUM Teams are self-organizing and cross-functional.

  • They choose how best to accomplish their work, rather than being directed by others outside the team.
  • They have all competencies needed to accomplish the work without depending on others.
  • Optimize flexibility, creativity, and productivity. Deliver products iteratively and incrementally.
  • Incremental deliveries of “Done” ensure a potentially useful version of working product.

The Product Owner

Responsible for maximizing the value of the product and the work of the Development Team. The sole person responsible for managing the Product Backlog. Product Backlog management includes:

Clearly expressing Product Backlog items

Ordering the items in the Product Backlog

Optimizing the value of the work the Development Team performs

Ensuring that the Product Backlog is visible, transparent, and clear to all Shows what the SCRUM Team will work on next

The Product Owner may do the above work or have the Development Team do it. However, the Product Owner remains accountable. The Product Owner is one person, not a committee. They may represent the desires of a committee in the Product Backlog, but those wanting to change a Product Backlog item’s priority must address the Product Owner. The Product Owner’s decisions are visible in the content and ordering of the Product Backlog. No one is allowed to tell the Development Team to work from a different set of requirements The Development Team

Only members of the Development Team create the Increment. They are Self-organizing – organize and manage their own work. No one (not even the SCRUM Master) tells the Development Team how to turn Product Backlog into Increments. Development Teams are cross-functional, with all of the skills necessary to create a product Increment.

SCRUM recognizes no titles for Development Team members other than Developer regardless of the work being performed by the person. SCRUM recognizes no sub-teams in the Development Team regardless of particular domains that need to be addressed like testing or business analysis. Accountability belongs to the Development Team as a whole. There are no exceptions to this rule.

Development Team Size

Optimal Development Team size is:

  1. Small enough to remain nimble
  2. Large enough to complete work within a Sprint.

Fewer than three members decreases interaction and results in smaller productivity; smaller teams may encounter skill constraints causing the team to be unable to deliver an increment.

More than nine members requires too much coordination. Large teams generate too much complexity for an empirical process to manage. The Product Owner and SCRUM Master roles are not included in this count unless they are also executing the work of the Sprint Backlog.

The SCRUM Master

Ensures SCRUM is understood and enacted ,team adheres to SCRUM theory, practices, and rules. The SCRUM Master is a servant-leader for the SCRUM Team. Helps everyone understand which interactions are helpful and which aren’t. They help everyone change these interactions to maximize the value.

SCRUM Master Service to the Product Owner

Develop the techniques for effective Product Backlog management. They help the SCRUM Team understand the need for clear and concise Product Backlog items. Understanding product planning in an empirical environment and ensuring the Product Owner knows how to arrange the Product Backlog to maximize value,  understanding and practicing agility and facilitating SCRUM events as requested or needed.

SCRUM Master Service to the Development Team

Coaching the Development Team in self-organization and cross-functionality and helping the Development Team to create high-value products. They removing impediments to the Development Team’s progress by facilitating SCRUM events as requested or needed.

Coaching the Development Team in organizational environments in which SCRUM is not yet fully adopted and understood.

SCRUM Master Service to the Organization

Leading and coaching the organization in its SCRUM adoption. Planning SCRUM implementations within the organization. They helping employees and stakeholders understand and enact SCRUM and empirical product development. Working with other SCRUM Masters to increase the effectiveness of the application of SCRUM in the organization

SCRUM Events

Minimize the need for meetings not defined in SCRUM.

Time-boxed events such that every event has a maximum duration. Once a Sprint begins, its duration is fixed and cannot be shortened or lengthened. Events end whenever the purpose of the event is achieved. Ensure an appropriate amount of time is spent without allowing waste in the process. Each event in SCRUM is a formal opportunity to inspect and adapt something. Enables critical transparency and inspection.

Failure to include any of these events results in reduced transparency and is a lost opportunity to inspect and adapt.

The Sprint

A time-box of one month or less during which a “Done”, useable, and potentially releasable product Increment is created. A new Sprint starts immediately after the conclusion of the previous Sprint.

Sprints contain and consist of :

  1. Sprint Planning
  2. Daily StandUps
  3. Development Work
  4. Sprint Review
  5. Sprint Retrospective.

During the Sprint:

No changes are made that would endanger the Sprint Goal. Quality goals do not decrease. Scope may be clarified and re-negotiated between the Product Owner and Development Team as more is learned. Each Sprint may be considered a project with no more than a one-month horizon. Each Sprint has a definition of what is to be built, a design and flexible plan that will guide building it. Sprints are limited to one calendar month. When a Sprint’s horizon is too long the definitions may change, complexity may rise and risk may increase.

Sprints enable predictability by ensuring inspection and adaptation of progress toward a Sprint Goal at least every calendar month. Sprints also limit risk to one calendar month of cost.

Cancelling a Sprint

A Sprint can be cancelled before the Sprint time-box is over. Only the Product Owner has the authority to cancel the Sprint and may do so under influence from the stakeholders, the Development Team, or the SCRUM Master.

A Sprint would be cancelled if the Sprint Goal becomes obsolete or if the company changes direction or if market or technology conditions change. It whould be cancelled if it no longer makes sense given the circumstances.

Due to the short duration of Sprints, cancellation rarely makes sense. When a Sprint is cancelled, any completed and “Done” Product Backlog items are reviewed. If part of the work is releasable, the Product Owner typically accepts it.

All incomplete Product Backlog Items are re-estimated and put back on the Product Backlog. The work done on them depreciates quickly and must be frequently re-estimated. Sprint cancellations consume resources, since everyone has to regroup in another Sprint Planning to start another Sprint. Sprint cancellations are often traumatic to the SCRUM Team, and are very uncommon.

Sprint Planning

This plan is created by the collaborative work of the entire SCRUM Team. Sprint Planning is time-boxed to a maximum of eight hours for a one-month Sprint. For shorter Sprints, the event is usually shorter. The SCRUM Master ensures that the event takes place. Sprint Planning answers the following:

  1. What can be delivered in the Increment resulting from the upcoming Sprint?
  2. How will the work needed to deliver the Increment be achieved?

Topic One: What can be done this Sprint?

The Development Team works to forecast the functionality that will be developed during the Sprint. The Product Owner discusses the objective that the Sprint should achieve and the Product Backlog items that, if completed in the Sprint, would achieve the Sprint Goal.  The entire SCRUM Team collaborates on understanding the work of the Sprint.The input to this meeting is the Product Backlog, the latest product Increment, projected capacity of the Development Team during the Sprint, and past performance of the Development Team. The number of items selected from the Product Backlog for the Sprint is solely up to the Development Team. Only the Development Team can assess what it can accomplish over the upcoming Sprint.

After the Development Team forecasts the Product Backlog items it will deliver in the Sprint, the SCRUM  Team crafts a Sprint Goal. The Sprint Goal is an objective that will be met within the Sprint. It provides guidance to the Development Team on why it is building the Increment.

Topic Two: How will the chosen work get done?

The Development Team decides how it will build this functionality into a “Done” product Increment. The Product Backlog items selected for this Sprint plus the plan for delivering them is called the Sprint Backlog. The Development Team usually starts by designing the system and the work needed to convert the Product Backlog into a working product Increment. Work may be of varying size, or estimated effort. However, enough work is planned during Sprint Planning for the Development Team to forecast what it believes it can do in the upcoming Sprint. Work planned for the first days of the Sprint by the Development Team is decomposed by the end of this meeting, often to units of one day or less. The Development Team self-organizes to undertake the work in the Sprint Backlog. The Product Owner can help to clarify the selected Product Backlog items and make trade-offs. If too much or too little work, it may renegotiate the selected Product Backlog items with the Product Owner. The Development Team may also invite other people to attend in order to provide technical or domain advice. By the end of the Sprint Planning, the Development Team should be able to explain to the Product Owner and SCRUM Master how it intends to work as a self-organizing team to accomplish the Sprint Goal and create the anticipated Increment.

Sprint Goal

The objective set for the Sprint. Met through the implementation of Product Backlog. Provides guidance to the Development Team on why it is building the Increment. It’s created during the Sprint Planning meeting. It remains flexible regarding the functionality implemented within the Sprint. The selected Product Backlog items deliver one coherent function, which can be the Sprint Goal. The Sprint Goal can be any other coherence that causes the Development Team to work together rather than on separate initiatives. If the work turns out to be different than the Development Team expected, they collaborate with the Product Owner to negotiate the scope of Sprint Backlog within the Sprint.

Daily Stand-Up

15-minute time-boxed event to synchronize activities and create a plan for the next 24 hours. Inspecting the work since the last Daily SCRUM.

Forecasting the work that could be done before the next one. Daily SCRUM is held at the same time and place each day to reduce complexity.

During the meeting:

  1. What did I do yesterday that helped the Development Team meet the Sprint Goal?
  2. What will I do today to help the Development Team meet the Sprint Goal?
  3. Do I see any impediment that prevents me or the Development Team from meeting the Sprint Goal?

The Daily SCRUM optimizes the probability that the Development Team will meet the Sprint Goal. The Development Team or team members often meet immediately after the Daily SCRUM for detailed discussions, or to adapt, or replan, the rest of the Sprint’s work.

The SCRUM Master ensures that the Development Team has the meeting and the Development Team is responsible for conducting the Daily SCRUM. The SCRUM Master teaches the Development Team to keep the Daily SCRUM within the 15-minute The SCRUM Master enforces the rule that only Development Team members participate in the Daily SCRUM.

Daily SCRUMs:

  • Improve communications
  • Eliminate other meetings
  • Identify impediments to development for removal
  • Highlight and promote quick decision-making
  • Improve the Development Team’s level of knowledge
  • This is the key inspect and adapt meeting.

 Sprint Review

Held at the end of the Sprint to inspect the Increment and adapt the Product Backlog. The SCRUM Team and stakeholders collaborate about what was done. Attendees collaborate on the next things that could be done to optimize value. This is an informal meeting, not a status meeting. The presentation of the Increment is intended to elicit feedback and foster collaboration. Provided a  four-hour time-boxed meeting for one-month Sprints.

The SCRUM Master ensures that the event takes place and that attendants understand its purpose.

The Sprint Review includes the following elements:

  1. Attendees include the SCRUM Team and key stakeholders invited by the Product Owner
  2. The Product Owner explains what Product Backlog items have been “Done” and what has not been “Done”;
  3. The Development Team discusses what went well during the Sprint, what problems it ran into, and how those problems were solved 4.  The Development Team demonstrates the work that it has “Done” and answers questions about the Increment;
  4. The Product Owner discusses the Product Backlog as it stands.
  5. The entire group collaborates on what to do next

The Sprint Review provides valuable input to subsequent Sprint Planning. The review of how the marketplace or potential use of the product might have changed or the timeline, budget, potential capabilities, and marketplace for the next anticipated release of the product.

The result of the Sprint Review is a revised Product Backlog. The Product Backlog may also be adjusted overall to meet new opportunities.

Sprint Retrospective

An opportunity for the SCRUM Team to inspect itself and create a plan for improvements. It occurs after the Sprint Review and prior to the next Sprint Planning. A three-hour time-boxed meeting for one-month Sprint. The SCRUM Master ensures that the event takes place. The SCRUM Master participates as a peer team member in the meeting.

The purpose of the Sprint Retrospective is to:

  1. Inspect how the last Sprint went with regards to people, relationships, process, and tools
  2. Identify and order the major items that went well and potential improvements
  3. Create a plan for implementing improvements to the way the SCRUM Team does its work
  4. The SCRUM Team plans ways to increase product quality by adapting the definition of “Done”

Although improvements may be implemented at any time, the Sprint Retrospective provides a formal opportunity to focus on inspection and adaptation.

SCRUM Artifacts

Designed to maximize transparency of key information so that everybody has the same understanding.

Product Backlog

An ordered list of everything that might be needed in the product. The single source of requirements for any changes to be made to the product. The Product Owner is responsible for the Product Backlog  including its content, availability, and ordering. A Product Backlog is never complete. The earliest development of it only lays out the initially known and best-understood requirements. The Product Backlog is dynamic; it constantly changes to identify what the product needs to be appropriate, competitive, and useful. As long as a product exists, its Product Backlog also exists. It lists all features, functions, requirements, enhancements, and the Product Backlog items have the attributes of a description, order, estimate and value. As a product is used and gains value, and the marketplace provides feedback, the Product Backlog becomes a larger and more exhaustive list. Multiple SCRUM Teams often work together on the same product. One Product Backlog is used to describe the upcoming work on the product.

Product Backlog refinement is the act of adding detail, estimates, and order. This is an ongoing process in which the Product Owner and the

Development Team collaborate on the details of Product Backlog and usually consumes no more than 10% of the capacity of the Development Team. Product Backlog items can be updated at any time by the Product Owner. Higher ordered Product Backlog items are usually clearer and more detailed than lower ordered ones. More precise estimates are made based on the greater clarity and increased detail, the lower the order, the less detail. Product Backlog items are refined so that any one item can reasonably be “Done” within the Sprint time-box. Product Backlog items that can be “Done” within one Sprint are deemed “Ready”. Product Backlog items usually acquire this degree of transparency through the above described refining activities.

The Development Team is responsible for all estimates. The Product Owner may influence the Development Team by helping it understand and select trade-offs, but the people who will perform the work make the final estimate.

Sprint Backlog

The set of Product Backlog items selected for the Sprint. What functionality will be in the next Increment and the work needed to deliver that functionality into a “Done” Increment. The Sprint Backlog is a plan with enough detail that changes in progress can be understood in the Daily

SCRUM. The Development Team modifies the Sprint Backlog throughout the Sprint. As new work is required, the Development Team adds it to the Sprint Backlog. As work is performed or completed, the estimated remaining work is updated.  When elements of the plan are deemed unnecessary, they are removed. The Sprint Backlog is a highly visible, real-time picture of the work that the Development Team plans to accomplish during the Sprint, and it belongs solely to the Development Team.

physical_scrum_board2 (1)

Burndown Charts

At any point in time, the total work remaining to reach a goal can be summed. The Product Owner tracks this total work remaining at least every Sprint Review. The Product Owner compares this amount with work remaining at previous Sprint Reviews to assess progress toward completing projected work by the desired time for the goal. This information is made transparent to all stakeholders. The use of burn-downs, burn-ups, or cumulative flows demonstrate the key metrics of the sprint, such as velocity. These do not replace the importance of empiricism. In complex environments, what will happen is unknown. Only what has happened may be used for forward-looking decision-making.




The Increment is the sum of all the Product Backlog items completed during a Sprint. At the end of a Sprint, the new Increment must be “Done,” Which means it must be in useable condition and meet the SCRUM Team’s definition of “Done.” Must be in useable condition regardless of whether the Product Owner decides to release it.

Definition of “Done”

Everyone must understand what “Donemeans. Team, members must have a shared understanding of what it means for work to be complete, to ensure transparency. This is the definition of “Done” for the SCRUM Team and is used to assess when work is complete on the product

Increment. If there are multiple SCRUM Teams working on the system or product release, the development teams on all of the SCRUM Teams must mutually define the definition of “Done.” Each Increment is additive to all prior Increments and thoroughly tested, ensuring that all Increments work together.

Artifact Transparency

SCRUM relies on transparency. Decisions to optimize value and control risk are made based on the perceived state of the artifacts. To the extent that transparency is complete, these decisions have a sound basis. To the extent that the artifacts are incompletely transparent, these decisions can be flawed, value may diminish and risk may increase. The SCRUM Master must work with the Product Owner, Development Team, and other involved parties to understand if the artifacts are completely transparent. There are practices for coping with incomplete transparency; the SCRUM Master must help everyone apply the most appropriate practices in the absence of complete transparency. A SCRUM Master can detect incomplete transparency by inspecting the artifacts, sensing patterns, listening closely to what is being said, and detecting differences between expected and real results.The SCRUM Master’s job is to work with the SCRUM Team and the organization to increase the transparency of the artifacts. This work usually involves learning, convincing, and change. Transparency doesn’t occur overnight, but is a path.


Other resources:


Categories: Business, Management, Personal Development, Technology

Blow my mind

Databases – Practical PostgreSQL – The pg_hba.conf file

Databases – Practical PostgreSQL – The pg_hba.conf file

Source: Databases – Practical PostgreSQL – The pg_hba.conf file

I recently had a job to do in which I was required to connect to a Postgresql server and run some queries to find some critical data for the team. I wasn’t provided with a logon or any other information about the tables or schema.

Well thank goodness for my old friend google or I wouldn’t have stood a chance against this problem.

What I learned is that without some modifications to a conf file, you will never, ever connect to a database remotely. You may have success connecting from the command line and might be wondering why you can login to the postgres console, but the exact same creds are failing constantly when trying to connect any other way.

Turns out remote connections require the connection mode to be set to ident or trust to either identify or allow the connection based on the user connection manner and credentials used. Without this knowledge you can easily spend a lot of time troubleshooting something that is actually very straight forward.

I didn’t completely understand the issue until I actually setup and installed Postgresql for myself on my vmware homelab.

These two sources were indispensable in my training:

Digital Ocean:–2


Once I actually set everything up for myself the first it all made a lot more sense. I was able to try all the different scenarios without the fear of breaking production. All in all this was a great learning experience.

These articles are for setting up Postgresql on Centos 7 but there are many other articles out there with similar information for debian or earlier releases.

So get up in them guts and have a poke. I hope you go mildly insane with your new found sql query power.

Categories: Computers, Management, Personal Development, Programming, Security, Technology

Blow my mind

Programmatic Helps Brands Make the Most of Micro-Moments – Think with Google

It’s hard to plan for nonlinear purchase paths, but programmatic advertising can help, enabling brands to reach the right person with the right message in the moment of opportunity. Brands can use programmatic to assemble a consumer’s micro-moments in just the right way—like joining puzzle pieces together—to see a detailed blueprint of consumer intent

Source: Programmatic Helps Brands Make the Most of Micro-Moments – Think with Google

83% of all display buys will be programmatic by 2017. That’s what Google has to say about programmatic on their google+ page. What that tells me is that if you’re not able to harness the power of the tools to deliver relevancy then you might as well not even bother.

The proliferation of devices means that people are connecting their experience across tabs, workstations and devices while on the way to the store to buy the product in person. This makes the marketers job so much more difficult when trying to understand the patterns of their buyers. Fortunately Google has mostly solved the problem for you.

Some say programmatic is the death of creative. I liken it to the death of folk music. The music never died, just it’s audience. It just means creatives have to be.. well …more creative. For those who are inclined to set and forget their campaigns, they will find that Google does a very decent job of managing the interactions for them. However those that are accustomed to squeaking into the first page with lower scores will always be obliterated by those who can generate killer ad copy.

Good luck on your programmatic journey. Please let me know what tips and tricks you’ve discovered that make or break your campaigns.

Categories: Business, Computers, Economics, Google, Technology, Web

Blow my mind

Google AdWords Essential Training |

Download the app to enjoy on-the-go learning.

Source: Google AdWords Essential Training |

This is a quick follow-up to the article I posted recently about the Top 100 Most Expensive Search keywords of 2015. In this article I commented on the total lack of willingness most Adwords marketers have for optimization which can result in a lot of waste and very poor ROI. Yes we want the clicks, but we want the right clicks.

I was really impressed by the candor Brad Basteole used in discussing how to do the job well. I think it’s very important to note that although all the topics of the Adwords certification were covered, it’s incredibly valuable to learn this from an outside perspective other than Google.

So if you’re trying to pass an exam, or just want to be better at your Adwords marketing job, I highly recommend you check these videos out.

Categories: Business, Computers, Economics, Google, Marketing, Personal Development, Technology

Blow my mind

Google’s Top 100 Most Expensive Keywords in 2015 [Infographic]

Google’s PPC system incorporates a countless number of keywords. We found out which ones cost the most.

Source: Google’s Top 100 Most Expensive Keywords in 2015 [Infographic]


Out of necessity I’ve recently had to learn more about how the google search ranking and pay per click auction works. What I’ve learned, and it’s fairly alarming, that due to knowledge gaps and in some cases greed, most search marketers waste a lot of money. Being clever about keyword refinement and targeting, as well as optimizing for quality score can drastically drop cost per click by 200-300% on average. The savings reinvested into more clicks has an incredible compounding effect. When I learned that most marketers are happy to just generate traffic, aka spend click budgets, I really couldn’t believe it. So I looked a little deeper into it and what I found is that there is absolutely no incentive for marketing agencies to put any effort into optimizing. The industry benchmarks for click through and quality score is so abysmal that any minimal effort returns fairly decent results so everything is perceived as successful. PPC generates leads so marketing budgets are happily renewed. Everyone spends so much time patting themselves on the back that no one ever bothers to take a closer look. $2 clicks could easily be $.50 with just a few tiny tweaks. Theoretically that’s 400% improvement in revenue generating leads completely wasted. In truth the whole industry is set to be turned on it’s head. Now that google has dropped the right margin ads, the top 4 spot will become incredibly in-demand. If you aren’t taking great care to refine campaigns with extreme target prejudice then you better be prepared to drop a bank on buying pointless clicks.

Categories: Business, Computers, Economics, Technology

html5 javascript, learn html css, learn html5 online – Microsoft Virtual Academy

Learn HTML5 online with our free course, which also teaches JavaScript and CSS3. Deepen your knowledge with training led by experts in the industry.

Source: html5 javascript, learn html css, learn html5 online – Microsoft Virtual Academy

I can’t believe how good this introduction course on Web development was. (html, css, javascript) The best part about it was the price, FREE!

I had recently completed the javascript and jquery courses in codeacademy and thought I would try to find some intermediate exercises to take it to the next level. That’s when I came across the Microsoft 70-480 exam and popped open the link to the self-guided training for the course. I didn’t expect much out of free videos from Microsoft but in honesty it felt like I was attending an expensive workshop.

The modules are pretty short. Usually around 20 minutes and nothing over 30. The presenters are some of the best in the field and are celebrities if you follow certain circles.

I had no idea that all apps built for the Microsoft Store will use these simple languages. I’m not necessarily a big MS fanboy, but you can see why they are so successfully in their strategy. They empower the workforce to use their tools and win market dominance because of it.

I had fun.

Microsoft also offers a complete beginner’s course here:

And an advanced app store course here:

Categories: Computers, Linguistics, Personal Development, Programming, Technology, Web

Blow my mind

Learn to code | Codecademy

Learn to code interactively, for free.

Source: Learn to code | Codecademy

learn to code

A few years ago Lifehacker had a “coding bootcamp” series that would frequently refer their audience to codeacademy and I always had it in the back of my mind that If I needed some coding skills, that would be the first place I turn. Well as luck turns even after 15 years of solid IT admin/engineer experience I’m finding my skills becoming obsolete and I absolutely do need to learn how to code in order to work with the modern DevOps toolkits like Puppet and Chef.

Over the Christmas holidays I started plunking my way through the html and css modules, then javascript, jquery and angular js. Before I knew it I had dome well over 500 exercises. I should mention that I’m no stranger to the command line and I’ve worked with some scripting in the past with vbs, powershell, batch and bash.

The cool thing about codeacademy is the learning interface. It splits the screen in two with one half showing you the instructions like a cookbook and the other half showing you the terminal or browser output. It’s very similar to working in a development environment where you can split your screen to see the interpreter and output at the same time. The flow is so smooth because the errors they’ve coded are way more intuitive that what you’d see in your interpreter. So you’re constantly learning from the error instead of trying to avoid them at all cost.

They also make learning fun by awarding you with badges for achievements like completing a module or logging in for a 3 day streak. It’s all very fun an encouraging and not intrusive at all. It’s actually quite addictive.

I can’t say enough good things. I now have around 80 examples of sites I’ve coded in my github here. I intend to use this as my portfolio to get a job. I encourage everyone to give it a try and you may find a new talent that was hidden away. Please let me know if you have any recommendations for languages or tools I should learn next. Have fun!



Categories: Computers, Crowdsource, Personal Development, Technology

Blow my mind

List of Google Now voice commands

Google Now can do tons of great stuff using nothing but voice commands. The list is more longer than you might think!

Source: List of Google Now voice commands


Google Now isn’t new but the feature is getting more rich all the time. That’s because it’s learning.

The learning computer has been the dream and destination since Charles Babbage and Ada Lovelace worked together on their invention the Analytical Engine computational device which is the first ancestor to the modern computer. Even in the early infancy the two debated voraciously if the device they invented which only performed the computations they programmed, could one day learn on it’s own and be interacted as though it were not a machine.

Alan Turing knew of this philosophical debate and created a test known as the Turing test which consisted of three questions for being able to tell the difference between a response of a human being from that of a computer. Turing is an incredible man worth study and recently the topic of the movie “The Imitation Game” which chronicled his work on the Enigma machine which he designed to crack the cipher being used by the German’s in World War II. He was able to foresee the power of computers and knew how easily they could be programmed to deceive as much as find truths.

This fantasy which seems like it’s part of a science-fiction novel is incredibly real. Jarvis from Iron Man is here and it’s call Google Now. Apple came out with Siri a few years back and people had a lot of fun at parties showing off the tricks they’d learned to make Siri perform.

Google Now is backed by the Google search algorithms which makes it a little different. Unlike Apple who’s core business is hardware, Google’s core business is about knowing you. They are inventing artificial intelligence that does a better job of demonstrating empathy than an actual human being is capable of doing. Coupled with Moore’s law, the Google AI is expected to be smarter than the smartest man in just a few years. Meaning we indeed will no longer be able to tell the difference between a computer that needed us to program them, and one that does not.

So Google Now may seem like a novelty, and for now it’s function is limited to that which the programmers allow. Rest assured, while we’re “playing” and “trying” Google is learning and their destination is clear. They are making the technology we really need; the technology that doesn’t need us.

Can a computer really think on it’s own? Or are some problems only built for the human brain, no matter how much computational brute force you can throw at it?

Categories: Business, Computers, Crowdsource, Economics, Linguistics, Math, Privacy, Technology

Blow my mind

Manifesto for Agile Software Development

We are uncovering better ways of developing software by doing it and helping others do it. These are our values and principles.

Source: Manifesto for Agile Software Development

As a 15 year IT professional I’ve had the great pleasure of encountering many technologies and aspects of the industry. My work is a great joy to me.

It wasn’t always that way and I think many people feel the same way. When we first entered the working world we were just relieved to have employment. We never dreamed a whole entire organization of mature employees could ever grow to depend on someone so inconsequential as ourselves. In other words, we had no idea how to make an impact.

Fast forward a few years and some trends in the IT industry have really shifted the paradigms. IT is a core competency of the business. Even if you think your business has nothing to do with technology, chances are computers still run everything behind the scenes. Use a mobile smart phone? thoughts so 🙂

This means that we technical people go to work everyday knowing we’re absolutely relied upon to help make the business operation run smoothly.
Does that mean we’re actually achieving anything to help move the business forward?

The answer is, all the firefighting and back slapping we do most often does nothing to advance the strategic mission.

What’s the mission?

If the mission is to make money and turn a profit, then I’m sorry to say but most of my peers have failed in in this test. They’ve come to equate being busy with being important. Their bosses however, continue to recognize and reward them for the late nights and quip “Couldn’t have done it without ya!”

Well chances are the late nights are caused by the IT pros to begin with because they work in silos and concoct monstrous apps and environments that don’t play nicely and outsiders don’t stand a chance of understanding to troubleshoot. Is this what success looks like?

More recently the concept of DevOps which links the notion of throughput (think automotive manufacturing) has made IT professionals reconsider their importance and value to the firm.

We hear it all the time now. Unplanned is the enemy of planned. IT pros shouldn’t be going to work to fix what’s broken. They should have built in security, self-healing and fault tolerance so their time is spent advancing the business mandates instead of attending to unplanned emergencies.

Technologies and frameworks like Cloud and Agile are paving the way for a true DevOps revolution and it may leave many the legacy IT pros wondering where their industry has gone. Chances are all their friends went into other strategic and operations roles that didn’t have the word Microsoft, Cisco, admin or engineer in the title. The people who know how to truly use tech do so as a tool to help them run their companies, not just run the rest of the tech.

The Agile manifesto is one the biggest pieces of this puzzle. It addresses a fundamental psychology flaw in IT pros, the problem always resides with the user. “So and so broke such and such”. Agile shifts the focus directly on the needs of the user (user story) to create the perfect products for them. It relies on self-organizing cross functional teams to be creative and provide the next solutions with greatest business value.

If you have the discipline to apply the principal (ie: don’t fill idle time with clandestine project) then you can’t help but put down your tools and get connected with the business before you pick the tools up again.

The main take away is I see IT pros doing as much harm as they do good. If they would apply the Agile Manifesto to their career they would never had the problem of feeling disconnected from the business ever again.

As my dad ALWAYS says, “If you’ve dug yourself into a hole, put down the shovel.”

Categories: Business, Computers, Economics, Management, Philosophy, Technology

Blow my mind

Here’s a Tesla in Autopilot mode zipping in and out of NYC traffic – KnowTechie

Remember as kids when we used to dream of cars that drove themselves? Well, we all know it’s already happening with Google’s self driving car. But Tesla is going to blow your mind because they recently

Source: Here’s a Tesla in Autopilot mode zipping in and out of NYC traffic – KnowTechie

This is very exciting to me. I’ve been paying attention to Elon Musk for many years as someone who personifies the exponential thinking manifesto. The Tesla is a beautifully designed piece of engineering and I want, I want.

After seeing this video I now want a Tesla even more.

The most recent over-the-air update has added driver-less capabilities to the already extremely cutting edge vehicle. This puts the Tesla years ahead of any of the other makers in terms of innovation.

I think I may be waiting a while for the over-the-air driver-less update for my truck.

Solving the world’s transportation and supply chain challenges with alternative energy solutions may sound like geek talk. The sheer delight in this driver’s expression demonstrates you don’t have to be a scientist or engineer to understand the future is going to be a fun place.

The future is happening right… …now!

Categories: Automotive, Business, Computers, Crowdsource, Economics, Philosophy, Technology

Blow my mind