Invent Your Own Development Methodology
Having a process to follow when it comes to website planning and development is essential. The following considerations factor into successful development.
- Choosing a Method
- Planning and Development Goals
- Choosing a Methodology
- Influencing Development Methodology
Choosing a Method
Choosing the one method that fits your project can be a daunting task. If you have your own development team, you have control over how the process proceeds. If you are hiring a vendor, you need to ensure that you still have a say in the process.
With insight into the planning and development processes, you can help ensure your interests are protected.
Planning and Development Goals
Some goals reflect perfect-world scenarios. It’s important, however, to be prepared with a flexible and acceptable plan when the project falls short of perfection.
In a perfect world, you know every detail about the website you want built and can convey those requirements clearly and completely. In a perfect world, all of those requirement details are correctly understood by the developers on your project and they quickly create a solution without any issues.
Unveiling every detail regarding the requirements before development starts, isn’t necessary to initiate the process. Document all you can. Sketch what you are envisioning: pencil and paper are fine. Be sure to convey requirements that are critical for you to accept the end product.
When you hand your list to your development lead, understand that the development team will already have strategies in mind as they listen to what you say. This can mean:
- A speedy and efficient development process; or
- They are hearing what they want to hear and missing details that can suggest their past experiences might need to be adjusted.
Open and frequent communication between you, the site owner, and the development team is a key success factor.
Choosing a Methodology
Often, a proposal from a development vendor will communicate the process they will follow to deliver your site. Given the recent trends, you will likely see the word Agile in their text. Or, maybe your own people are eager to jump on this new way of executing the development process.
If the developers are well trained in one of the many Agile methodologies, this might be fine. However, that is often not the case. One of the most common misunderstandings about Agile methodologies is that detailed planning is not needed.
What are your options? Become informed. Recognize that:
- Development methodologies can be influenced;
- Methodologies can be tweaked to fit your needs; and
- You are not limited to just one methodology.
Influencing Development Methodologies
Over the last several decades, some developers focused on the best steps to programming a solution, while others focused on creating programming languages that would make development easier and faster. Together, these two paths have created opportunities in the software development world. Among them:
- Rapid application development using object-oriented languages and reusable functions that no longer rely on a developer to write and rewrite the code for frequently used website functionality.
- Creation of frameworks that, with specific coding functions, allow for the development of common and unique website applications.
- Development of prepackaged systems designed to meet common website requirements out-of-the-box, requiring less experience and less time to stand up a site.
Each scenario is open to the use of Agile development processes that can flex, depending on the language, system, and/or requirements.
Will your project be developed from scratch or will your team use an out-of-the-box solution? Ask what the chosen strategy means for your process.
Let’s take a brief look at what this means. Agile refers to a manifest of software development principles. There are several Agile methodologies that have been designed based on these principles, but they are not all the same or all-inclusive.
If any methodology does not fit your needs, you can make adjustments: add in tasks of another methodology, rearrange steps. Look at the development process being proposed and simply change it fit your resources, your requirements, and/or the way your team works.
Mixing Things Up
Sometimes tweaking isn’t enough.
Have you ever built a house? If not, you can probably imagine a few of the details such as the need for an approved architectural plan. In other words, a blueprint. The blueprint goes beyond requirements. It conveys how the requirements will be met.
There are reasons why the process used to construct of a house works.
- Pre-approved plan;
- The ability to identify resources and estimate cost;
- A means to create a construction schedule.
These three reasons help prevent scope creep and cost overruns. However, the delay of implementation of the requirements has been troublesome for many. For instance, it can cause outdated technology to be used when coding finally starts—hence, the need for a development methodology that can start sooner and flex with changing technology.
Mixing it up means taking the best aspect from the process used by the construction industry, which is a Waterfall approach, and combining it with an agile development strategy.
Waterfall the What
Given the options in software today—reusable functions, frameworks, pre-packaged systems—it’s easier to identify a coding strategy for a website before the requirement details are identified. Returning to the house construction example, it’s like planning your new house based on pre-defined and pre-built modules that can be put together to create the house of your dreams.
A website is no longer a totally unique product from other websites. Starting with a blank page as if it has never been done before can be a waste of time. This means, using a waterfall approach to collect detailed requirements and design is a viable option.
Create a blueprint of exactly what you need. Participate in decisions regarding the various modules available to implement the features you need. Don’t rely on blind faith that the development team is going to choose an implementation or coding strategy that works best for you.
Agile the How
Next, implement the blueprint. An agile development methodology is still an appropriate choice, given our Waterfall beginnings. Let’s explore this switch in methodology.
The Agile-based Scrum methodology is used frequently. It utilizes Sprints where portions of the website are developed and then reviewed before proceeding to the next Sprint. With this approach to implementing the blueprint, three things are made possible:
- The development team can plan how to implement the blueprint.
- They have an increased chance of creating the correct solution.
- If a review reveals an issue or something was missed during the creation of the blueprint, there is still time to make an adjustment in the development process to accommodate.
With this mixed approach, you don’t have to wait until all requirement details are in place. Assuming the use of a pre-packaged system, such as a content management system, the development team can get started with some of the primary functionality identified early in the requirements and design steps such as:
- Multi-site (e.g., more than one site using the same code-base)
- Third-party system integration
- Multiple levels of content access
Given the nature of today’s coding options, take the time to plan the details of your website to help reduce surprises and restarts later. Then, be flexible. There is always a chance that a review of the development process can reveal required changes.
All methodologies have their strengths and weaknesses, especially when trying to apply a methodology designed for a hand-coded project versus a methodology designed to take advantage of pre-existing code bundles, such as content management systems.
Promet Source offers a depth and breadth of expertise in collaboratively determining the best methodology, based upon your distinct goals and circumstances. Our workshops are an excellent opportunity to understand the impact the design process and to ensure that your project is positioned for success.