What Does Agile Project Management Seek to Enhance?

Introduction

No doubt you have heard of Agile Project Management techniques and how incredible they are. But what does this new breed of project management objectives seek to improve upon? Well, that would be “traditional” project management.

A Project Defined

Before we go too far in this discussion, we better agree upon exactly what a project is. Let’s agree that a project is a planned program of work that requires a definitive amount of time to complete. In addition to time, it requires effort and planning in order to complete. And we would hope, complete successfully. There is also going to most likely be a budget the project must stay within. Finally, we might create goals or objectives along the way.

Agile represents a modernized approach to getting this project done and done right (successfully). AJSNetworking.com will provide you with plenty of great posts on exactly how Agile works. But again, before we get there, what is it replacing?

Traditional Project Management

Around the time of World War II, project management became a formal discipline. It followed the principles created by the manufacturing models of the time. Traditional project management followed what became known as a waterfall approach – meaning you cannot move to the next phase until the preceding phase is complete. The phases of traditional project management became known by many different descriptors, but here we will settle on the following terms for each phase:

  • Requirements
  • Design
  • Development
  • Integration
  • Testing
  • Deployment

Sadly, it was not the intent of the project managers that created the waterfall approach to enforce this “complete the first step, then move to the next” waterfall approach. This is what occurred in the various industries adopting traditional project management.

Sadly, traditional project management approaches for the software industry began failing at an alarming rate. This helped give birth to none other than Agile. I hope you will join me for a continuing series of posts on this new and exciting breed of project management.

Agile

Pearson IT Certification E-Books
icon

Evolving Technologies – Northbound vs. Southbound Protocols

This is another post from my ongoing series here at AJSNetworking regarding Evolving Technologies. This addresses the Evolving Technologies section of the CCIE Written Exams. The complete list of topics and my previous posts can be found here:

Free Evolving Technologies Training!

I think the best way to get a handle on the location of the Northbound and Southbound protocols  is to actually see them in relation to the other components. Remember, when we say network programmability, you should think Software Defined Networking (SDN). Figure 1 below makes this clear:

 Figure 1Evolving

Notice the “Northbound” APIs (protocols) communicate between your network management station running its network apps and the SDN controller. The “Southbound” APIs occur between the controller and the actual network devices themselves.

Northbound APIs

For the Northbound APIs, Cisco likes to use REST-based APIs. What is a REST-based API? A REST API, or an API that is RESTful (adheres to the constraints of REST) follows six constraints:

  • Client-Server – exists to maximize the portability of server-side functions to other platforms. This means that completely different applications, even in different languages, can use the same functions in a REST API.
  • Stateless – all state is kept client-side. The server does not retain any record of client state; results in a much more efficient SDN controller
  • Caching – just like cookies in your web browser. It is a good idea for the client to maintain a local copy of information that is commonly used; this improves performance and scalability.
  • Layered System – a REST API must be built in a way that a client interacts with it’s neighbor and does not need to see “beyond” that neighbor.
  • Uniform Interface – no matter the information retrieved, the method by which it is presented is always consistent.
  • Code-on-Demand – to transmit working code inside an API call.

A REST API is often just a Web server that accepts HTTP POSTs, GETs. These requests typically contain standard elements like XML, JSON, SOAP, or others.

Southbound APIs

What is common for the Southbound APIs? Cisco loves to keep it simple with the Command Line Interface (CLI) and Simple Network Management Protocol (SNMP).

Certainly the most well-known Southbound API is OpenFlow, but obviously there are other options available and in development. The Network Configuration Protocol (NetConf) uses Extensible Markup Language (XML) to communicate with the switches and routers to install and make configuration changes. Lisp, also promoted by ONF, is available to support flow mapping. In addition, there are more established networking protocols finding ways to run in an SDN environment, such as OSPF, MPLS, BGP, and IS-IS.