SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Build a Killer Software Application Gate6 Inc. · (877)43GATE6 · gate6.com
GET READY TO BUILD KILLER SOFTWARE..............................................1
IN-HOUSE OR AGENCY?........................................................................2
WHY IS SOFTWARE SO EXPENSIVE? ......................................................6
TOP 6 CHALLENGES IN SOFTWARE DEVELOPMENT......................... 11
WEB OR MOBILE? ................................................................................ 16
DEFINING ACCEPTANCE CRITERIA.................................................... 20
WHY QA MATTERS ............................................................................... 24
BONUS: BRANDING FOR A KILLER USER EXPERIENCE...................... 27
BONUS: FORWARD FOCUS................................................................. 30
NOW YOU’RE READY .......................................................................... 33
All contents copyright © 2016 Gate6 Inc. All rights reserved.
TABLE OF CONTENTS
Build a Killer Software Application 1
GET READY TO BUILD KILLER SOFTWARE
Technology is a mainstay of the business world, whether your company is B2B or B2C.
There are applications designed and built for every industry. However, that doesn’t
mean your specific needs will be met by an off-the-shelf product. That’s where custom
software development comes into play.
If you’re not part of a software shop, the answers to your questions probably feel a
million miles away and twice-removed through layers of techno-jargon. And then
there are all those questions you might not know to ask:
The goal of this eBook is to cut through the confusion that separates you from your
goal of building a custom application by putting the process, choices, and costs into
easy-to-understand terms. This book answers key questions around the benefits of
hiring a digital agency to develop custom software, the costs involved, and
suggestions on how and where to start.
By the end of Chapter 6, you will be ready to have those critical first discussions,
knowing exactly what questions to ask of your potential partners in application
creation.
Software that’s designed specifically for your users provides the best
opportunity for delivering a satisfying user experience. By designing and
building your own application, you know you’re getting exactly what
you need—and only what you need—to fulfill your business goals.
Gate6 Inc. · (877)43GATE6 · gate6.com 2
IN-HOUSE OR AGENCY?
Making the Right Choice
“Any fool can write code that a computer can understand. Good
programmers write code that humans can understand.”
Martin Fowler
Build a Killer Software Application 3
Your customer-facing website or application is pretty darned important. It’s the face of
your company, and it’s at the very core of all your digital marketing efforts. Web
technology constantly changes as the online landscape evolves and modern
websites and apps provide customers with value so they interact with you and your
business over and over again.
With the importance placed on technology, it seems like good sense to hire someone
in-house to take care of it. But before you start recruiting, you need to know what it
takes to keep IT staff productive and proactive.
Find Your Team
Finding top IT talent is a daunting task and if you do, they will probably come with a
hefty price tag. Unfortunately, no matter how good they are, they cannot cover 100%
of your project needs. Application development is a multi-faceted discipline that
requires multiple, specialized professionals who collaborate to produce the best
product.
Businesses that aren’t IT focused typically don’t have the means to maintain an entire
software development team. Not to mention, once your software is complete, your
company won’t need that huge team on staff to maintain content or make minor
updates. If you’re prepared to build up and budget for an entire IT team, including
technology managers, quality assurance professionals, graphic designers, user
experience experts, content writers, and web developers - go for it!
However, if you just want killer software that your customers will love, a digital agency
is what you need. From strategic planning, UX design, SEO expertise, and content
writing to complex software development and custom integrations, a digital agency
can cover your needs from the moment you walk through the door.
Focus Your Resources
If you’re not planning on building or expanding an IT group, you’ll need to find
resources who can focus on creating the perfect app without overtaxing your in-
house marketing and management teams.
Agencies have multiple teams working collaboratively to produce killer designs that
are functional, eye-catching, and that support your business objectives. They know
exactly what questions to ask to minimize your team’s effort while delivering maximum
impact.
Gate6 Inc. · (877)43GATE6 · gate6.com 4
Offloading the work required to build and maintain your application allows your
internal marketing team’s bandwidth to focus on existing business initiatives.
A digital agency is adept at working with your marketing strategy to present a
cohesive, complete message to platforms you didn’t even know about. They can
track and report metrics, providing your company with exact figures around website
engagement and campaign effectiveness.
Harness the Best Technology
It might be tempting to hand off your web development to the intern who designed
his fraternity’s website. He swears he can do the job. But you may be exposing your
company to security risks in the templates he’s using or spend months working harder
instead of smarter because he doesn’t know how to customize an off-the-shelf option,
or plan for database growth so it doesn’t need to be recreated 6 months from now.
Technology constantly evolves, and the best digital teams design future-proof,
forward-thinking websites that harness the boldest new tech. Digital agencies don’t
just study the trends, they set the pace. Constant innovation is part of the job for these
professionals, and by hiring a ready-made digital team, you reap the benefits of
industry-leading technology without having to pay for the research, training, and tools
required to craft the best website possible.
If you plan to build an internal IT team, know that you’ll need to invest annually in
training, tools, and talent so that your web presence stays secure, current, and
engaging. If you want the best technology without the upfront and ongoing
investment, find a digital agency that has the tools and tech to ensure your web
project is best in class.
Stay Ahead in the Race
Your development team, whether in-house or outsourced, needs to stay on top of
every industry change that could affect your application engagement:
 Search algorithm changes that affect SEO
 Emerging security risks
 Plugin requirements
 Government regulations and standards
 Platform changes and updates
 Expiring support for old technology
 So many more!
Build a Killer Software Application 5
Because agencies manage several projects at any given time and invest heavily in
technology research, they are on the leading edge of the continuously changing
technology updates. Using an agency that keeps up with hot topics and industry
trends reduces the amount of time spent on resolving preventable issues and keeps
your website ahead of competitors.
As the digital world continues to innovate new ways to communicate, research, and
connect with brands, your application requirements become equally complex. Make
sure your team is ready to tackle the complex landscape of web development. If you
need help creating the best possible user experience, partner with a reputable
agency known for delivering award-winning work.
Whether you’re just starting your researching into your development project or you’ve
gotten a handful of bids, you might be wondering why software is so darned
expensive. As you can see from this chapter, there’s a lot that goes into
development—from research to tools to hiring the best staff—software isn’t cheap!
Chapter 2 dives deeper into the cost of producing quality software so you can
understand exactly what you’re paying for and why.
Gate6 Inc. · (877)43GATE6 · gate6.com 6
WHY IS SOFTWARE SO EXPENSIVE?
“Nine women can’t make a baby in one month.”
Fred Brooks
Build a Killer Software Application 7
As we discussed in Chapter 1, the best software teams are a sophisticated group of
educated professionals who harness the latest-and-greatest technology to create
future-proofed, forward-thinking designs that users love to use. If that doesn’t say
expensive, then consider the following points.
Software development is complex.
When people determine that they need software they often don’t know where to
start. It’s obvious that software development is complex, but many people don’t
realize the vast array of subjects, roles, and responsibilities in creating a new website or
application.
Software projects start with your business goals and desired functionality in mind. Your
great idea will turn into a sophisticated, functioning system and requires many
iterations of design, development, testing, validation, and documentation until it
comes to life on the screen.
Furthermore, custom software usually requires some level of third-party application
integration, requiring development teams to adopt new technologies on the fly while
integrating them seamlessly into your business data and processes. Oftentimes, new
software acts as a bridge between legacy systems and brand-new technology,
introducing layers of complexity. Or, in the case of entirely new systems, your software
must be carefully architected and execution planning must be intricately detailed so
that nothing gets missed.
It takes a village to code an application.
Every software development project is unique and demands a diverse set of skills,
technologies and expertise. Because technology continues to rapidly evolve, it is
critical to have a team that is on the leading edge while maintaining a fundamental
understanding of legacy systems.
Beyond smart developers, project management is critical.
Your business analyst (BA) serves to act as a bridge from your users and stakeholders
who want your application, to the designers, developers, and testers who are coding
it. A good BA can go from the 10,000-foot vantage point, to down-in-the-weeds with
the developers, and can communicate effectively and cohesively at every layer in
between.
Gate6 Inc. · (877)43GATE6 · gate6.com 8
Your project manager (PM) is your schedule keeper, budget analyzer, and risk
mitigator. A good PM keeps your project on schedule by knowing what can and
should be accomplished at each step along the way. He actively manages project
risks, calling them out with adequate time to mitigate them effectively. And he is an
excellent communicator, ensuring that issues are resolved quickly and that the project
stays on time and on budget.
Your architect is your gatekeeper to design. A good architect understands your needs
and weighs them against current and emerging technology. He stands at the forefront
of your project, building out its framework and directing the development team to fill
in the details in the best, most efficient manner possible, using the technologies that
serve both the current and future states of your application.
Additionally, truly great software requires strong user experience (UX) strategy to
ensure top-notch usability. Software architects and developers are typically not UX
designers. UX requires well researched user empathy, interactive concepts, functional
insights, and an eye for interface simplicity. They call these folks unicorns because
they’re so rare.
And finally, no development team is complete without a solid quality assurance (QA)
team. We will go into QA in detail in a later chapter, but in short, developers typically
can’t test their own code. Much like how you don’t see mistakes in your own writing,
most developers test in terms of what they expect should happen. QA teams go
above and beyond the requirements, actively trying to break your software in
inventive ways before your users find those squirrely bugs.
Users don’t know what they need until they see it.
Creating a great user experience requires an understanding of the real need, not just
what users say they want. By involving real users in the analysis stage of development,
you can get to the root of their needs so your solution doesn’t leave them wanting
more.
Software project analysis requires seasoned professionals who know how to ask your
users and stakeholders the right questions. They then take that information and apply
best-practice methodologies to clearly define your project needs in language that is
understood by every stakeholder and member of your team. From the end user to the
developers; from the stakeholder to the UX designer; from the project manager to the
business owner; your project documentation needs to convey the same message to
every person involved.
By designing to clearly documented business needs, the end result is a product that
the users will enjoy. However, the best digital teams take this concept one step further
and involve key users at every stage of development. Wireframes, prototypes, and
Build a Killer Software Application 9
early releases can all be vetted by users and stakeholders to guarantee that your
software is exactly what’s needed.
So, how do I know if implementing my idea is worth the cost?
There are several ways to determine if there is merit to the cost of your project. The
following table outlines questions about why you might want a custom software
solution. If you can answer yes, then your solution is worth the time, effort, and cost to
create.
Purpose of Software Factors
Automate manual processes
 Custom appointment scheduler
 Automated order taker
 Automated billing system
 Will it save time?
 Will it reduce errors?
 Will it automate labor-intensive
tasks?
Revenue generation
 Online shopping cart
 Pay-per-use service
 Subscription website
 Will the site pay for itself in a
reasonable amount of time?
 Is there a current and known
