All posts tagged: programming

There are many different agile development methods and process frameworks, with Extreme Programming, Scrum, Kanban, and Dynamic Systems Development Method being some of the best known. Although there are many different agile process frameworks and methods, most are fundamentally similar in that they promote teamwork, collaboration and process adaptability throughout the whole life cycle of a development project. 

The various agile methodologies share much of the same underlying philosophy as well as many of the same characteristics and practices. From an implementation standpoint, however, each has its own combination of practices and terminology. Most agile methods break tasks into small increments with minimal planning, without directly involving long-term planning.

At the end of teach iteration in the agile process, a working product is demonstrated to stakeholders. This minimises overall risk and allows the project to adapt to changes quickly. Iterations might not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration. 

Multiple iterations might be required to release a product or new features. No matter what development disciplines are required, each agile team contains a customer representative, for example the “Product Owner” in the Scrum method. This person is appointed by stakeholders to act on their behalf and makes a commitment to be available for developers to answer mid-iteration questions. 

At the end of each iteration, stakeholders and the customer representative review the project’s progress and re-evaluate project priorities with a view to optimising the project’s return on investment and ensuring alignment with customer needs and business goals.

Extreme Programming, which has emerged as one of the most popular but sometimes controversial agile methodologies, is a disciplined approach to delivering high-quality software quickly and continuously. It promotes high customer involvement, rapid feedback loops, continuous testing, continuous planning, and close teamwork to deliver working software at very frequent intervals, typically every one to three weeks. 

The original model of Extreme Programming (XP) is based on four simple values of simplicity, communication, feedback and courage, backed up by various supporting practices such as pair programming, test-driven development, continuous integration and collective code ownership. 

In an XP project, the customer or customer advocate works very closely with the development team to define and prioritise granular units of functionality referred to as “user stories”. The development team estimates, plans, and delivers the highest priority user stories in the form of working, tested software on an iteration-by-iteration basis.

Scrum is another popular agile project management framework; a lightweight framework with broad applicability for managing and controlling iterative and incremental projects of all kinds. Scrum has achieved increasing popularity in the agile software development community due to its simplicity, proven productivity, and ability to act as a wrapper for various engineering practices promoted by other agile methodologies. 

Using the Scrum methodology, the product owner works closely with the team to identify and prioritise system functionality in form of a “product backlog”. The product backlog consists of features, bug fixes, non-functional requirements and anything else that needs to be done in order to successfully deliver a working software system. 

With priorities driven by the product owner – cross-functional teams estimate and sign-up to deliver “potentially shippable increments” of software during successive “sprints” typically lasting 30 days. Once the product backlog for any given sprint is committed, no additional functionality can be added to the sprint except by the development team.

Kanban is another agile method used by organisations to manage the creation of products with an emphasis on continual delivery while not overburdening the development team. Like Scrum, Kanban is a process designed to help teams work together more effectively. 

It is based on the three basic principles of visualisation of the work to be done on a given day using large noticeboards, walls or “information radiators”, since seeing all the items in the context of each other can be very informative, limiting of the amount of work in progress at any given time, which helps to balance the flow-based approach so that teams don’t start too much work or commit too much work at once, and the enhancement of efficient workflow, where the next highest-priority task from the backlog is underway quickly once a previous task is completed.

The Dynamic Systems Delivery Method, or DSDM, is another important agile method, which grew out of the need to provide an industry standard project delivery framework for what used to be referred to as RLX2apid Application Development or RAD. 

While RAD was very popular in the early 1990s, the RAD approach to software delivery evolved in a fairly unstructured manner. As a result, the DSDM Consortium was created and convened with the goal of devising and promoting a common industry framework for rapid software delivery, and since then the DSDM methodology has evolved and matured to provide a comprehensive foundation for planning, managing, executing, and scaling agile process and iterative software development projects. 

DSDM specifically calls out “fitness for business purpose” as the primary criteria for delivery and acceptance of a system, focussing on the useful 80% of the system that can be deployed in 20% of the time. Requirements are baselined at a high level early in the project. Rework is built into the process, and all development changes must be reversible. Requirements are planned and delivered in short, fixed-length time-boxes, also referred to as iterations, and requirements for DSDM projects are prioritised into “must have”, “should have”, “could have” and “won’t have” categories. 

All critical work must be completed in a DSDM project, but it is also important that not every requirement in a project or time-box is considered critical. Within each time-box, less critical items are included so that, if necessary, they can be removed to keep from impacting higher priority requirements on the schedule. The DSDM project framework is independent of, and can be implemented in conjunction with, other iterative agile methodologies such as Extreme Programming. 

Agile hardware development may seem complex, or quite foreign – however the methods used can decrease the period of time from idea to final product launch – with the right partners. Here at the LX Group we can partner with you – finding synergy with your ideas and our experience to create final products that exceed your expectations.

To get started, join us for an obligation-free and confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design.

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.






Muhammad AwaisFrameworks for Agile Hardware Development

