Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough

Create a Plan and Still be Agile

Parent Feed: 

You can’t build a website without a plan. A plan derived from requirements collected and a design created. You also need a development and testing plan that reflects the appropriate strategies for meeting said requirements and design. After you launch your website, you need a maintenance plan to ensure that your code remains secure, your content remains accessible, and your future features are integrated correctly.

Of all the development methodologies, past and present, there is not one that supports the development of software without requirements and design. When choosing a methodology, be it one based on the 12 principles listed in the Agile Manifesto, or not, you will not be able to avoid the effort of creating plans.

Agile Misunderstandings

Among the many misunderstandings regarding Agile methodologies is the aspect of planning. The belief that upfront planning isn’t needed and therefore time can be saved on a project is a misunderstanding of the iterative and incremental approach to software development. Think about it that for a moment. Can you create or build anything without some kind of plan? Be it simple or extensive?

It’s also a misunderstanding that said plans, if any, don’t need to be documented. If you choose an Agile methodology, you will quickly learn about Epics and the Backlog. Epics are large user stories while the backlog is a list of requirements derived from said user stories.

So, Agile isn’t about skipping the planning aspects of the project. It’s about changing the way the planning and development are conducted. And, the first step in the process of planning your site is gathering the appropriate players together.

The Right People

If you are going to put out a request for proposal, you need to include some of the requirements. Perhaps not all the details, but enough that a vendor who wishes to bid on your project can anticipate potential costs. Later, these initial requirements will fleshed out with the vendor whose bid you choose.

So, who needs to be in the room when you start brainstorming what you need? Who will ensure all requirements are identified? 

  • The money person would be good. They will know the budget and can remind you of the fact as the ideas start to mount.
  • The content manager is important. You will need to understand the tasks involved in creating and posting your content. For instance, how will you manage the publication of your content once it is uploaded to your site?
  • Let’s not forget the person who is in charge of your current site. This is the stakeholder who knows where the bodies are buried. They know why the current site is what it is and if certain aspects of the site can't change.
  • Other process owners. Depending on the tasks that your site will support, such as e-commerce or document download, who knows the most about how these tasks should be performed?
  • The naysayer. The squeaky wheel. Who is your Eeyore. “It will never work.” Get them in the room because you want the devil’s advocate. You want to hear what might not work and why.

Bottomline, anyone responsible for an aspect of the site, be it backend support or frontend interactions, get them in the room. You want to cover all your bases.

Agile Upfront Planning

“In 1998, Alistair Cockburn visited the Chrysler C3 project in Detroit and coined the phrase ‘A user story is a promise for a conversation.’”1 Then, in 2001, Ron Jeffries, one of the original signatories of the Agile Manifesto, proposed a ‘Three Cs’ formula for user story creation: card, conversation, confirmation, making user's stories part of the world of Agile methodologies. Coupled with use cases, Agile planning seeks to identify requirements and design before development begins.

However, as you will see, the level of requirements detail depends on several factors such that not every minute decision is made at the start. Let’s look at this idea more closely.

User Stories

User stories are typically brief statements written from the user’s perspective. For example, “As the content author, I need to be able to edit a page so that I can add a header image.” The documentation of such statements can be facilitated with index cards, Post-it notes, wireframe sketches on printer paper, or anything that meets your team’s needs.

A collection of such user stories helps to confirm the scope of the project and can reveal foundational requirements such as which framework or platform to use. Such stories also reveal relationships and thus where shared code will be used, for instance. 

At this point in the planning process, the team might decide to start developing. Such a decision is made possible by today's systems and platforms with plugin and play capabilities. They provide a way to support the user story tasks so that said tasks needn't be reinvented via a use case.

If user stories are unique and more detail is needed, creating use cases is the next step.

Use Cases

If system default tasks are not what is envisioned or additional tasks need to be supported, the team may choose to clarify the user stories via use cases - details of actions and events that define how a user interacts with the system. 

Deeper investigation into the requirements can help define a development path that supports both the overall system architecture required but also the specific tasks required of the system.

Once the stakeholders and development team have gained a common understanding of what is required, the user stories and use cases are converted into epics and the necessary backlog of development tasking.

So, Agile methodologies support the requirement and design phases listed in the Waterfall methodology, it just does it by engaging methods that have proven easier for end users to envision as they communicate what it is they want from the product being created. 

Of course, this isn’t the only time during the iterative and incremental development approach where planning takes place.

Agile Planning in Development

With epics and a backlog populated, the development team plans a series of iterative and/or incremental development efforts, commonly referred to a Sprints. The way the Sprints are defined depends on the overall development strategy required to build out the product, in this case, a website.

Before each Sprint, the existing requirements (based on user stories and use cases) are reviewed and specific strategies are chosen for meeting said requirements. This might include a conversation where details are clarified or added to use cases.

After each Sprint is complete, the product owner is asked to confirm that expectations have been met. If not, requirements and design aspects can be changed to correct misunderstandings or to acknowledge a new idea or need. In other words, additional planning is interjected into the development cycle and the project is adjusted.

In addition, lessons learned are collected and decisions are made regarding how-to strategies for the next Sprint. You might be thinking that enabling changes to the original plan might introduce scope creep. And, you would be right. It can.

Planning and Scope Creep

Scope creep is similar to what happens when you think you are buying the base model of a new car and you leave the lot having spent 20% more than planned because you decided on several add-on features. 

Several factors can influence the possibility of scope creep on a website. Let’s consider two related to planning.

  • Insufficient upfront planning. We aren’t talking about getting into the details of how features on your site are developed in this instance. Instead, it’s about ensuring that all user stories have been identified along with supporting decisions. For instance, if the user needs to be able to categorize an article, has the supporting requirements such as the information architecture been defined? 
  • Incorrect stakeholders at the planning table. The budget folks will have a different take on requirements than say an end user. Content manager will be able to enlighten decision makers on processes that are required to ensure a specific level of content quality. Without the appropriate people involved in the planning process, you might find that a Sprint doesn’t meet expectations.

Conclusion

An Agile approach to website development relies on planning to be successful, however, not all planning is required before development starts. Of course, there are risks associated with moving quickly into development, one being scope creep. 

The power of Agile methodologies isn’t about being able to skip steps that a waterfall methodology is criticized for enforcing. It’s about being flexible. It’s about being able to adjust as forgotten requirements are remembered. And, it’s about continuous feedback, ensuring what was originally thought to be a good idea, still works. 

Promet and Planning

Promet offers a unique planning engagement that we call our Architecture Workshop. This workshop is a customized engagement that engages all of your stakeholders in the Discovery Process.We do a 3-5 days of intensive onsite exercises with stakeholders (for your busy C-level folks we customize the agenda to bring them in where they are needed during this onsite). Then the team goes away and produces a set of deliverables that  includes a full-field level Architecture Blueprint of the website(s). Whether you choose to use a waterfall or agile development methodologies - you have everything you need to build the website everyone has agreed upon. 

Not building your site and stressed out about getting an accurate quote? Investing in this kind of Workshop will make sure that you get the right Partner, and the best price.

Footnotes

1 
https://en.wikipedia.org/wiki/User_story
Author: 
Original Post: 

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web