demand for the site/service?
Lead generation
 Company website
 Non-monetized blog
 How much revenue is each lead
worth?
 Do you foresee a return on
investment through this form of lead
generation?
Entertainment/Edutainment
 Monetized blog
 Game/media service
 Will your estimated traffic pay for the
cost of the site development?
 Is there a current and known
demand for the site/application?
Gate6 Inc. · (877)43GATE6 · gate6.com 10
Software development comes down to cost/benefit analysis. Your site might not pay
for itself in the first year, but when it breaks even and then becomes a revenue stream,
it becomes a valuable, beneficial part of your business. If your site or application
differentiates you from your competitors, streamlines critical processes, or otherwise
sets you ahead in the marketplace, then it’s worth the investment.
Your IT team should understand the complex nature of software development and
should help you understand the costs from inception to launch. In addition, they
should help you manage your challenges along the way.
Follow along in Chapter 3, and discover the top 6 challenges in software
development, and how your digital partners can help you leap over those hurdles to
deliver killer applications.
Build a Killer Software Application 11
TOP 6 CHALLENGES IN SOFTWARE
DEVELOPMENT
“I really hate this darn machine;
I wish that they would sell it.
It won't do what I want it to,
but only what I tell it.”
Author Unknown
Gate6 Inc. · (877)43GATE6 · gate6.com 12
Software development has evolved beyond tech geeks typing furiously in a dark abyss
adding features to static systems. It has become a critical, business-infrastructure
component that needs to evolve, adapt, and improve at the drop of a hat.
In today’s business world, software is at the core of each company’s ability to create
products, systems, and services. The demand continues to increase for agile software
solutions that are intelligently designed and well-integrated. And innovative software
has become a key differentiating factor in competitive business landscapes.
Software development is complex, so it’s no surprise that challenges are part of each
project. We’ve compiled a list of our top 6 challenges that every business should be
aware of when building new software solutions:
You must completely understand your users.
What we think our users need can be completely different from what they actually
need. Also, knowing how to group users into salient personas is somewhat of an art
form. Effective planning means understanding users, designing based on their needs,
and integrating user feedback throughout the design and development process.
Understanding a system’s users begins with asking the right questions.
 What need does the application fill for the user?
 What components are the most critical to accomplish each user’s goals?
 How will users navigate and use the application?
 What is the technical level of the application’s user base?
 What are the psychographics of each user group?
 What differentiates and distinguishes different user types?
These types of questions are addressed in the planning phase of the project so that
the appropriate design can be developed prior to implementation.
Understand what your users need, even if they don’t.
Even with heavy user involvement throughout the design and development process,
it’s inevitable that the user will realize what they need only after they use the
application for the first time. Including actual users in acceptance testing as part of
the agile process catches many issues prior to launch and results in higher adoption
rates upon release.
Beyond inclusion of users, you need to understand your user group psychographics
and the problems your users want to solve. You should be able to clearly describe your
users in terms of expertise, approach, required features, and questions they might ask.
Build a Killer Software Application 13
Integrating different technologies can get sticky.
There are countless different technologies, systems, and applications available to
businesses. When beginning your project, you must choose everything from
development platform to plugins to templates. Your vision for the perfect application
might seem like an impossible dream when faced with all of the available
technologies.
When you nail down your chosen technologies, you’re presented with a new set of
options: the systems that your users might want to use to access your software. Even a
simple requirement, such as supporting multiple browsers, significantly increases the
complexity of building and testing software solutions. If you add in mobile platforms,
Internet-enabled devices, and the next-big-thing on the emerging-technology horizon,
you’ve quickly made your application so complex that it’s difficult to know where to
start.
Integration of existing systems, such as your CRM, website, or inventory management
database, can simplify your life by increasing product adoption and alleviating data
migration headaches. But pulling in legacy systems can also add a whole new layer of
complexity. Your new software solution must conform to the external constraints of
these existing systems, while allowing the flexibility to lay in new features. You don’t
want to be tethered completely to your legacy systems, yet it’s crucial to integrate
with your existing platforms. Otherwise, your costs might grow out of control before you
can say “requirement.”
It’s tough to find the people with all of the right skills.
Just as integrating components is challenge, finding and hiring resources who
understand them can be even more so. Each project’s applications, tools, and
technologies could demand a new set of skills and expertise.
Highly skilled resources are often difficult to find and tend to be costly. Beware of the
development agencies that say they can handle your complex needs for cheap.
Remember: you get what you pay for.
When asked, “Who will use your application?” you cannot answer,
“Everyone!” While it would be great to have a system that everyone
wants to use, it’s beyond impractical—it’s impossible. To design a
system, you must fully understand who your users are, what they want,
and how your system will meet their needs.
Gate6 Inc. · (877)43GATE6 · gate6.com 14
Test environments are expensive and difficult to configure.
It’s very difficult to test software because the tester cannot be in an environment that
perfectly matches the environment of the final products. Test systems that properly
mirror your production environment tend to be extremely costly. Most businesses don’t
factor adequate test environments into the budget for their websites or custom
applications, and yet you can’t make untested changes to active production systems.
During the first pass of development, user acceptance testing is a must. Your test
environment must accurately mirror what the user will see when the application or
website is live. It’s impractical to gauge how a user will really use the application in
different situations if the test system is noticeably different from your production
environment. Your test results from such an environment won’t yield useful, actionable
work items, and your end product will suffer.
When planning your software project budget, be certain to factor in enough money
to cover the cost of a viable test environment. If you’re outsourcing your development
to an agency, be sure that their test environments are up to par and that their quality
assurance teams know what it takes to create a viable test bed.
Requirements change as the project comes to life.
Also known as scope creep, it’s common for businesses to continuously come up with
new ideas throughout the design process. Seeing your product come to life is exciting,
and the act of designing and building a product fuels creativity so new features and
ideas are created. It’s so easy to get caught up in all the things we want to do, that
we forget what we originally set out to create.
When the solution is live, it’s a given that new, desired features and capabilities will
reveal themselves. However, these improvements can always be implemented in
subsequent development phases. It’s important to keep focused on the core
functionality you are trying to achieve in order to ensure that your application’s
foundation is built completely. You want your system to be capable of supporting new
features, but it will never get there if requirements continue to change and developers
are pulled in different directions during the development process.
If all new ideas and features are added during the initial development phase, your
project’s delivery timeframe, overall quality, and budget will suffer. Additionally, the
foundation that you’re creating during the first phase of a project relies on controlled
and tested implementation of the core functionality of your system.
Build a Killer Software Application 15
When new ideas for features present themselves, make note of them. Keep a running
backlog of detailed descriptions of these great ideas. After the initial deployment,
take some time to gather user feedback and then start preparing the next phase of
the project. Use your list to see which of your ideas are even desired by your users.
Also, keep your mind open to ideas for features that you didn’t think of, but that your
users call out as wants and needs.
If you outsource your project to an agency, make sure they understand the complete
scope of your project. They should be able to identify the core functional needs of
your project, map out the user requirements and workflow, identify the critical
components, and be able to place all the complicated backend code behind a killer
user interface.
Now that you have an idea of the costs to build a software solution and you
understand the challenges, you have an important question to answer: Will your new
solution be delivered via a website or a mobile app? Both have merits, and both have
limitations. It’s important to know your options to deliver the best possible experience
to your users.
From initial planning, all the way to deployment, understanding the
challenges of software development ultimately creates a better
experience both for your team and your users.
Gate6 Inc. · (877)43GATE6 · gate6.com 16
WEB OR MOBILE?
Making the Right Investment
“...if you really want to understand something, the best
way is to try and explain it to someone else. That forces
you to sort it out in your own mind.”
Douglas Adams
Build a Killer Software Application 17
According to a Global Web Index study conducted in 2015, 80% of Internet users own
a smartphone, and 47% own a tablet. The study also notes that men and women both
use their phones for an average of 30 hours per month, and 89% of that time is spent
using mobile apps. It’s no wonder there seems to be an app for everything. Mobile
apps can provide value-add services to customers, drive purchases, and keep your
brand top-of-mind, however, they aren’t the optimal solution for every set of
requirements. How do you know if it’s worth the investment to go mobile?
Each application platform provides value in different capacities, and also demands its
own unique set of requirements for design, development, and functionality.
Maybe Mobile?
Mobile apps are native to a mobile device’s operating system, such as iOS
or Android. They do not require an Internet browser, and are designed for
the user to accomplish a primary goal quickly and efficiently, with optional
secondary capabilities.
The following are key points that indicate when it may be appropriate to build a
mobile app on top of (or instead of) a web app:
The application will be used regularly and requires a high level of personalization. Your
user’s mobile device is a secure system that lends itself to highly personalized
operations. Applications that do well on mobile devices offer services such as bill pay,
account management, and access to personal records. Additionally, mobile
applications that center around a single (or small set) of distinct functions tend to
garner high adoption rates by users. For example, if a core business function for your
company is scheduling appointments, an app could be developed that allows
customers to view available time slots, schedule their own appointments, and receive
push notification reminders.
There’s a need to access the mobile device’s native functionality. If your application in
development requires the use of a camera, GPS capabilities, or needs quick access to
sensitive personal information, it’s a good candidate for mobile. Mobile devices have
many features that can be quickly and easily integrated into apps. They’re built for
diversity, while maintaining ample security measures that can be configured using
Understanding the fundamental differences between mobile and
web applications is the first step in determining the best software
solution for your business.
Gate6 Inc. · (877)43GATE6 · gate6.com 18
native functionality. For example, if your application needs to help users locate
businesses in real time, an app that seamlessly integrates the mobile device’s built-in
mapping system will delight your users and will keep them coming back.
Data storage is needed for offline access. Do your customers want access to
information at the tips of their fingers – sans Internet connection? Insurance cards,
appointment reminders, and documents are just a few things your customers may
want to access while offline. After all, convenience is the name of the mobile app
game. A mobile device contains integrated storage that follows your user wherever
she goes. Websites have to make use of computer or cloud storage, which tends to
be static, requires separate log-in access, and relies on heavy user interaction to
choose folders and file names. Mobile devices don’t rely on Internet connections to
store and retrieve data. It’s there when your user needs it, every time.
Your application is gamified or relies on social channels. Games and social media are
designed with mobile in mind. If your application needs to integrate with popular
social feeds, or if you’re creating a game that connects users real-time, a mobile app
is what you need. The quick response of mobile devices, coupled with the touch-
screen interface and immediate access to social networks will provide out-of-the-box
integration that is native to the device, and receives regular, automatic compatibility
updates.
What About Web?
Web apps are essentially cloud-based software. They are similar to a
website in structure, as they are built on the fundamental web
technologies of HTTP, HTML, and JavaScript. Web apps can only be
accessed through a web browser and are designed to accommodate a
myriad of functionalities and features, and achieve multiple core business
objectives through a single interface. There are several reasons why a web app might
make more sense for your business.
There’s a need for immediate access to the application. With a web app, your users
can navigate to your site with any browser and immediately start using your app’s
features, as opposed to mobile apps, which must be downloaded by the user before
use. Furthermore, web apps require minimal user effort in terms of setup, whereas
mobile apps require the user to go through steps to configure signup or verification
and allow interoperability with native device functionality. From a marketing
perspective, with a little effort, your web app can rank in searches, placing your brand
at the top of your target user’s Internet search. A high-ranking, content-rich app lends
itself to immediate access by new clients.
Build a Killer Software Application 19
Web apps are compatible by nature. Web apps can be accessed using any browser
running on any computer; mobile apps require a separate version to accommodate
each operating system on different devices. If your app needs to be accessed from
any type of system, a web app might be the better choice. If you design your web
app to be responsive, it will function just as well on a mobile device as it does on a
desktop system. With some careful planning and brilliant execution, your web app
adoption can span both web and mobile users.
Your web app is always up to date for every user. Web apps are much easier for
making on-the-fly content changes and rolling out new features. Revisions to web
apps are delivered without user involvement and are available to your users
immediately - even while they are actively using your app. Mobile apps require users
to download and install updates on their device. Furthermore, mobile app users can
refuse updates, causing your support team to have to field calls from users that have
outdated or obsolete data and functionality.
Web apps can be shared easily. Since web apps are accessed through a web
browser, sharing the URL is easy. New users only need to click the link that’s been
shared with them to find and use your app. If your app is designed correctly, new users
are funneled to the proper site functionality to learn about your site and create
accounts regardless of the link that is shared with them. With just a few clicks, your app
can gain new users organically through word of mouth.
Managed data is hosted by your business. If there’s a need to harvest and manage
complex data entered by your users, a web application could be the best solution for
your business. The ability to automate and organize the data specific to your
company needs could prove extremely valuable. From optimizing employee
productivity, to reducing manual data-entry efforts, to analyzing metrics for advertising
campaigns, data provided by your users is a critical part of your business.
The first step in deciding whether to build a web or mobile app is knowing your
business requirements. Depending upon budget, it may even be beneficial to build for
both web and mobile users. Ultimately, your success in driving users to adopt your
application comes down to understanding your users: what they want, what they
need, and how they expect to access your business online.
User acceptance is critical to application adoption and success, but how do you
know you’ve answered all the right questions? We’ve established that users don’t
even know what they want until they get it. Now let’s take a look at defining the
perfect acceptance criteria so that your users love using your app.
Gate6 Inc. · (877)43GATE6 · gate6.com 20
Start with Chapter 1: In-House vs. Agency: Making the Right Choice.
DEFINING ACCEPTANCE CRITERIA
An Exercise in Managing Expectations
“[Programming is] the only job I can think of where I get to be both
an engineer and an artist. There's an incredible, rigorous, technical
element to it, which I like because you have to do very precise
thinking. On the other hand, it has a wildly creative side where the
boundaries of imagination are the only real limitation.”
Andy Hertzfeld, About Programming
Build a Killer Software Application 21
When starting a software project, stakeholders and project managers come together
in doe-eyed fashion, dreaming up all the “what-ifs” they can imagine. Through diligent
analysis, applied know-how, and a little bit of good, old expectation management,
your product team will lay down the basic framework for what will ultimately become
your application. It’s a long road between project inception and delivery, with many
people interpreting and building on project concepts, plans, and requirements.
As an end user or key stakeholder, how can you be sure that you’ll get what you
asked for in the first place? Two words: Acceptance Criteria.
In software development terms,
acceptance criteria are nothing
more than a pre-determined and
documented vision for project
success. It’s what takes your
project from “what was coded” to
“what was intended.” It’s the
reference document that is used
by everyone who touches the
project - from stakeholder to
developer, and all steps in
between - to verify that each
component of your application
operates exactly as expected.
Crafting effective acceptance
criteria falls somewhere between
formula and art form. However,
there are certain ideas to keep in
mind while defining the expectations around your application so that your
acceptance criteria aid your acceptance testing to the highest degree possible.
Your criteria are an accurate reflection of client expectation.
Acceptance criteria should be written in simple language that traverses the technical
capabilities and business understanding across every member of the product delivery
team. From end users to developers, everyone on the project needs to work from the
same set of criteria. Additionally, these criteria should define no more than what the
product will deliver, and should leave no room for questions. If questions arise around a
particular feature, acceptance criteria should be written immediately so that there
are no gray areas to cause confusion during testing.
Gate6 Inc. · (877)43GATE6 · gate6.com 22
Your criteria must be specific.
It’s not enough to say “The login page must work.” Your criteria need to tell the user
what “work” really means. For example, on your site’s login page, your acceptance
criteria should document what happens: When a user logs in correctly, when he
attempts to log in with an incorrect ID, or when the ID is correct but the password is
wrong.
Additionally, your criteria should describe help and error messages that are shown and
how the system helps users to correct errors.
Your criteria must be testable.
From the developer’s standpoint, acceptance criteria should lend to the creation of
one or more automated tests. On the other end of the team spectrum, acceptance
criteria should be intuitive enough that an end user can navigate to the documented
feature and manually test to verify that the criteria have been met.
Your criteria should have yes-or-no answers.
When an end user is handed a list of acceptance criteria, he should be able to check
off each line item to indicate success or failure. If your acceptance criterion is
ambiguous, or lends itself to more than one yes-or-no answer, then it needs to be
broken into smaller chunks.
You should define all three types of criteria.
Your project requires the definition of three types of acceptance criteria: Functional,
non-functional, and performance. While these three terms seem like techno jargon,
they relate to the different types of features created by each of your project teams.
 Functional Criteria are specific user tasks that are created at the code level.
