Project Management

Iron Triangle A project is a temporary endeavor designed to produce a specific outcome, with a defined beginning and end. Project management is the discipline of initiating, planning, executing, controlling and completing the work of an assembled team for a project. This discipline can come into play for any type of project, and most of a Project Manager's (PM) necessary skills are common across the types. Among these skills is the ability to manage the balance between scope (how much work will be done, which features will be delivered, etc), time or schedule (when will certain things be completed) and cost (which is almost always constrained). This must all be done while ensuring that an appropriate level of quality is delivered.

Because software is a nebulous non-tangible thing that runs inside a computer, managing these variables for a software project can be especially challenging. For example, managing scope can be more difficult because the things to be built cannot be touched or related to as easily as objects in the physical world. Also, while changing directions with a software solution may be easier than changing the size of a basement once an entire house has been built, change does still come with a cost that most non-developers have a hard time understanding. One of the key techniques to navigating the unique challenges of managing a software project is the use of a Software Development Life Cycle (SDLC) process. SwitchLane's PMs are well versed in at least one of these processes, if not several. Some of them even have certifications to demonstrate their knowledge of how to successfully apply these processes. The tabs below discuss some topics related to SDLC processes that we regularly encounter.
If you have been involved in software development in any way over the last 5-10 years, you have almost certainly heard the word agile used. Odds are that you have heard it used both correctly and incorrectly. "Agile" in and of itself is not an SDLC process, but rather refers to a general set of principles that some SDLC processes also value. At the highest level, agile refers to an iterative, incremental method of managing the requirements, design, build, testing and deployment activities of a project in a highly flexible and interactive manner. Below are some examples (not an exhaustive list) of some of the most popular agile SDLC processes:


  • Rational Unified Process (RUP)
  • Scrum
  • Extreme Programming (XP)
  • Test-Driven Development (TDD)
Agile Manifesto
Many of these processes were originally developed in the mid-1990s as a reaction to the perceived "heavyweight" nature of waterfall processes. In 2001, a small group of software developers met to discuss "lightweight" development methods and published the Manifesto for Agile Software Development (aka, the Agile Manifesto), which defines core principles that they believed a good SDLC process should follow. The term "agile" seemed to gain popularity from there and various processes including those listed above were categorized as such. In today's world, many people use Scrum and agile interchangeably to mean the same thing, but Scrum is just one example (albeit among the most popular) of an agile process. Scrum is also the SDLC process that SwitchLane prefers.
As described in the first tab, Scrum is one of the most popular agile SDLC processes. It is also the process that we favor at SwitchLane for executing custom development projects for our clients. Many books, websites and blogs have been written about Scrum and we are certainly not going to provide a comprehensive description here. Scrum defines a handful of important roles to be played and we'll spend a little time talking about the role of the Scrum Master, which most closely matches the traditional role of a Project Manager. When practiced correctly, the Scrum Master and the development Team Lead work together to cover what a traditional PM does.
CSM Logo
A Scrum Master is responsible for facilitating ongoing activities and ensuring that the process is being used as intended. They work with a Product Owner to organize, refine and prioritize requirements. They work with a Team Lead to estimate the effort associated with satisfying each requirement and to plan work out into fixed delivery durations known as Sprints. As the Sprints are executed, they facilitate regular meetings to ensure progress and acceptance of deliverables. But perhaps most importantly, a good Scrum Master helps the entire team to avoid or remove impediments to its progress, whether within the team or external to it. In addition to SwitchLane Scrum Masters playing this role in our custom development projects, we also provide consultants to play this role in staff augmentation settings for our clients.
SDLC processes described as "waterfall" involve a highly sequential set of phases in which progress is depicted as flowing steadily downward, like a waterfall. Strictly speaking there are several different waterfall processes, but they tend to share a lot more similarities than differences. The typical phases of a waterfall process include conception (coming up with an idea), initiation (actually starting a project, assembling a team and starting to plan), analysis (defining requirements), design (determining what should be built), construction (actually building the solution), testing (making sure what was built meets the requirements), deployment (putting the finished solution out for use) and maintenance (keeping the solution running, fixing defects, etc).
Waterfall Process
Waterfall is believed to be the original model for software development, which was based on processes from the manufacturing and construction industries. Projects in these industries are based in highly structured physical environments in which after-the-fact changes can be prohibitively expensive, if not impossible. While these types of changes certainly don't come for free in software development, we have far more flexibility when working with software. Waterfall SDLC process aims to predict activity over fairly long time periods of many months to many years, with the assumption that the requirements were correct and complete at the outset (they rarely are), that nothing will change during the execution of the project (it always does) and that humans are good at estimating and predicting over long periods (we aren't). All of that said, waterfall process is still used today and in the spirit of flexibility, SwitchLane provides Project Management consultants to our clients that still use it.