On top of learning how to work with complex software,
aspiring web developers need to know how to function as part of a professional
team. Software development methodology is its own field of study with a unique
lexicon, and one of the most important concepts that budding developers should
familiarize themselves with is agile web development.
What Is Agile Web Development?
Agile web development is actually a broad category of methodologies based on the principles outlined in the Manifesto for Agile Software Development, which was compiled by a team of professional developers in 2001. Specific methods such a scrum and XP are considered agile although they existed before the manifesto was written.
Through their combined experiences of working with other developers, the authors recognized the value of adaptive planning and collaboration between self-organizing, cross-functional teams. The goal is to allow for flexibility and provide rapid and continuous improvement of software solutions. Early delivery is also a key goal of agile development, which entails streamlining projects by eliminating time-sucking tasks.
Because they’ve been around for about two decades, a lot of the concepts behind agile development seem intuitive to younger developers; however, agile was a radical departure from older ways of doing things. Studies on the efficiency of agile web development compared to traditional methods are mixed, but agile remains popular in the professional world in 2018.
Traditional Web Development vs Agile Web Development
Because the internet has evolved so rapidly in the past few
decades, it’s easy to forget that the World Wide Web isn’t even 30 years old
yet. During the infancy stages of web development, designers grappled with the
basic task of translating the types of information you’d find in books into a
website. They used paper prototypes, wire frames and flow charts to illustrate
ideas. Use-case scenarios and focus groups were a primary source of feedback.
Back then, CEOs would have their secretaries print out emails and then dictate
responses, so there were obviously large gaps of understanding between users,
developers and executives.
Developers from software development company soon discovered that creating software shouldn’t
be an entirely sequential process. There are always unexpected bugs as well as
new technological hurdles to overcome, and anticipating the demands of users
has become a science in itself. Fortunately, now that everyone is so well
connected, it’s easy to collect user feedback in real-time, so we have a
greater understanding of how people interact with web applications.
The increase in internet users has coincided with
advancements in content management systems, which has made it possible for
anyone to design and edit a basic website with little training or expertise.
These trends have given rise to industries that simply didn’t exist a few years
ago such as e-commerce. Since the process of making websites has become much
more streamlined, developers have shifted focus to perfecting their methods to
address the growing needs of businesses and consumers.
The Move to Agile
As you can see, parts of the development process overlap,
but there is a clear sequence of steps. Agile development, on the other hand,
views most steps of development as ongoing and simultaneous:
The biggest difference is that programmers are involved with
content and navigation from the beginning. Individual challenges are addressed
as they arise rather than waiting to make large-scale changes before launch.
Beta launches have also become standard in order to start collecting feedback
as early as possible, and maintenance is viewed as equally important to all of
the other steps.
Therefore, everyone involved with a project from the top
decision-makers to content creators to IT specialists should meet in-person
during the early stages of development so that everyone agrees upon the overall
goals. Though it may seem tedious at first, having everyone on the same page
from the start saves time by reducing the need for constant emails, phone
conversations, and meetings throughout the development cycle. Because all
members of the team are engaged right away, what once took 4-8 months to finish
can now be accomplished in just a few weeks.
Agile vs Waterfall
The typical agile web development process is composed of a
series of “sprints,” or cycles that involve discovery, design, development and
testing. Every sprint results in a tangible product and new information to
guide the next sprint. To better understand agile methods, it may be useful to
compare it with the waterfall model, illustrated in the diagram below:
The waterfall model follows the traditional principles of
sequential development whereas agile processes can be better visualized as a
positive feedback loop:
Advocates of agile development may argue that the waterfall
model is too rigid and ineffective; nonetheless, waterfall remains the norm in
many workplaces, which is further evidence for why professional developers need
to be adaptive to stay employed.
Aside from getting products to market faster, another
advantage of agile methods is that they can require incremental investments.
Then again, some investors are wary of such arrangements because they don’t
fully understand agile development, which may be one reason why the waterfall
model persists.
Agile Development Components
An agile workflow usually consists of multiple components.
The following provides a breakdown of the components found in a typical agile
web development workflow:
Product Backlog – A spreadsheet, chart or simply a physical
wall covered in index cards that lists all of the features to be included in
the final product. The product backlog provides a visual representation of the
team’s progress.
Sprint Backlog – A list of the tasks to accomplish during a
sprint. Before a sprint, the team chooses items from the product backlog and
determines the tasks necessary to meet the user needs. Designers and developers
independently assign priority and time estimates for each task, and that data
is analyzed after each sprint to inform the next sprint. Some teams prefer to
use a physical wall or whiteboard to keep track of tasks while others use free
online task management tools like Trello.
Scrum Meetings – Short, daily meetings to check in and set
the course for the workday.
Scrum Master – The facilitator of scrum meetings tasked with
managing communication between team members.
Shippable Increments – Tangible, fully-functioning
applications that showcase a feature or the final product. Ideally, each sprint
will result in a shippable increment.
A quick tip that’s worth mentioning as you populate your
product backlog is to create user personas. User personas are fictional
characters that represent the goals, behaviors, and skills of your final
product’s potential users. Focusing on personas can help you identify which
features you need to include. User personas may be derived from data collected
through interviews or focus groups
Additional Benefits of Agile Web Development
Apart from what was already covered above, there are certain
concrete benefits to using agile web development methodologies compared to
traditional or other methods. The following section outlines these benefits.
1. Faster Feedback
First drafts are never perfect. In fact, sometimes you can
follow a client’s specifications to a T, yet the final product looks nothing
like what they had in mind. By completing tasks in iterations and having
something tangible to share with users after each step, teams can make changes
along the way and avoid a complete overhaul six months down the line. Having
brief, daily scrum meetings gives team members an opportunity to communicate
about individual small issues and resolve them before they become big problems
for everyone.
2. Keeping Up With Change
The old adage “change is the only constant” couldn’t be
truer when it comes to web development. Instead of viewing changes as
unexpected obstacles to overcome, agile developers embrace change as an
inevitable part of the learning process.
3. Higher Productivity
Agile processes provide ample opportunities to measure
productivity, which helps project managers better estimate workloads.
4. Lower Costs
Faster and more efficient development eliminates the need
for overtime pay.
5. Greater Customer Satisfaction
Since applications go through so many checks before launch,
customers are more likely to get a bug-free product that they are happy with.
6. Improved Worker Morale
When team members get to see the fruits of their labor in
shippable increments, they know they’re progressing in the right direction,
which encourages them to keep working toward a goal. Team members are also more
likely to feel a sense of shared ownership in the project, which is more
motivating than artificial urgency.
7. Better Accountability
Iterative methodologies make it easier to track the
performance of individual team members, and it gives managers a way to measure
the team’s overall commitment level throughout the development process. This
information can help them set more realistic goals and give executives accurate
timelines.
8. No More Detailed Project Plans
Forgoing a project plan isn’t the same as not planning. It
simply means that you don’t need one specific document that you update every
time you learn something new. Agile development’s focus on frequent releases
encourages an iterative learning process, so there’s no reason to waste time
and energy managing a document.
9. More Collaboration
In offices that still use the waterfall method, some team members
may rarely interact. Designers often send off their designs to developers and
simply move on to the next task. In agile workplaces, designers and developers
often sit next to each other while working collaboratively on each iteration,
which results in a more polished final product.
Keeping it Agile
When trying to hold yourself or your teammates to agile
principles, ask the following 5 questions whenever someone throws out an idea:
Will it help us achieve our goals?
Is it consistent with our brand?
Is there a better solution that already exists?
What is the worst that could happen if we tried it?
How will we evaluate whether or not the idea was effective?
Ongoing assessment is imperative to staying agile. Keeping
what works and changing what doesn’t helps everything move toward completion as
quickly as possible.
Agile Web Development – In Summary
Web development service is about much more than making websites and
applications. Development also includes the business side of the equation, and
programmers are constantly going back to tweak technologies to meet the
specific needs of companies and their shareholders. A web development company job is
never truly ever done. Understanding the many facets of the development process
will leave you better equipped to work in a professional environment. As agile
web development becomes more and more widespread it’s important to stay up to
date on any new developments in the world of agile development and practice it
on a daily basis.
Source: keycdn.com
Source: keycdn.com
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.