Your developers are very interested in the functional aspects of your
application. They represent the usable features of the product. For example,
when the end user clicks a button, enters data, or otherwise interacts with your
application, the response generated by the action is a function of the app. Your
functional criteria center around those application functions in terms of what is
expected by the user.
Build a Killer Software Application 23
 Non-functional Criteria are conditions that must be met, but that aren’t true
functions of the site. Adherence to design, color schemes, button shapes, site
layout, logos displayed, etc. are all non-functional criteria. Your designers and
business stakeholders are very concerned by non-functional criteria. They
represent adherence to branding, and they affect overall perception
throughout the user’s experience.
 Performance Criteria are critical to product adoption by end users. Many times,
these key criteria are overlooked or ignored. But your business owner and your
end user are keenly aware of the impact of poor performance on an
application. Your business owner will want to see metrics on performance, and
your end user will flat-out stop using it if it runs too slowly. These criteria are
typically defined in thresholds. For example, “The login page loads in under 2
seconds” or “The login process takes less than 5 seconds, including landing
page load.”
Acceptance criteria can seem daunting to create and manage, but with a good
business analyst and project manager at your side, you can be sure that your end
result will accurately reflect your user expectation.
Even with the best acceptance criteria possible, your project cannot—and will not—
succeed without adequate testing. Many people feel like they shouldn’t have to pay
for quality assurance, but remember, you get what you pay for!
Follow along in Chapter 6 to learn the benefits of having dedicated QA on your
project.
Gate6 Inc. · (877)43GATE6 · gate6.com 24
Start with Chapter 1: In-House vs. Agency: Making the Right Choice.
WHY QA MATTERS
“Before software can be reusable it first has to be usable.”
Ralph Johnson
Build a Killer Software Application 25
You’ve invested time, effort, and money into creating your new application. Project
managers, business analysts, user experience experts, software architects, and
developers have all been engaged and are working diligently off of a masterfully-
created list of user stories. Your stakeholders and users are chomping at the bit for a
finished product.
And then there’s the Quality Assurance (QA) team. You might be wondering, “Why do
we have to pay for QA? Don’t these people know how to build software right the first
time?”
It seems like a logical question, but QA is simply not optional. In fact, it is an integral
part of the development process that starts with the very first business meeting. Even if
your analysts write the perfect requirements; even if your project managers maintain a
perfect schedule; even if your developers are some of the best and brightest in the
industry - things don’t always work as planned once the pieces start coming together.
What Is QA?
Quality Assurance teams test software for both completeness and usability. QA
engineers are highly skilled professionals that provide unbiased validation of your
software. Your QA team neither designs nor develops your application. Thus, they are
a neutral third party that walks the line between business rules and code,
understanding each in detail, and without the bias of creating either. Fully integrated
QA helps avoid releasing costly defects that could drive your customers away.
What Does the QA Team Do?
You’ll hear lots of terms around quality assurance and testing: white box, black box,
regression, unit testing, fault injection, capacity, and tolerance. Most of those are
fancy ways of saying, “We’re trying to break your application so users don’t encounter
any defects.” But QA also goes beyond testing the lines of code that run your
application. They verify that your application runs in all reasonable conditions:
 Cross-browser compatibility
 Mobile device compatibility
 Functionality under bare-minimum hardware conditions
 Functionality under limited Internet bandwidth
 Scalability for future expansion
 Ability of your hardware and software to function under heavy user load