Next in our series examining emerging power-efficient wireless chipsets, we consider the CC3000 series from Texas Instruments. As you may already understand, 802.11 wireless LAN standards are an attractive technology for building networks of wireless sensors and embedded devices due to industry familiarity and the availability of nearly ubiquitous existing network infrastructure.

The Texas Instruments CC3000 is a self-contained 802.11b/g wireless network processor that lowers the cost and complexity of adding Internet connectivity to an embedded Internet-of-Things network, allowing wireless LAN to be added to just about any existing microcontroller system relatively easily and at very low cost.

CC3000

The CC3000 integrates the IPv4 TCP/IP stack, all the drivers and the security supplicant in the device, making it easily portable to lightweight microcontrollers without the memory burden of implementing a TCP/IP stack in the host microcontroller – a big advantage where relatively low-power, low-cost platforms such as 8-bit AVR or PIC microcontrollers with minimal memory are used. Furthermore, this compact module measures only 16.5mm x 11.5mm.

As it doesn’t require an external crystal or antenna balun, and in fact requires almost no external components except for an SPI interface to the host microcontroller, a regulated 3.3 volt supply, a few decoupling capacitors and antenna matching components and a 2.4 GHz 50-ohm antenna – and with a low cost of around ten dollars, the CC3000 is easy to design for and can meet many budgetary requirements.

This low cost is a game changer compared to most other embedded 802.11 solutions on the market at present, and allows wireless LAN connectivity to be added to existing embedded designs with relatively low complexity, minimal space, and a low cost. The flexible 2.7-4.8V voltage supply specification of the CC3000 offers great flexibility when combined with battery power or energy harvesting solutions (although 802.11 is not really intended as an ultra-low-power high-efficiency networking standard for battery powered wireless sensor networks and Internet-of-Things networks in the same way that, say, 802.1.4 or Bluetooth Low Energy are).

However, this chip is not a module with a built-in antenna or RF connector and a 50-ohm 2.4 GHz antenna must be added externally, meaning that the designer must have a little familiarity with microwave PCB design, such as microstrip transmission line layout and the choice of the right antenna connector. However, this offers the designer complete flexibility to choose the most appropriate architecture for the size, range and gain requirements of the design – a larger external antenna, a compact chip antenna, or an antenna designed into the PCB layout and fabricated as part of the PCB, with no component assembly required and no bill-of-materials cost.

Whilst development and evaluation boards for the CC3000 are available, this is perhaps one minor downside of the device’s small, ultra-compact package and lack of an integrated RF antenna – the design and fabrication of a custom microwave-capable printed circuit board is almost certainly required to use this device, especially if you decide for whatever reason that the existing evaluation boards are not suitable for your application.

Furthermore, the CC3000 is a relatively new device on the market, meaning that it may not have as much community support, documentation, community open-hardware following and a base of experienced users when compared to other, older wireless LAN chipsets or devices.

CC3000 reference designs available from Texas Instruments demonstrate chip-antenna based reference implementations that are already FCC, IC and CE certified, making it relatively easy to develop an 802.11-connected system that can pass compliance testing for products going into markets where such compliance is needed – provided the reference design is used without modification, with a chip antenna.

TI CC3000

Additionally, the CC3000 is provided as a complete platform solution, with resources such as sample applications, API guides, porting guides and other extensive documentation provided and supported by TI.

The CC3000 library provided by TI for their MSP430 microcontroller family has recently been ported to the open-source Arduino platform by the developer community, allowing even a bare-bones Arduino-compatible AVR development board to connect to a wireless LAN using only a handful of components and only consuming about 12k of Flash and 350 bytes of RAM to run the open-source CC3000 library code, meaning that the Arduino still has sufficient resources left over to do many other interesting things.

An extra lightweight version of the library consumes somewhere between 2k and 6k of Flash, meaning that basic Internet connectivity is possible even on very small microcontrollers with very limited resources, such as the Atmel ATtiny series.

If you’re interested in designing around the TI CC3000 chipset but don’t have the expertise in PCB antenna design, embedded networking hardware – or just need to have it taken care of by an team of experts – but you’re not sure how to progress with a reliable implementation, we can partner with you to take care of this either in revisions of existing products or as part of new designs.

With our experience in retail and commercial products we have the ability to target your product’s design to the required end-user market and all the steps required to make it happen.

We can create or tailor just about anything from a wireless temperature sensor to a complete Internet-enabled system for you – within your required time-frame and your budget. For more information or a confidential discussion about your ideas and how we can help bring them to life – click here to contact us, or telephone 1800 810 124.

LX is an award-winning electronics design company based in Sydney, Australia. LX services include full turnkey design, electronics, hardware, software and firmware design. LX specialises in embedded systems and wireless technologies design. https://lx-group.com.au

Published by LX Pty Ltd for itself and the LX Group of companies, including LX Design House, LX Solutions and LX Consulting, LX Innovations.

Muhammad AwaisLX Group examines the Texas Instruments CC3000 Wireless Chipset