Skip to content
Article

Agile From the Start of Your Technology Project

“Agile development practices have steadily risen to become trusted and preferred methods of development… using agile, organizations can respond to market changes faster, deliver higher-quality software, and gain a significant competitive edge.”  Harvard Business Review

Considering these benefits, it’s no surprise that Agile development has become immensely popular among technology companies. More than a fixed methodology, Agile development is a mindset that embraces flexibility as its key characteristic: “…evolving our practices to suit the challenges at hand,” according to Andy Hunt, one of the originators of the Agile Manifesto.  

At Atlantic BT, we put these ideas into practice with a hybrid approach incorporating many aspects of Agile development into each project. One thing that sets Atlantic BT apart is we apply this mindset during the discovery phase of the project when we are working with the client to define product requirements.

According to PricewaterhouseCoopers: “One of the key differentiators for the Agile methodology is the requirements-gathering process and the iterative approach that fosters alignment through increased communication… Agile provides a high level requirements process to define what the system should provide, not how the system should work…

This quote sums up Atlantic BT’s approach: you start at the very highest level of requirements for your business and your customers, what they need to achieve, and don’t discuss how that will be done until later. The details of how you achieve those objectives come in the second critical part of the quote, during the iterative process of increasingly refining your focus to more granular aspects of the requirements and solution.

Our solutions team has a toolbox of discovery techniques to observe, investigate, research, and experiment. These techniques allow us to ask and answer specific questions about needs and potential solutions. The specific forms of discovery include interviews, workshops for brainstorming and collaboration, surveys, reviews, and focus groups, among others.

We identify requirements in a hierarchical, iterative approach so each step informs and determines the next. For example, in the very beginning we use stakeholder interviews and sometimes business model and/or value proposition workshops to identify key aspects of the business and the project. These aspects include a first pass definition of the market and which customer segments the solution should address.

Let’s take User Research as an example; we need to define many characteristics of the people who will use the solution, such as their demographics, wants, needs, and behavior patterns. Depending on the nature of the website or application being developed, we may need to go into more detail regarding specific tasks and workflow, as well as roles and permissions.

In order to discover those details about the user base, we employ one or more of the following techniques:

Each technique answers specific types of questions and provides certain types of information. However, we won’t know which of these techniques to use until we have performed the first-pass definition of business requirements. For example, a business that needs to deepen engagement of existing users might survey those users to learn more about what they wanted; a business that needs to reach new audiences might use persona workshops to discover who these new users are.

Another possibility is that something we find in discovery may send us down a completely unexpected path. For example, we recently had a client engage us for a redesign of their static marketing website. Their current site contained hundreds of pages of content, so we took the usual step of performing a content inventory. This technique is helpful in determining information architecture, content update needs, finding forms and data feeds, etc.

Our content inventory also led to an important discovery—the website contained functionality for posting open positions and accepting applications for those positions. The initial client brief had not mentioned this critical capability.

As a result, we added a step in discovery to perform a process analysis and map out their entire process for posting and filling new positions. This would identify exactly which steps would need to be replaced in the new website. Had we not done this, when the old website was turned off, they would have suffered a severe disruption to their hiring process. As an added benefit, this analysis identified multiple process improvement opportunities which were incorporated into the requirements discussion for the next phase of their project.

These two examples show how applying the agile principles of flexibility and feedback from the very start of a project provide several benefits throughout the project:

  • Optimize resource use by applying only the techniques needed.
  • Identify risks as early as possible in a project.
  • Identify opportunities for continuous process improvement.
  • Allow for prioritization of tasks.
  • Increase precision of estimate of effort.

To recap, we find it is not efficient to try to state categorically exactly what the appropriate discovery for a given project will look like in advance. This one-size-fits-all approach either includes too much (and is thus expensive), or misses crucial information (thus incurring high project risk). Instead, we find it much more effective to “adapt our practices to suit the challenges at hand” (to paraphrase Andy Hunt). This optimizes resource use, minimizes risk, and maximizes quality for us and for our clients: a win-win application of Agile development.

The Atlantic BT Manifesto

The Ultimate Guide To Planning A Complex Web Project

Insights

Atlantic BT's Insights

We’re sharing the latest concepts in tech, design, and software development. Learn more about our findings.

Questions & Answers

What is the best web development framework?
Many people commonly ask “what is a framework in web development?” Web development frameworks can easily be confused with web development tools, languages, or parts of the web development stack (like .NET, PHP, JavaScript, or Ruby).
Learn More about What is the best web development framework?
What is the best programming language for web development?
If there was one “best” programming language, then everything else would be obsolete. The reality is that there are so many different programming languages because there is no “best” language for any situation.
Learn More about What is the best programming language for web development?
How much does web development cost?
Web development can vary from a few hundred to millions of dollars depending on what is needed. You may simply need some changes to something that already exists, or you'd like to build a large or complex application.
Learn More about How much does web development cost?
What is the best way to become a web developer?
We get lots of questions from university students working on projects -- How do I get into web development? How long does it take to learn? How much do web developers make?
Learn More about What is the best way to become a web developer?
What is front end vs. back end development?
As web development evolved, it separated into logical specialization: front end web development and back end development. While back end development involves the server-side development, front end is the final rendering.
Learn More about What is front end vs. back end development?
What is full stack web development?
Full stack web development as a term evolved due to the separation of roles between front end and back end developers. A “full stack” developer is a developer that can work in both front end and back end technologies.
Learn More about What is full stack web development?
How can I improve the performance of my application?
There are several primary reasons that applications perform poorly, and in some cases it’s a combination of several. 1) Data latency: If your application is making calls to a data source (whether it’s an API or a direct call) and there is latency at the data provider, your application performance will suffer.
Learn More about How can I improve the performance of my application?