Gate6 Inc. · (877)43GATE6 · gate6.com 26
Quality Assurance works diligently to verify that what you’re getting is exactly what
your users are expecting. From form fields and stored data, to your copy and graphics,
your QA team is inspecting every aspect against your precise specifications.
Why QA Is Necessary
Have you ever sent an email only to read it later and realize you made silly grammar
mistakes? Mistakes sometimes make it through despite your best intentions. The same
phenomenon holds true for software developers. Even with the best developers, tiny
errors slip through the cracks. That’s where QA engineers come in. Their sole focus is on
the quality of your application’s functionality by finding and fixing the missing links, tiny
errors, and silly missteps.
According to a 2013 study by Compuware, users have a very low tolerance for buggy
applications. Only 16% of users will try a new application more than twice if it’s faulty
upon initial download. Buggy software that’s hard to use is a direct result of insufficient
testing. If your software has defects or isn’t compatible across standard technologies,
you will lose users.
How QA Works
A lot of people—even some in the IT world—think that QA is a last step. That’s how QA
used to work in older, antiquated models of software project management.
In modern, agile projects, quality assurance begins before coding starts. Test scenarios
are created right from the beginning with ample input from stakeholders and key
users. These scenarios become integral to the entire development process. As the
team formulates a deep understanding of your product, they engineer quality metrics
around the exact needs of your customers. From requirements definition through
product delivery; from hardware specifications to user experience specifics; your
quality assurance team ensures a robust and reliable finished product that promises
higher user adoption rates and happy users.
Build a Killer Software Application 27
Start with Chapter 1: In-House vs. Agency: Making the Right Choice.
BONUS: BRANDING FOR A KILLER
USER EXPERIENCE
“Most business models have focused on self-interest instead of user
experience.”
Tim Cook, CEO of Apple
Gate6 Inc. · (877)43GATE6 · gate6.com 28
Your user experience starts with your brand. Think of a few of the greatest names in
advertising and how a simple logo immediately brings your opinions of them,
immediately to mind.
Imagery, color, font, tone, and message are all critical components of your brand and
user experience. Your digital team, from designer to developer to QA, should all live
and breathe your brand so the product they deliver is 100% consistent with your
message. Only a team well-versed in both marketing and development can produce
an application that engages users while consistently delivering your message.
When developing your new website or mobile application, your brand maturity will
factor into your user experience design and application delivery. Use these three
positions to determine where you are in your brand development and how that
affects the development of your application’s UX.
I’m brand-new and setting sail!
You have a lot of creative freedom and can build a brand that fits your target
audience. That’s great! It also requires a lot of careful, iterative work to get it all just
right. If you lack a professional marketing team, you could set yourself up for failure
before your developers lay down a single line of code. So get someone great, make
sure you have real audience research (or at least some actual users to talk to) and
start building your brand based on your most avid user group.
I’m brand-established, but I’m stuck in the fog!
If you have established creative for your brand but you feel like you’re drifting instead
of moving forward, it’s possible that your brand needs to be refined so it can resonate
with your target audience. On the other hand, if your digital marketing is inconsistent
no amount of whiz-bang features will put you on the path to increased sales. It could
be time to shore up your brand identity so as you get to critical decisions like, “What
should the error message say?” or “Should we use swipe or tap for this interaction?”
you can pull attributes from your brand to create the experience that your users love.
I’m welcomed in all the ports!
If you have a solid customer base that already loves your brand, that’s wonderful.
Whatever you’re doing is working, so stay with it! It’s even more critical for you to keep
your new application or website consistent with your brand. Your users will have
established expectations going into the experience, so keep them engaged and
Build a Killer Software Application 29
happy by keeping this experience consistent with what made them fans in the first
place.
Because your brand is about attracting customers, you must know their habits and
needs better than they know themselves. When you create accurate user personas
from your customer group, you can design with their needs in mind. The way these
needs are fulfilled through carefully crafted interactions and messaging is the essence
of user experience.
UX starts with the first time someone learns about your brand (e.g. through Google
search or an online review) and continues through even the smallest interaction, such
as a smartphone push notification or a simple error message. If your brand is woven
into the development of your application, it will reinforce the user’s love of your
product. It’s the holy grail to create a brand that users love because they will stay with
you and even forgive the occasional misstep.
In the digital world, change is expected and technology is continuously evolving and
shifting. It can feel like rip tide. To stay afloat as you navigate the waters of user
experience, your brand must become your compass.
Don’t leave this critical component to success in the hands of amateurs. Hiring a
digital agency means you get the best of both worlds: creative teams who know how
to design with users in mind, and developers who can translate your brand into
feature-rich applications that users love to use.
Gate6 Inc. · (877)43GATE6 · gate6.com 30
Start with Chapter 1: In-House vs. Agency: Making the Right Choice.
BONUS: FORWARD FOCUS
“The future belongs to those who prepare for it today.”
Malcolm X
Designing with the Future in Mind
Build a Killer Software Application 31
In 1899, Charles H. Duell, Commissioner of the U.S. Office of Patents made the
declaration: “Everything that can be invented has been invented.” Oh, how wrong he
was.
As Internet technology professionals, we understand that technology changes at
blistering speeds. These rapid shifts make it difficult to predict user adoption of new
ideas and emerging tech. From the Betamax to Google Glass, we’ve all seen tech
trends that never took off. On the other side, we’ve seen heavily adopted technology
become obsolete. How, then, can you be sure that your software in development will
stand the test of time? There are two key factors in future-proofing your software
design.
Design in Layers
Your user interface is heavily technology dependent. Mobile operating systems
demand specific UI implementation and supporting multiple browsers is always a
challenge. Your back-end business systems tend to be more technologically static.
Database technology, storage systems, and web service layers are slower to change.
Perhaps you’ve heard the terms Model-View-Controller, or Model-View-ViewModel.
These terms refer to software architecture models that rely on loosely-coupled layers
which build modular, scalable software. Regardless of specific implementation
architecture, your software development team should be designing your application
in three distinct layers:
 The Data Layer houses stored information that your system needs for operation.
This layer includes databases, flat-file storage, back-end configuration files, etc.
The data contained in your data layer might be sensitive in nature and typically
requires controlled access.
 The User Interface Layer holds the graphical representation of your user’s online
experience. It is comprised of the screens, flow, and interactions that allow your
user to interface with the data and functionality they need.
 The Business Layer is the switchboard in the middle that connects your user to
your back-end systems. It provides the business rules and logic that allow the UI
to access, display, and manipulate data in predefined, secure, and repeatable
workflows.
Gate6 Inc. · (877)43GATE6 · gate6.com 32
When your application is defined in layers, any given layer can be swapped out to
accommodate emerging technology. Additionally, new devices can be easily
supported by adding additional User Interface layer functionality without having to
make a single change to the business or data layers, allowing for a quick business
response to technology trends.
Start Small and Grow in the Right Direction
When you envision your new application, you probably see the grand, big picture of a
dazzling final product that’s feature-rich. While your vision is warranted, and the end
goal is to deliver a product that users love to use, you have to start small.
The best, future-proofed designs begin with a Minimum Viable Product (MVP). The MVP
represents the minimum set of functionality needed to get your product out the door
and in the hands of users. Through careful, focused study of your user groups, you can
define a product that will meet your user’s needs, while showing where your fully
developed product is headed.
After you release your MVP, you can grow your product in a direction that delights
your users. By gathering and analyzing user feedback, then delivering requested
features through rapid, agile development processes, you can continually engage
and delight your users. Software that is grown according to user demand breeds
loyalty to both your product and brand while generating positive word-of-mouth. This
style of development also ensures that you don’t waste money and development
cycles creating features that users don’t want. User adoption is a cornerstone in future-
proofing your application; without continual user adoption, your application will be
destined to go the way of Betamax.
You can’t always guess where technology is taking us, but you can safeguard your
investment by designing with the future in mind. Ensure that your next big app doesn’t
become yesterday’s news by finding a team that understands how to ride the wave
of changing technology.
Build a Killer Software Application 33
NOW YOU’RE READY
“If you can read this, thank a software developer.”
Author Unknown
Gate6 Inc. · (877)43GATE6 · gate6.com 34
Computer software is inescapable in the business world. Through the course of the last
6 chapters, you’ve learned a lot about the complexities and choices you’ll face in
your software project. You’ve discovered:
 The potential benefits of contracting a digital agency to tackle your
development project
 Many of the costs that are associated with software development
 How to tackle some of the challenges you might face during your project
 The ins-and-outs of choosing between web or mobile product delivery
 How to manage user expectations and still deliver a killer product that users will
love
 The benefit - and necessity - of baking quality assurance directly into your
project plan
The good news is; you’re armed with some knowledge to help you navigate the initial
stages of your project. Thank you for reading our eBook! If you’re ready to launch your
website or build the next big app, check out how using our 6 Steps to Success will kick-
start your project in just a couple weeks. Then give us a call toll free at (877)43GATE6.
We’d love to talk to you!

Más contenido relacionado

La actualidad más candente

Front end-developer-handbook-2018
Front end-developer-handbook-2018Front end-developer-handbook-2018
Front end-developer-handbook-2018
Maideoz
 

La actualidad más candente (19)

ASPER BROTHERS Presentation
ASPER BROTHERS PresentationASPER BROTHERS Presentation
ASPER BROTHERS Presentation
 
What skills and personality do you need for a career in DevOps?
What skills and personality do you need for a career in DevOps?What skills and personality do you need for a career in DevOps?
What skills and personality do you need for a career in DevOps?
 
Outsourcing Full-stack Developer for Web Application Development? Here’s What...
Outsourcing Full-stack Developer for Web Application Development? Here’s What...Outsourcing Full-stack Developer for Web Application Development? Here’s What...
Outsourcing Full-stack Developer for Web Application Development? Here’s What...
 
Front end-developer-handbook-2018
Front end-developer-handbook-2018Front end-developer-handbook-2018
Front end-developer-handbook-2018
 
Toexa inc.
Toexa inc.Toexa inc.
Toexa inc.
 
TOP GOOGLE CHROME EXTENSIONS FOR ONLINE MARKETERS IN 2021
TOP GOOGLE CHROME EXTENSIONS FOR ONLINE MARKETERS IN 2021 TOP GOOGLE CHROME EXTENSIONS FOR ONLINE MARKETERS IN 2021
TOP GOOGLE CHROME EXTENSIONS FOR ONLINE MARKETERS IN 2021
 
Do I Use Planner, Project Online, or Azure DevOps?
Do I Use Planner, Project Online, or Azure DevOps?Do I Use Planner, Project Online, or Azure DevOps?
Do I Use Planner, Project Online, or Azure DevOps?
 
Einstein For Service by Raja KondReddy
Einstein For Service by Raja KondReddyEinstein For Service by Raja KondReddy
Einstein For Service by Raja KondReddy
 
Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...
Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...
Why not let apm do all the heavy lifting beyond the basics of monitoring | Sw...
 
Analysis mvp factory
Analysis mvp factoryAnalysis mvp factory
Analysis mvp factory
 
TeamFit in the professional services ecology June 2016
TeamFit in the professional services ecology June 2016TeamFit in the professional services ecology June 2016
TeamFit in the professional services ecology June 2016
 
Seehash
SeehashSeehash
Seehash
 
How Poor Or Missing Requirements Can Kill An It Project
How Poor Or Missing Requirements Can Kill An It ProjectHow Poor Or Missing Requirements Can Kill An It Project
How Poor Or Missing Requirements Can Kill An It Project
 
SAP Development Object Testing
SAP Development Object TestingSAP Development Object Testing
SAP Development Object Testing
 
Digital Perspectives from the Creative Agency Front Lines
Digital Perspectives from the Creative Agency Front LinesDigital Perspectives from the Creative Agency Front Lines
Digital Perspectives from the Creative Agency Front Lines
 
Top 15 reasons to consider it outsourcing
Top 15 reasons to consider it outsourcingTop 15 reasons to consider it outsourcing
Top 15 reasons to consider it outsourcing
 
Ruby on Rails Specialists - TkXel
Ruby on Rails Specialists - TkXelRuby on Rails Specialists - TkXel
Ruby on Rails Specialists - TkXel
 
Facecode
FacecodeFacecode
Facecode
 
Levis Media Services Overview
Levis Media Services OverviewLevis Media Services Overview
Levis Media Services Overview
 

Destacado

A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
SlideShare
 

Destacado (10)

