SDLC
The Software Development LifeCycle (SDLC) is a name given to the workflow that is associated with developing software solutions. Most organizations have one of these in use already. Many use a system called “Waterfall”
Waterfall
Waterfall SDLC is defined as the movement of code from one department to the next along the workflow. In other words, sales or product management departments receive a request for an enhancement, or an entirely new software solution. Then, a product manager takes the real-world request and translates it into software requirements. When that is finished, the engineers translate those requirements into work to be done (code to be written). After the code is written, test engineers get the solution, install it (with any luck), and test it for bugs. If and when bugs are found, they are reported back to engineering.
It is important to note that while test engineering was finding bugs, the code engineers were mostly idle. They were not required to work on the current project. Instead, they waited for a bug report before they would revisit the code.
The waterfall method is defined by work occurring in one department at a time; synchronously. This leaves the other departments waiting for work. This kind of workflow creates false expectations, missed deadlines, and many unhappy customers. Additionally, with everyone sitting around waiting to do their part, there is much time and money wasted. This method is very inefficient as we shall now see.
Agile
Agile versions of a SDLC come in many forms. However, they all share the same basic underpinning; asynchronous workflows. When someone says that they are using agile methods, that can mean that they accomplish being agile using many different tools and methods. A variety of tools exist to help an organization become agile.
Planning tools that are integrated with source control systems have become very popular. Zendesk (a project planning tool, amongst many other functions) is integrated with Git repositories (a source code management tool). This means, that as a matter of great convenience, anyone in any of the departments involved with a given project’s development lifecycle may peer into a project definition at a very high-level, as well as see the actual code that was engineered (low-level). This bridges the gap between the requirements of a customer and the product that exists to support it. Very powerful.
Members of an agile team can expect to have daily “standup” meetings where they are asked to give a very quick summarization of what they have done, what they are working on today, and what they may do tomorrow. In a nutshell, this single meeting should set the tone for the day’s events and keep everyone aware of what has happened and what is yet to be done. Doing this on a daily cadence insures all parties are included in every step of the process and are fully knowledgable of the most up-to-date status. This is another very powerful aspect of agile planning.
Lean Principles
Some have taken agile planning and project management a bit further in recent years. Lean principles are defined as taking the agile process and making it incredibly efficient by eliminating anything unnecessary. This could mean the elimination of steps in a process, or feature sets, or human resources that are no longer necessary to support current directives.
Converting from Waterfall to Agile
At myDev-Ops we have extensive experience in the migration of teams from waterfall to agile methods. Education, tool evaluation and implementation, workflow analysis, and help with definition planning are just some of the items we can help you with.
Since each organization’s needs are different, there is a real need to understand the challenges you are facing in your daily operations. myDev-Ops specializes in translating your needs into an agile process.
Keep in mind that the trick to implementing agile is not so much the process and the tools, it is about keeping the engineers and stakeholders on your teams engaged and supportive of this major change in your organization. At myDevOps we understand the level of trust and communication necessary to insure a smooth transition.
Let’s talk more, contact us today.