Intro to Agile for Engineers (Agile for EE)

This article is an overview of agile development basics, including common terms and processes, used during the agile development process. The overview will help engineers understand the agile elements and stages and have a basic understanding of how the agile process identifies and then delivers a work product.
This is an important overview for engineers that want to understand and communicate effectively with their software counterparts in teams that are employing agile processes such as in partner groups or customer teams.

Agile is set of development methods and recommended processes that strive to deliver higher-quality, ‘shippable’ products through iterative and incremental cycles.
Agile development emphasizes on-going evaluation of features to be built, constant streams of feedback, daily interaction, cross-functional teams and self-selection of work items.
The Agile Manifesto, written in 2001 by agile method pioneers, outlines the importance individuals, interactions, working software, collaboration with customers and responsiveness are to the methodology.

The Agile Manifesto reads, in its entirety, as follows:
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.”*

*Agile Manifesto Copyright 2001: Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn,
Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern,
Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas
This declaration may be freely copied in any form, but only in its entirety through this notice.

Benefits

Agile development benefits from working, ‘shippable’, product at the end of each iteration. The work product at the end of each iteration has undergone continuous testing and feature iteration and is ready for production use. Product owners and stakeholders are able to build upon working pieces from each iteration and quickly prioritize features for the next iteration without delay.
A total understanding of the work at hand and constant communication with development, stakeholders, product owners and quality assurance provides cost-savings as expensive delays and testing mishaps are avoided.

Agile Cycle

The agile life-cycle begins with stakeholders and product owners determining what features are possible candidates for inclusion in the product. Product managers leverage stakeholder input to write epics, epics are large user stories that need to be broken down into smaller pieces of work. After an epic is broken down into stories, the stories are prioritized and maintained in a backlog. The backlog is an aggregate of stories pending inclusion in an iteration.
Release planning, iteration planning and daily planning provide iteration teams with the product features that they will work on during iterations.
During release planning developers make estimates about the level of effort required for stories, define what stories will be included in each period of iteration (periods of iteration are known as ‘sprints’ when using an agile scrum methodology).
Aother work product of the planning phase and pre- develoment are test unit cases, these are small unit tests that are written and completed by a developer before beginning work help to increase the quality and accuracy of subsequent code.

Agile Process Stages

The agile process can be implemented in a variety of customized formats. A hallmark of most implementations is requirements gathering and creation of epics and their resulting stories. These become the cornerstone for release planning.
Iteration planning and the backlog go hand in hand as items are pulled from the backlog to be included in a specific iteration or sprint if using scrum methodology.
Estimation is an important part of always improving the iterative process. In the beginning agile estimates can be off the mark but with good practice of iteration retrospective techniques (see next paragraph for more on iteration retrospective) teams learn to estimate well in time.
As the iteration progresses you may hear the term ‘burndown’, this refers to the stories or tasks that have been accomplished so far in an iteration. Items completed and reflected in burndown reports should be demonstrable and shippable.

Agile Testing, Iteration

Testing is an important part of the agile process. Test driven development means that small unit tests are written and manually run by developers right before development.
Automated unit testing enables tests to be written and then performed by software programs designed to test and provide reporting on the results.
Development in agile is continuous, with shippable code being produced constantly. Testing throughout the process vs. just at the end of development, ensures that the iteration is maximized and errors, issues and bugs are found very early on.
At the end of an iteration there will be an interation review, this review is typically an informal demonstration of the working, shippable, code product accomplished during current iteration.
Another goal marker for each iteration is the iteration retrospective. During the iteration retrospective the entire iteration team inspects it’s process and reviews issues that arose during the iteration. Estimates are compared to actual burndown progress to determine the level of accuracy. every iteration attempts to increase estimate accuracy rates. The review is a time to openly determine what worked and what didn’t. The entire team commits to making changes to improve the next iteration.

Agile Methodologies

Agile implementations and methodologies come in many formats. Your organization or your customer’s may use a very traditional implementation or you may see a hybrid form of scrum being used. Whatever the method, the goal of agile methodlogy, a working, shippable product at each iteration, remains.
There are many sources of information to take your agile knowledge to the next level. Courses and certifications in the various aspects of agile are prolific. You can find more information on agile through the Agile Alliance.
http://www.agilealliance.org/

Author: Carol Glennon

Managing Lights and Plugs Made Easy for Developers With Taapi’s API

“…Taapi is gamification at it’s best.” Wired 
“The game is the first global, mobile gaming platform that will have a significant impact on the real-world.” OpenSocial.org

Taapi provides the first, open-source, global, all-purpose energy management API for developers.  

We believe that users should be able to control their light and wall sockets from their favorite applications and that app developers and game builders should be able to incorporate light and wall socket controls into their applications.
Managing lights and plugs has typically been an expensive, proprietary domain using closed source systems. Producers of light and wallsocket controllers do not allow wide developer access to their products in the home or integration of their in-home products with third-party applications.