The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017The Top Skills That Can Get You Hired in 2017
The Top Skills That Can Get You Hired in 2017
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar a How to Build a Killer Software Application

How Software Development Outsourcing can benefit your Business
How Software Development Outsourcing can benefit your BusinessHow Software Development Outsourcing can benefit your Business
How Software Development Outsourcing can benefit your Business
TriState Technology
 
Nexaweb_Services_Whitepaper
Nexaweb_Services_WhitepaperNexaweb_Services_Whitepaper
Nexaweb_Services_Whitepaper
Francisco Anes
 
Major benefits of software outsourcing and best ways to find remote software ...
Major benefits of software outsourcing and best ways to find remote software ...Major benefits of software outsourcing and best ways to find remote software ...
Major benefits of software outsourcing and best ways to find remote software ...
CodeRiders
 

Similar a How to Build a Killer Software Application (20)

2024 Custom Software Development Guide: Trends, Steps & Benefits
2024 Custom Software Development Guide: Trends, Steps & Benefits2024 Custom Software Development Guide: Trends, Steps & Benefits
2024 Custom Software Development Guide: Trends, Steps & Benefits
 
Top .NET development companies to outsource
Top .NET development companies to outsourceTop .NET development companies to outsource
Top .NET development companies to outsource
 
What is In-house Development or Developer Team and What are the Benefits and ...
What is In-house Development or Developer Team and What are the Benefits and ...What is In-house Development or Developer Team and What are the Benefits and ...
What is In-house Development or Developer Team and What are the Benefits and ...
 
Fearless IT Outsourcing
Fearless IT OutsourcingFearless IT Outsourcing
Fearless IT Outsourcing
 
Ultimate guide to hire dedicated developer comparison, benefits, & tips
Ultimate guide to hire dedicated developer comparison, benefits, & tipsUltimate guide to hire dedicated developer comparison, benefits, & tips
Ultimate guide to hire dedicated developer comparison, benefits, & tips
 
What are the Best Practices for Enterprise Software Applications?
What are the Best Practices for Enterprise Software Applications?What are the Best Practices for Enterprise Software Applications?
What are the Best Practices for Enterprise Software Applications?
 
Custom Enterprise Software Development.pdf
Custom Enterprise Software Development.pdfCustom Enterprise Software Development.pdf
Custom Enterprise Software Development.pdf
 
How Software Development Outsourcing can benefit your Business
How Software Development Outsourcing can benefit your BusinessHow Software Development Outsourcing can benefit your Business
How Software Development Outsourcing can benefit your Business
 
Nexaweb_Services_Whitepaper
Nexaweb_Services_WhitepaperNexaweb_Services_Whitepaper
Nexaweb_Services_Whitepaper
 
Major benefits of software outsourcing and best ways to find remote software ...
Major benefits of software outsourcing and best ways to find remote software ...Major benefits of software outsourcing and best ways to find remote software ...
Major benefits of software outsourcing and best ways to find remote software ...
 
Most in demand skills for software development staff augmentation
Most in demand skills for software development staff augmentationMost in demand skills for software development staff augmentation
Most in demand skills for software development staff augmentation
 
9 Proven-Strategies
9 Proven-Strategies9 Proven-Strategies
9 Proven-Strategies
 
112085557 information-system-study-report-of-cc
112085557 information-system-study-report-of-cc112085557 information-system-study-report-of-cc
112085557 information-system-study-report-of-cc
 
An Ultimate Guide To Custom Software Development
An Ultimate Guide To Custom Software DevelopmentAn Ultimate Guide To Custom Software Development
An Ultimate Guide To Custom Software Development
 
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdf
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdfMaximizing Potential - Hiring and Managing Dedicated Software Developers.pdf
Maximizing Potential - Hiring and Managing Dedicated Software Developers.pdf
 
Why Outsourcing Software Development Still Works?
Why Outsourcing Software Development Still Works?Why Outsourcing Software Development Still Works?
Why Outsourcing Software Development Still Works?
 
3 Crucial Application Modernization Strategies for Enterprises.pptx
3 Crucial Application Modernization Strategies for Enterprises.pptx3 Crucial Application Modernization Strategies for Enterprises.pptx
3 Crucial Application Modernization Strategies for Enterprises.pptx
 
Hire Remote Developers or an Entire Development Team - The Complete Guide
Hire Remote Developers or an Entire Development Team - The Complete GuideHire Remote Developers or an Entire Development Team - The Complete Guide
Hire Remote Developers or an Entire Development Team - The Complete Guide
 
10 huge-reasons-why-businesses-need-custom-software-development1
10 huge-reasons-why-businesses-need-custom-software-development110 huge-reasons-why-businesses-need-custom-software-development1
10 huge-reasons-why-businesses-need-custom-software-development1
 
How to Hire a Programmer In 2023 - Complete Guide.pdf
How to Hire a Programmer In 2023 - Complete Guide.pdfHow to Hire a Programmer In 2023 - Complete Guide.pdf
How to Hire a Programmer In 2023 - Complete Guide.pdf
 

Último

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Último (20)

Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 