How Taapi Works
We build wallsocket adapters and smart lightbulbs that operate using a commercial-grade protocol and low-energy WiFi chipset.
Through our smart bulbs and wall socket adpaters we create secure communication between lights and wall sockets to power lights and sockets on and turn them off.
The Taapi systems handle authentication of users devices, auth of user ID’s in your apps via OAuth and creating a completely masked identity for a user’s devices for security.
Taapi also maintains a constant record of state that recalls the state a socket or light was in when it was acted upon by Taapi. Maintaining states ensures that the light or wall socket can be returned to it’s original state when a user wants to regain full control of their lights or wall sockets.

Taapi employs commercial-grade standards in it’s open-source APIs.

Multiple devices can be run off of a Taapi wallsocket.  Lightbulbs can be used for hardwired lights, like overheads.

Taapi creates local WiFi communication between sockets and bulbs by using a hub that connects to your router. The hub communicates securely with the Taapi service and the light’s owner. The Taapi service exposes REST services to developers.

Taapi Cloud Services for Developers

The Taapi Cloud and Service Paths


Easy Integration for iOS, Android and OUYA Enabled Games

Integration with Taapi is optimized for speed and ease of set-up.
Libraries for iOS, Android and a rapid-setup, special build set of classes for OUYA will be available to developers. Integration with Taapi is optimized for speed and ease of set-up.

The Taapi Social Game
The Taapi API is now used to power a social game where unused lights are added to a pool of anonymous lights waiting to be turned off. Players race to turn off lights as they are added to the pool. This game leverages many parts of the API such as session establishment, auth and lights and plug management.
The first Taapi game is available on iOS, Android and the OUYA game console.

The Taapi Social Game

What will the Taapi API offer developers?
Taapi manages the heavy lifting that devs typically associate with environmental controls: hardware, normalization, security, WiFi protocols and local network authentication
We manage those pain points and provide the dev with a manageable API that they can leverage as the dev, and their users, see fit.
Taapi has tools to provide access to a range of game and app developers by providing a full REST API with hooks that can programmatically act on Taapi’s services from your app or service.
The Taapi API will provide access for app and game devs to features such as:

  • Adding new players
  • Authenticating players
  • Calling player stats
  • Calling general country, energy, and date stats
  • Initiating a race session
  • Obtaining the stats for a unique race session
  • Polling for available races

Taapi has selected Atlassian (http://atlassian.com) products for community support, Mashery (http://mashery.com) for API hosting and Taapi has built-in an OpenSocial container for developers to write gadgets for Taapi using the OpenSocial (http://opensocial.org) standard.

Taapi’s OpenSocial container support will allow developers to quickly and easily write OpenSocial compliant gadgets that can call and serve a number of Taapi features like public Taapi use statistics, aggregated stats, individual users stats and game session availability.

The Taapi OpenSocial container will support gadget authentication via OAuth to enable personalized, contextual player information and interaction as well.  Players will be able to add approved gadgets to their instances of the Taapi game and extend Taapi’s functionality.
For example, a developer could write a ‘My Country’ Taapi gadget to alert a player when a session in a specific country is available, authenticate them, opt them into the game session and tweet about their participation, all in that country’s native language(s).

Taapi founder Carol Glennon states, “Support for an accelerated development process was one of our top goals for the Taapi platform. Enabling gadgets through our OpenSocial container makes it easy for developers to gain fast access to our API while writing cool gadgets that users can use in Taapi right away.”

Access to the Taapi API will also be available on Zapier, a service that syncs many different web apps. A developer can use Taapi and Zapier to initiate a number of web actions for example, setting a block of time that lights should be turned off for a user when they schedule a calendar event in the devs application.

Taapi Partners and Community Services for Developers

We Are Counting on YOU
We need your support as a backer now to produce the lightbulbs and wallsockets that will be used in thousands of your users homes and offices.
Enabling us to produce our home kits provides you as a developer with an ever-widing pool of users that are ready to use Taapi with your app and games.

Please come and back us today and pick a great reward. It’s inexpensive, fast and will benefit your app or game greatly.

Taapi Team Experience
The Taapi core executive team have been working on projects together for over a decade and have experienced amazing success in that time. Together, they have a pretty cool history of ability to deliver amazing experiences. Examples of previous work includes delivering mobile apps, games as well as cutting edge and complex 3D animations and solutions for major consumer-focused companies including Time Warner, Intel, CBS, California Tourism, Delta Airlines and National Geographic.

We have been recognized and received over a dozen National and International awards for our work and have been at the cutting edge of technology for a combined four decades.

Examples:
2012 National Geographic Kids Almanac
2011 Visit California iPad application
2011 San Francisco Giants and Safeway2011 San Francisco Giants and Safeway
2011 MLB, 7Eleven and Frito Lay
2010 Stevie award – Most Innovative Company  of the Year
2010 World Cup through FIFA backed 1Goal
2004 Who Wants To Be A Millionaire U.K. (mBlox)

Author: Carol Glennon