How to Build a Killer Software Application

  • 1.
  • 2. Build a Killer Software Application Gate6 Inc. · (877)43GATE6 · gate6.com GET READY TO BUILD KILLER SOFTWARE..............................................1 IN-HOUSE OR AGENCY?........................................................................2 WHY IS SOFTWARE SO EXPENSIVE? ......................................................6 TOP 6 CHALLENGES IN SOFTWARE DEVELOPMENT......................... 11 WEB OR MOBILE? ................................................................................ 16 DEFINING ACCEPTANCE CRITERIA.................................................... 20 WHY QA MATTERS ............................................................................... 24 BONUS: BRANDING FOR A KILLER USER EXPERIENCE...................... 27 BONUS: FORWARD FOCUS................................................................. 30 NOW YOU’RE READY .......................................................................... 33 All contents copyright © 2016 Gate6 Inc. All rights reserved. TABLE OF CONTENTS
  • 3. Build a Killer Software Application 1 GET READY TO BUILD KILLER SOFTWARE Technology is a mainstay of the business world, whether your company is B2B or B2C. There are applications designed and built for every industry. However, that doesn’t mean your specific needs will be met by an off-the-shelf product. That’s where custom software development comes into play. If you’re not part of a software shop, the answers to your questions probably feel a million miles away and twice-removed through layers of techno-jargon. And then there are all those questions you might not know to ask: The goal of this eBook is to cut through the confusion that separates you from your goal of building a custom application by putting the process, choices, and costs into easy-to-understand terms. This book answers key questions around the benefits of hiring a digital agency to develop custom software, the costs involved, and suggestions on how and where to start. By the end of Chapter 6, you will be ready to have those critical first discussions, knowing exactly what questions to ask of your potential partners in application creation. Software that’s designed specifically for your users provides the best opportunity for delivering a satisfying user experience. By designing and building your own application, you know you’re getting exactly what you need—and only what you need—to fulfill your business goals.
  • 4. Gate6 Inc. · (877)43GATE6 · gate6.com 2 IN-HOUSE OR AGENCY? Making the Right Choice “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” Martin Fowler
  • 5. Build a Killer Software Application 3 Your customer-facing website or application is pretty darned important. It’s the face of your company, and it’s at the very core of all your digital marketing efforts. Web technology constantly changes as the online landscape evolves and modern websites and apps provide customers with value so they interact with you and your business over and over again. With the importance placed on technology, it seems like good sense to hire someone in-house to take care of it. But before you start recruiting, you need to know what it takes to keep IT staff productive and proactive. Find Your Team Finding top IT talent is a daunting task and if you do, they will probably come with a hefty price tag. Unfortunately, no matter how good they are, they cannot cover 100% of your project needs. Application development is a multi-faceted discipline that requires multiple, specialized professionals who collaborate to produce the best product. Businesses that aren’t IT focused typically don’t have the means to maintain an entire software development team. Not to mention, once your software is complete, your company won’t need that huge team on staff to maintain content or make minor updates. If you’re prepared to build up and budget for an entire IT team, including technology managers, quality assurance professionals, graphic designers, user experience experts, content writers, and web developers - go for it! However, if you just want killer software that your customers will love, a digital agency is what you need. From strategic planning, UX design, SEO expertise, and content writing to complex software development and custom integrations, a digital agency can cover your needs from the moment you walk through the door. Focus Your Resources If you’re not planning on building or expanding an IT group, you’ll need to find resources who can focus on creating the perfect app without overtaxing your in- house marketing and management teams. Agencies have multiple teams working collaboratively to produce killer designs that are functional, eye-catching, and that support your business objectives. They know exactly what questions to ask to minimize your team’s effort while delivering maximum impact.
  • 6. Gate6 Inc. · (877)43GATE6 · gate6.com 4 Offloading the work required to build and maintain your application allows your internal marketing team’s bandwidth to focus on existing business initiatives. A digital agency is adept at working with your marketing strategy to present a cohesive, complete message to platforms you didn’t even know about. They can track and report metrics, providing your company with exact figures around website engagement and campaign effectiveness. Harness the Best Technology It might be tempting to hand off your web development to the intern who designed his fraternity’s website. He swears he can do the job. But you may be exposing your company to security risks in the templates he’s using or spend months working harder instead of smarter because he doesn’t know how to customize an off-the-shelf option, or plan for database growth so it doesn’t need to be recreated 6 months from now. Technology constantly evolves, and the best digital teams design future-proof, forward-thinking websites that harness the boldest new tech. Digital agencies don’t just study the trends, they set the pace. Constant innovation is part of the job for these professionals, and by hiring a ready-made digital team, you reap the benefits of industry-leading technology without having to pay for the research, training, and tools required to craft the best website possible. If you plan to build an internal IT team, know that you’ll need to invest annually in training, tools, and talent so that your web presence stays secure, current, and engaging. If you want the best technology without the upfront and ongoing investment, find a digital agency that has the tools and tech to ensure your web project is best in class. Stay Ahead in the Race Your development team, whether in-house or outsourced, needs to stay on top of every industry change that could affect your application engagement:  Search algorithm changes that affect SEO  Emerging security risks  Plugin requirements  Government regulations and standards  Platform changes and updates  Expiring support for old technology  So many more!
  • 7. Build a Killer Software Application 5 Because agencies manage several projects at any given time and invest heavily in technology research, they are on the leading edge of the continuously changing technology updates. Using an agency that keeps up with hot topics and industry trends reduces the amount of time spent on resolving preventable issues and keeps your website ahead of competitors. As the digital world continues to innovate new ways to communicate, research, and connect with brands, your application requirements become equally complex. Make sure your team is ready to tackle the complex landscape of web development. If you need help creating the best possible user experience, partner with a reputable agency known for delivering award-winning work. Whether you’re just starting your researching into your development project or you’ve gotten a handful of bids, you might be wondering why software is so darned expensive. As you can see from this chapter, there’s a lot that goes into development—from research to tools to hiring the best staff—software isn’t cheap! Chapter 2 dives deeper into the cost of producing quality software so you can understand exactly what you’re paying for and why.
  • 8. Gate6 Inc. · (877)43GATE6 · gate6.com 6 WHY IS SOFTWARE SO EXPENSIVE? “Nine women can’t make a baby in one month.” Fred Brooks
  • 9. Build a Killer Software Application 7 As we discussed in Chapter 1, the best software teams are a sophisticated group of educated professionals who harness the latest-and-greatest technology to create future-proofed, forward-thinking designs that users love to use. If that doesn’t say expensive, then consider the following points. Software development is complex. When people determine that they need software they often don’t know where to start. It’s obvious that software development is complex, but many people don’t realize the vast array of subjects, roles, and responsibilities in creating a new website or application. Software projects start with your business goals and desired functionality in mind. Your great idea will turn into a sophisticated, functioning system and requires many iterations of design, development, testing, validation, and documentation until it comes to life on the screen. Furthermore, custom software usually requires some level of third-party application integration, requiring development teams to adopt new technologies on the fly while integrating them seamlessly into your business data and processes. Oftentimes, new software acts as a bridge between legacy systems and brand-new technology, introducing layers of complexity. Or, in the case of entirely new systems, your software must be carefully architected and execution planning must be intricately detailed so that nothing gets missed. It takes a village to code an application. Every software development project is unique and demands a diverse set of skills, technologies and expertise. Because technology continues to rapidly evolve, it is critical to have a team that is on the leading edge while maintaining a fundamental understanding of legacy systems. Beyond smart developers, project management is critical. Your business analyst (BA) serves to act as a bridge from your users and stakeholders who want your application, to the designers, developers, and testers who are coding it. A good BA can go from the 10,000-foot vantage point, to down-in-the-weeds with the developers, and can communicate effectively and cohesively at every layer in between.
  • 10. Gate6 Inc. · (877)43GATE6 · gate6.com 8 Your project manager (PM) is your schedule keeper, budget analyzer, and risk mitigator. A good PM keeps your project on schedule by knowing what can and should be accomplished at each step along the way. He actively manages project risks, calling them out with adequate time to mitigate them effectively. And he is an excellent communicator, ensuring that issues are resolved quickly and that the project stays on time and on budget. Your architect is your gatekeeper to design. A good architect understands your needs and weighs them against current and emerging technology. He stands at the forefront of your project, building out its framework and directing the development team to fill in the details in the best, most efficient manner possible, using the technologies that serve both the current and future states of your application. Additionally, truly great software requires strong user experience (UX) strategy to ensure top-notch usability. Software architects and developers are typically not UX designers. UX requires well researched user empathy, interactive concepts, functional insights, and an eye for interface simplicity. They call these folks unicorns because they’re so rare. And finally, no development team is complete without a solid quality assurance (QA) team. We will go into QA in detail in a later chapter, but in short, developers typically can’t test their own code. Much like how you don’t see mistakes in your own writing, most developers test in terms of what they expect should happen. QA teams go above and beyond the requirements, actively trying to break your software in inventive ways before your users find those squirrely bugs. Users don’t know what they need until they see it. Creating a great user experience requires an understanding of the real need, not just what users say they want. By involving real users in the analysis stage of development, you can get to the root of their needs so your solution doesn’t leave them wanting more. Software project analysis requires seasoned professionals who know how to ask your users and stakeholders the right questions. They then take that information and apply best-practice methodologies to clearly define your project needs in language that is understood by every stakeholder and member of your team. From the end user to the developers; from the stakeholder to the UX designer; from the project manager to the business owner; your project documentation needs to convey the same message to every person involved. By designing to clearly documented business needs, the end result is a product that the users will enjoy. However, the best digital teams take this concept one step further and involve key users at every stage of development. Wireframes, prototypes, and
  • 11. Build a Killer Software Application 9 early releases can all be vetted by users and stakeholders to guarantee that your software is exactly what’s needed. So, how do I know if implementing my idea is worth the cost? There are several ways to determine if there is merit to the cost of your project. The following table outlines questions about why you might want a custom software solution. If you can answer yes, then your solution is worth the time, effort, and cost to create. Purpose of Software Factors Automate manual processes  Custom appointment scheduler  Automated order taker  Automated billing system  Will it save time?  Will it reduce errors?  Will it automate labor-intensive tasks? Revenue generation  Online shopping cart  Pay-per-use service  Subscription website  Will the site pay for itself in a reasonable amount of time?  Is there a current and known demand for the site/service? Lead generation  Company website  Non-monetized blog  How much revenue is each lead worth?  Do you foresee a return on investment through this form of lead generation? Entertainment/Edutainment  Monetized blog  Game/media service  Will your estimated traffic pay for the cost of the site development?  Is there a current and known demand for the site/application?
  • 12. Gate6 Inc. · (877)43GATE6 · gate6.com 10 Software development comes down to cost/benefit analysis. Your site might not pay for itself in the first year, but when it breaks even and then becomes a revenue stream, it becomes a valuable, beneficial part of your business. If your site or application differentiates you from your competitors, streamlines critical processes, or otherwise sets you ahead in the marketplace, then it’s worth the investment. Your IT team should understand the complex nature of software development and should help you understand the costs from inception to launch. In addition, they should help you manage your challenges along the way. Follow along in Chapter 3, and discover the top 6 challenges in software development, and how your digital partners can help you leap over those hurdles to deliver killer applications.
  • 13. Build a Killer Software Application 11 TOP 6 CHALLENGES IN SOFTWARE DEVELOPMENT “I really hate this darn machine; I wish that they would sell it. It won't do what I want it to, but only what I tell it.” Author Unknown
  • 14. Gate6 Inc. · (877)43GATE6 · gate6.com 12 Software development has evolved beyond tech geeks typing furiously in a dark abyss adding features to static systems. It has become a critical, business-infrastructure component that needs to evolve, adapt, and improve at the drop of a hat. In today’s business world, software is at the core of each company’s ability to create products, systems, and services. The demand continues to increase for agile software solutions that are intelligently designed and well-integrated. And innovative software has become a key differentiating factor in competitive business landscapes. Software development is complex, so it’s no surprise that challenges are part of each project. We’ve compiled a list of our top 6 challenges that every business should be aware of when building new software solutions: You must completely understand your users. What we think our users need can be completely different from what they actually need. Also, knowing how to group users into salient personas is somewhat of an art form. Effective planning means understanding users, designing based on their needs, and integrating user feedback throughout the design and development process. Understanding a system’s users begins with asking the right questions.  What need does the application fill for the user?  What components are the most critical to accomplish each user’s goals?  How will users navigate and use the application?  What is the technical level of the application’s user base?  What are the psychographics of each user group?  What differentiates and distinguishes different user types? These types of questions are addressed in the planning phase of the project so that the appropriate design can be developed prior to implementation. Understand what your users need, even if they don’t. Even with heavy user involvement throughout the design and development process, it’s inevitable that the user will realize what they need only after they use the application for the first time. Including actual users in acceptance testing as part of the agile process catches many issues prior to launch and results in higher adoption rates upon release. Beyond inclusion of users, you need to understand your user group psychographics and the problems your users want to solve. You should be able to clearly describe your users in terms of expertise, approach, required features, and questions they might ask.
  • 15. Build a Killer Software Application 13 Integrating different technologies can get sticky. There are countless different technologies, systems, and applications available to businesses. When beginning your project, you must choose everything from development platform to plugins to templates. Your vision for the perfect application might seem like an impossible dream when faced with all of the available technologies. When you nail down your chosen technologies, you’re presented with a new set of options: the systems that your users might want to use to access your software. Even a simple requirement, such as supporting multiple browsers, significantly increases the complexity of building and testing software solutions. If you add in mobile platforms, Internet-enabled devices, and the next-big-thing on the emerging-technology horizon, you’ve quickly made your application so complex that it’s difficult to know where to start. Integration of existing systems, such as your CRM, website, or inventory management database, can simplify your life by increasing product adoption and alleviating data migration headaches. But pulling in legacy systems can also add a whole new layer of complexity. Your new software solution must conform to the external constraints of these existing systems, while allowing the flexibility to lay in new features. You don’t want to be tethered completely to your legacy systems, yet it’s crucial to integrate with your existing platforms. Otherwise, your costs might grow out of control before you can say “requirement.” It’s tough to find the people with all of the right skills. Just as integrating components is challenge, finding and hiring resources who understand them can be even more so. Each project’s applications, tools, and technologies could demand a new set of skills and expertise. Highly skilled resources are often difficult to find and tend to be costly. Beware of the development agencies that say they can handle your complex needs for cheap. Remember: you get what you pay for. When asked, “Who will use your application?” you cannot answer, “Everyone!” While it would be great to have a system that everyone wants to use, it’s beyond impractical—it’s impossible. To design a system, you must fully understand who your users are, what they want, and how your system will meet their needs.
  • 16. Gate6 Inc. · (877)43GATE6 · gate6.com 14 Test environments are expensive and difficult to configure. It’s very difficult to test software because the tester cannot be in an environment that perfectly matches the environment of the final products. Test systems that properly mirror your production environment tend to be extremely costly. Most businesses don’t factor adequate test environments into the budget for their websites or custom applications, and yet you can’t make untested changes to active production systems. During the first pass of development, user acceptance testing is a must. Your test environment must accurately mirror what the user will see when the application or website is live. It’s impractical to gauge how a user will really use the application in different situations if the test system is noticeably different from your production environment. Your test results from such an environment won’t yield useful, actionable work items, and your end product will suffer. When planning your software project budget, be certain to factor in enough money to cover the cost of a viable test environment. If you’re outsourcing your development to an agency, be sure that their test environments are up to par and that their quality assurance teams know what it takes to create a viable test bed. Requirements change as the project comes to life. Also known as scope creep, it’s common for businesses to continuously come up with new ideas throughout the design process. Seeing your product come to life is exciting, and the act of designing and building a product fuels creativity so new features and ideas are created. It’s so easy to get caught up in all the things we want to do, that we forget what we originally set out to create. When the solution is live, it’s a given that new, desired features and capabilities will reveal themselves. However, these improvements can always be implemented in subsequent development phases. It’s important to keep focused on the core functionality you are trying to achieve in order to ensure that your application’s foundation is built completely. You want your system to be capable of supporting new features, but it will never get there if requirements continue to change and developers are pulled in different directions during the development process. If all new ideas and features are added during the initial development phase, your project’s delivery timeframe, overall quality, and budget will suffer. Additionally, the foundation that you’re creating during the first phase of a project relies on controlled and tested implementation of the core functionality of your system.
  • 17. Build a Killer Software Application 15 When new ideas for features present themselves, make note of them. Keep a running backlog of detailed descriptions of these great ideas. After the initial deployment, take some time to gather user feedback and then start preparing the next phase of the project. Use your list to see which of your ideas are even desired by your users. Also, keep your mind open to ideas for features that you didn’t think of, but that your users call out as wants and needs. If you outsource your project to an agency, make sure they understand the complete scope of your project. They should be able to identify the core functional needs of your project, map out the user requirements and workflow, identify the critical components, and be able to place all the complicated backend code behind a killer user interface. Now that you have an idea of the costs to build a software solution and you understand the challenges, you have an important question to answer: Will your new solution be delivered via a website or a mobile app? Both have merits, and both have limitations. It’s important to know your options to deliver the best possible experience to your users. From initial planning, all the way to deployment, understanding the challenges of software development ultimately creates a better experience both for your team and your users.
  • 18. Gate6 Inc. · (877)43GATE6 · gate6.com 16 WEB OR MOBILE? Making the Right Investment “...if you really want to understand something, the best way is to try and explain it to someone else. That forces you to sort it out in your own mind.” Douglas Adams
  • 19. Build a Killer Software Application 17 According to a Global Web Index study conducted in 2015, 80% of Internet users own a smartphone, and 47% own a tablet. The study also notes that men and women both use their phones for an average of 30 hours per month, and 89% of that time is spent using mobile apps. It’s no wonder there seems to be an app for everything. Mobile apps can provide value-add services to customers, drive purchases, and keep your brand top-of-mind, however, they aren’t the optimal solution for every set of requirements. How do you know if it’s worth the investment to go mobile? Each application platform provides value in different capacities, and also demands its own unique set of requirements for design, development, and functionality. Maybe Mobile? Mobile apps are native to a mobile device’s operating system, such as iOS or Android. They do not require an Internet browser, and are designed for the user to accomplish a primary goal quickly and efficiently, with optional secondary capabilities. The following are key points that indicate when it may be appropriate to build a mobile app on top of (or instead of) a web app: The application will be used regularly and requires a high level of personalization. Your user’s mobile device is a secure system that lends itself to highly personalized operations. Applications that do well on mobile devices offer services such as bill pay, account management, and access to personal records. Additionally, mobile applications that center around a single (or small set) of distinct functions tend to garner high adoption rates by users. For example, if a core business function for your company is scheduling appointments, an app could be developed that allows customers to view available time slots, schedule their own appointments, and receive push notification reminders. There’s a need to access the mobile device’s native functionality. If your application in development requires the use of a camera, GPS capabilities, or needs quick access to sensitive personal information, it’s a good candidate for mobile. Mobile devices have many features that can be quickly and easily integrated into apps. They’re built for diversity, while maintaining ample security measures that can be configured using Understanding the fundamental differences between mobile and web applications is the first step in determining the best software solution for your business.
  • 20. Gate6 Inc. · (877)43GATE6 · gate6.com 18 native functionality. For example, if your application needs to help users locate businesses in real time, an app that seamlessly integrates the mobile device’s built-in mapping system will delight your users and will keep them coming back. Data storage is needed for offline access. Do your customers want access to information at the tips of their fingers – sans Internet connection? Insurance cards, appointment reminders, and documents are just a few things your customers may want to access while offline. After all, convenience is the name of the mobile app game. A mobile device contains integrated storage that follows your user wherever she goes. Websites have to make use of computer or cloud storage, which tends to be static, requires separate log-in access, and relies on heavy user interaction to choose folders and file names. Mobile devices don’t rely on Internet connections to store and retrieve data. It’s there when your user needs it, every time. Your application is gamified or relies on social channels. Games and social media are designed with mobile in mind. If your application needs to integrate with popular social feeds, or if you’re creating a game that connects users real-time, a mobile app is what you need. The quick response of mobile devices, coupled with the touch- screen interface and immediate access to social networks will provide out-of-the-box integration that is native to the device, and receives regular, automatic compatibility updates. What About Web? Web apps are essentially cloud-based software. They are similar to a website in structure, as they are built on the fundamental web technologies of HTTP, HTML, and JavaScript. Web apps can only be accessed through a web browser and are designed to accommodate a myriad of functionalities and features, and achieve multiple core business objectives through a single interface. There are several reasons why a web app might make more sense for your business. There’s a need for immediate access to the application. With a web app, your users can navigate to your site with any browser and immediately start using your app’s features, as opposed to mobile apps, which must be downloaded by the user before use. Furthermore, web apps require minimal user effort in terms of setup, whereas mobile apps require the user to go through steps to configure signup or verification and allow interoperability with native device functionality. From a marketing perspective, with a little effort, your web app can rank in searches, placing your brand at the top of your target user’s Internet search. A high-ranking, content-rich app lends itself to immediate access by new clients.
  • 21. Build a Killer Software Application 19 Web apps are compatible by nature. Web apps can be accessed using any browser running on any computer; mobile apps require a separate version to accommodate each operating system on different devices. If your app needs to be accessed from any type of system, a web app might be the better choice. If you design your web app to be responsive, it will function just as well on a mobile device as it does on a desktop system. With some careful planning and brilliant execution, your web app adoption can span both web and mobile users. Your web app is always up to date for every user. Web apps are much easier for making on-the-fly content changes and rolling out new features. Revisions to web apps are delivered without user involvement and are available to your users immediately - even while they are actively using your app. Mobile apps require users to download and install updates on their device. Furthermore, mobile app users can refuse updates, causing your support team to have to field calls from users that have outdated or obsolete data and functionality. Web apps can be shared easily. Since web apps are accessed through a web browser, sharing the URL is easy. New users only need to click the link that’s been shared with them to find and use your app. If your app is designed correctly, new users are funneled to the proper site functionality to learn about your site and create accounts regardless of the link that is shared with them. With just a few clicks, your app can gain new users organically through word of mouth. Managed data is hosted by your business. If there’s a need to harvest and manage complex data entered by your users, a web application could be the best solution for your business. The ability to automate and organize the data specific to your company needs could prove extremely valuable. From optimizing employee productivity, to reducing manual data-entry efforts, to analyzing metrics for advertising campaigns, data provided by your users is a critical part of your business. The first step in deciding whether to build a web or mobile app is knowing your business requirements. Depending upon budget, it may even be beneficial to build for both web and mobile users. Ultimately, your success in driving users to adopt your application comes down to understanding your users: what they want, what they need, and how they expect to access your business online. User acceptance is critical to application adoption and success, but how do you know you’ve answered all the right questions? We’ve established that users don’t even know what they want until they get it. Now let’s take a look at defining the perfect acceptance criteria so that your users love using your app.
  • 22. Gate6 Inc. · (877)43GATE6 · gate6.com 20 Start with Chapter 1: In-House vs. Agency: Making the Right Choice. DEFINING ACCEPTANCE CRITERIA An Exercise in Managing Expectations “[Programming is] the only job I can think of where I get to be both an engineer and an artist. There's an incredible, rigorous, technical element to it, which I like because you have to do very precise thinking. On the other hand, it has a wildly creative side where the boundaries of imagination are the only real limitation.” Andy Hertzfeld, About Programming
  • 23. Build a Killer Software Application 21 When starting a software project, stakeholders and project managers come together in doe-eyed fashion, dreaming up all the “what-ifs” they can imagine. Through diligent analysis, applied know-how, and a little bit of good, old expectation management, your product team will lay down the basic framework for what will ultimately become your application. It’s a long road between project inception and delivery, with many people interpreting and building on project concepts, plans, and requirements. As an end user or key stakeholder, how can you be sure that you’ll get what you asked for in the first place? Two words: Acceptance Criteria. In software development terms, acceptance criteria are nothing more than a pre-determined and documented vision for project success. It’s what takes your project from “what was coded” to “what was intended.” It’s the reference document that is used by everyone who touches the project - from stakeholder to developer, and all steps in between - to verify that each component of your application operates exactly as expected. Crafting effective acceptance criteria falls somewhere between formula and art form. However, there are certain ideas to keep in mind while defining the expectations around your application so that your acceptance criteria aid your acceptance testing to the highest degree possible. Your criteria are an accurate reflection of client expectation. Acceptance criteria should be written in simple language that traverses the technical capabilities and business understanding across every member of the product delivery team. From end users to developers, everyone on the project needs to work from the same set of criteria. Additionally, these criteria should define no more than what the product will deliver, and should leave no room for questions. If questions arise around a particular feature, acceptance criteria should be written immediately so that there are no gray areas to cause confusion during testing.
  • 24. Gate6 Inc. · (877)43GATE6 · gate6.com 22 Your criteria must be specific. It’s not enough to say “The login page must work.” Your criteria need to tell the user what “work” really means. For example, on your site’s login page, your acceptance criteria should document what happens: When a user logs in correctly, when he attempts to log in with an incorrect ID, or when the ID is correct but the password is wrong. Additionally, your criteria should describe help and error messages that are shown and how the system helps users to correct errors. Your criteria must be testable. From the developer’s standpoint, acceptance criteria should lend to the creation of one or more automated tests. On the other end of the team spectrum, acceptance criteria should be intuitive enough that an end user can navigate to the documented feature and manually test to verify that the criteria have been met. Your criteria should have yes-or-no answers. When an end user is handed a list of acceptance criteria, he should be able to check off each line item to indicate success or failure. If your acceptance criterion is ambiguous, or lends itself to more than one yes-or-no answer, then it needs to be broken into smaller chunks. You should define all three types of criteria. Your project requires the definition of three types of acceptance criteria: Functional, non-functional, and performance. While these three terms seem like techno jargon, they relate to the different types of features created by each of your project teams.  Functional Criteria are specific user tasks that are created at the code level. Your developers are very interested in the functional aspects of your application. They represent the usable features of the product. For example, when the end user clicks a button, enters data, or otherwise interacts with your application, the response generated by the action is a function of the app. Your functional criteria center around those application functions in terms of what is expected by the user.
  • 25. Build a Killer Software Application 23  Non-functional Criteria are conditions that must be met, but that aren’t true functions of the site. Adherence to design, color schemes, button shapes, site layout, logos displayed, etc. are all non-functional criteria. Your designers and business stakeholders are very concerned by non-functional criteria. They represent adherence to branding, and they affect overall perception throughout the user’s experience.  Performance Criteria are critical to product adoption by end users. Many times, these key criteria are overlooked or ignored. But your business owner and your end user are keenly aware of the impact of poor performance on an application. Your business owner will want to see metrics on performance, and your end user will flat-out stop using it if it runs too slowly. These criteria are typically defined in thresholds. For example, “The login page loads in under 2 seconds” or “The login process takes less than 5 seconds, including landing page load.” Acceptance criteria can seem daunting to create and manage, but with a good business analyst and project manager at your side, you can be sure that your end result will accurately reflect your user expectation. Even with the best acceptance criteria possible, your project cannot—and will not— succeed without adequate testing. Many people feel like they shouldn’t have to pay for quality assurance, but remember, you get what you pay for! Follow along in Chapter 6 to learn the benefits of having dedicated QA on your project.
  • 26. Gate6 Inc. · (877)43GATE6 · gate6.com 24 Start with Chapter 1: In-House vs. Agency: Making the Right Choice. WHY QA MATTERS “Before software can be reusable it first has to be usable.” Ralph Johnson
  • 27. Build a Killer Software Application 25 You’ve invested time, effort, and money into creating your new application. Project managers, business analysts, user experience experts, software architects, and developers have all been engaged and are working diligently off of a masterfully- created list of user stories. Your stakeholders and users are chomping at the bit for a finished product. And then there’s the Quality Assurance (QA) team. You might be wondering, “Why do we have to pay for QA? Don’t these people know how to build software right the first time?” It seems like a logical question, but QA is simply not optional. In fact, it is an integral part of the development process that starts with the very first business meeting. Even if your analysts write the perfect requirements; even if your project managers maintain a perfect schedule; even if your developers are some of the best and brightest in the industry - things don’t always work as planned once the pieces start coming together. What Is QA? Quality Assurance teams test software for both completeness and usability. QA engineers are highly skilled professionals that provide unbiased validation of your software. Your QA team neither designs nor develops your application. Thus, they are a neutral third party that walks the line between business rules and code, understanding each in detail, and without the bias of creating either. Fully integrated QA helps avoid releasing costly defects that could drive your customers away. What Does the QA Team Do? You’ll hear lots of terms around quality assurance and testing: white box, black box, regression, unit testing, fault injection, capacity, and tolerance. Most of those are fancy ways of saying, “We’re trying to break your application so users don’t encounter any defects.” But QA also goes beyond testing the lines of code that run your application. They verify that your application runs in all reasonable conditions:  Cross-browser compatibility  Mobile device compatibility  Functionality under bare-minimum hardware conditions  Functionality under limited Internet bandwidth  Scalability for future expansion  Ability of your hardware and software to function under heavy user load
  • 28. Gate6 Inc. · (877)43GATE6 · gate6.com 26 Quality Assurance works diligently to verify that what you’re getting is exactly what your users are expecting. From form fields and stored data, to your copy and graphics, your QA team is inspecting every aspect against your precise specifications. Why QA Is Necessary Have you ever sent an email only to read it later and realize you made silly grammar mistakes? Mistakes sometimes make it through despite your best intentions. The same phenomenon holds true for software developers. Even with the best developers, tiny errors slip through the cracks. That’s where QA engineers come in. Their sole focus is on the quality of your application’s functionality by finding and fixing the missing links, tiny errors, and silly missteps. According to a 2013 study by Compuware, users have a very low tolerance for buggy applications. Only 16% of users will try a new application more than twice if it’s faulty upon initial download. Buggy software that’s hard to use is a direct result of insufficient testing. If your software has defects or isn’t compatible across standard technologies, you will lose users. How QA Works A lot of people—even some in the IT world—think that QA is a last step. That’s how QA used to work in older, antiquated models of software project management. In modern, agile projects, quality assurance begins before coding starts. Test scenarios are created right from the beginning with ample input from stakeholders and key users. These scenarios become integral to the entire development process. As the team formulates a deep understanding of your product, they engineer quality metrics around the exact needs of your customers. From requirements definition through product delivery; from hardware specifications to user experience specifics; your quality assurance team ensures a robust and reliable finished product that promises higher user adoption rates and happy users.
  • 29. Build a Killer Software Application 27 Start with Chapter 1: In-House vs. Agency: Making the Right Choice. BONUS: BRANDING FOR A KILLER USER EXPERIENCE “Most business models have focused on self-interest instead of user experience.” Tim Cook, CEO of Apple
  • 30. Gate6 Inc. · (877)43GATE6 · gate6.com 28 Your user experience starts with your brand. Think of a few of the greatest names in advertising and how a simple logo immediately brings your opinions of them, immediately to mind. Imagery, color, font, tone, and message are all critical components of your brand and user experience. Your digital team, from designer to developer to QA, should all live and breathe your brand so the product they deliver is 100% consistent with your message. Only a team well-versed in both marketing and development can produce an application that engages users while consistently delivering your message. When developing your new website or mobile application, your brand maturity will factor into your user experience design and application delivery. Use these three positions to determine where you are in your brand development and how that affects the development of your application’s UX. I’m brand-new and setting sail! You have a lot of creative freedom and can build a brand that fits your target audience. That’s great! It also requires a lot of careful, iterative work to get it all just right. If you lack a professional marketing team, you could set yourself up for failure before your developers lay down a single line of code. So get someone great, make sure you have real audience research (or at least some actual users to talk to) and start building your brand based on your most avid user group. I’m brand-established, but I’m stuck in the fog! If you have established creative for your brand but you feel like you’re drifting instead of moving forward, it’s possible that your brand needs to be refined so it can resonate with your target audience. On the other hand, if your digital marketing is inconsistent no amount of whiz-bang features will put you on the path to increased sales. It could be time to shore up your brand identity so as you get to critical decisions like, “What should the error message say?” or “Should we use swipe or tap for this interaction?” you can pull attributes from your brand to create the experience that your users love. I’m welcomed in all the ports! If you have a solid customer base that already loves your brand, that’s wonderful. Whatever you’re doing is working, so stay with it! It’s even more critical for you to keep your new application or website consistent with your brand. Your users will have established expectations going into the experience, so keep them engaged and
  • 31. Build a Killer Software Application 29 happy by keeping this experience consistent with what made them fans in the first place. Because your brand is about attracting customers, you must know their habits and needs better than they know themselves. When you create accurate user personas from your customer group, you can design with their needs in mind. The way these needs are fulfilled through carefully crafted interactions and messaging is the essence of user experience. UX starts with the first time someone learns about your brand (e.g. through Google search or an online review) and continues through even the smallest interaction, such as a smartphone push notification or a simple error message. If your brand is woven into the development of your application, it will reinforce the user’s love of your product. It’s the holy grail to create a brand that users love because they will stay with you and even forgive the occasional misstep. In the digital world, change is expected and technology is continuously evolving and shifting. It can feel like rip tide. To stay afloat as you navigate the waters of user experience, your brand must become your compass. Don’t leave this critical component to success in the hands of amateurs. Hiring a digital agency means you get the best of both worlds: creative teams who know how to design with users in mind, and developers who can translate your brand into feature-rich applications that users love to use.
  • 32. Gate6 Inc. · (877)43GATE6 · gate6.com 30 Start with Chapter 1: In-House vs. Agency: Making the Right Choice. BONUS: FORWARD FOCUS “The future belongs to those who prepare for it today.” Malcolm X Designing with the Future in Mind
  • 33. Build a Killer Software Application 31 In 1899, Charles H. Duell, Commissioner of the U.S. Office of Patents made the declaration: “Everything that can be invented has been invented.” Oh, how wrong he was. As Internet technology professionals, we understand that technology changes at blistering speeds. These rapid shifts make it difficult to predict user adoption of new ideas and emerging tech. From the Betamax to Google Glass, we’ve all seen tech trends that never took off. On the other side, we’ve seen heavily adopted technology become obsolete. How, then, can you be sure that your software in development will stand the test of time? There are two key factors in future-proofing your software design. Design in Layers Your user interface is heavily technology dependent. Mobile operating systems demand specific UI implementation and supporting multiple browsers is always a challenge. Your back-end business systems tend to be more technologically static. Database technology, storage systems, and web service layers are slower to change. Perhaps you’ve heard the terms Model-View-Controller, or Model-View-ViewModel. These terms refer to software architecture models that rely on loosely-coupled layers which build modular, scalable software. Regardless of specific implementation architecture, your software development team should be designing your application in three distinct layers:  The Data Layer houses stored information that your system needs for operation. This layer includes databases, flat-file storage, back-end configuration files, etc. The data contained in your data layer might be sensitive in nature and typically requires controlled access.  The User Interface Layer holds the graphical representation of your user’s online experience. It is comprised of the screens, flow, and interactions that allow your user to interface with the data and functionality they need.  The Business Layer is the switchboard in the middle that connects your user to your back-end systems. It provides the business rules and logic that allow the UI to access, display, and manipulate data in predefined, secure, and repeatable workflows.
  • 34. Gate6 Inc. · (877)43GATE6 · gate6.com 32 When your application is defined in layers, any given layer can be swapped out to accommodate emerging technology. Additionally, new devices can be easily supported by adding additional User Interface layer functionality without having to make a single change to the business or data layers, allowing for a quick business response to technology trends. Start Small and Grow in the Right Direction When you envision your new application, you probably see the grand, big picture of a dazzling final product that’s feature-rich. While your vision is warranted, and the end goal is to deliver a product that users love to use, you have to start small. The best, future-proofed designs begin with a Minimum Viable Product (MVP). The MVP represents the minimum set of functionality needed to get your product out the door and in the hands of users. Through careful, focused study of your user groups, you can define a product that will meet your user’s needs, while showing where your fully developed product is headed. After you release your MVP, you can grow your product in a direction that delights your users. By gathering and analyzing user feedback, then delivering requested features through rapid, agile development processes, you can continually engage and delight your users. Software that is grown according to user demand breeds loyalty to both your product and brand while generating positive word-of-mouth. This style of development also ensures that you don’t waste money and development cycles creating features that users don’t want. User adoption is a cornerstone in future- proofing your application; without continual user adoption, your application will be destined to go the way of Betamax. You can’t always guess where technology is taking us, but you can safeguard your investment by designing with the future in mind. Ensure that your next big app doesn’t become yesterday’s news by finding a team that understands how to ride the wave of changing technology.
  • 35. Build a Killer Software Application 33 NOW YOU’RE READY “If you can read this, thank a software developer.” Author Unknown
  • 36. Gate6 Inc. · (877)43GATE6 · gate6.com 34 Computer software is inescapable in the business world. Through the course of the last 6 chapters, you’ve learned a lot about the complexities and choices you’ll face in your software project. You’ve discovered:  The potential benefits of contracting a digital agency to tackle your development project  Many of the costs that are associated with software development  How to tackle some of the challenges you might face during your project  The ins-and-outs of choosing between web or mobile product delivery  How to manage user expectations and still deliver a killer product that users will love  The benefit - and necessity - of baking quality assurance directly into your project plan The good news is; you’re armed with some knowledge to help you navigate the initial stages of your project. Thank you for reading our eBook! If you’re ready to launch your website or build the next big app, check out how using our 6 Steps to Success will kick- start your project in just a couple weeks. Then give us a call toll free at (877)43GATE6. We’d love to talk to you!