The Complete Guide to DEVELOPING CUSTOM SOFTWARE FOR ANY BUSINESS CHALLENGE
Developing Custom Software for Any Business Challenge: The Complete Guide Copyright 2015 Published by Art & Logic All rights reserved. Except as permitted under U.S. Copyright Act of 1976, no part of this publication may be reproduced, distributed, or transmitted in any form or by any means, or stored in a database or retrieval system, without the prior written permission of the publisher. Design by Hinge. Visit our website at www.hingemarketing.com - 2 -
INTRODUCTION Today, software is everywhere: connecting and enriching our personal lives while opening new horizons in the business world. In this environment of tremendous possibility, a myriad of organizations are seeking to achieve unique goals through custom-built software. Some of these applications are new products for the public, while others are designed to support better, more effective business processes. Regardless of the software s aim, there are common challenges that arise in the development of custom software. Many of these challenges are not insurmountable when you incorporate thoughtful planning with the collaboration of a software development partner. In this guide, we ll share what organizations need to know to make the custom software development process as effective as possible. We ll cover: Chapter 1: The Real Cost of Custom Software Development: Uncovering What s Hidden Chapter 2: Custom Software ROI and How it Affects Your Bottom Line Chapter 4: Expanding Your Current Capabilities With a Custom Software Solution Chapter 5: Integrating Software Applications for Multiple Platforms Chapter 3: Creating a Custom Software Application that Works for Your Industry Ready? Let s get started. - 3 -
Chapter 1 THE REAL COST OF CUSTOM SOFTWARE DEVELOPMENT: UNCOVERING WHAT S HIDDEN When you set out to create custom software, one of the biggest dangers lies in hidden costs unexpected expenses that can upset your planned balance of budget, deadline, and features. The key to keeping your project from getting mired in these pitfalls? In short, you need to recognize these traps before you set out, so you can avoid them once you re on the road to a finished product. What, then, are some of the most common mistakes that organizations make when estimating the cost of a software development project? What kind of hidden costs may emerge? Unique Process, Unique Costs The need for coding, for example active fingers on keyboards time is obvious. But not everyone anticipates the necessity of management time and coordination if a software development team is carrying out the project. There are also up-front research costs that help ensure you re pursuing the best possible software solution for your needs. In order for the development process to be effective, your team will need to collaborate closely with the development firm during the research stage, and you should not overlook the cost of this participation. The first important thing to remember is that software development is not analogous to physical manufacturing, or any other production process. Its methodology is unique, and when decision-makers plan a software project based, consciously or unconsciously, on the assumptions of another production methodology, it can mask a variety of key costs. Likewise, there are costs associated with: User interface and design Testing the code Deploying the code Hosting a web application Bandwidth expenses - 4 -
When planning your project and speaking with potential software development partners, it s important to anticipate, discuss, and arrange for the full spectrum of needs specific to the software development process. Up-front collaborative problem-solving can help avoid situations where you discover a hidden need or make a major, costly pivot in the nature of the project by starting out in a better direction on the first day of the project. Avoiding Hidden Requirements Even with the best planning, it s impossible to completely avoid surprises. One of the biggest hidden costs in a software development project can be hidden requirements new needs that don t emerge until after you ve started the project, and that could add anywhere from days to weeks to the development time. Remember: at its best, software development is a highly iterative, highly collaborative process. In the next few chapters, we ll explore exactly what that means. So how can clients and vendors work together to avoid or mitigate these hidden costs? Once you re in conversation with a software development partner, it is useful to take a step back and focus on the problem you are attempting to solve rather than any specific solution that you may have in mind. Often, if you can work through this process collaboratively, blending your industry expertise with the partner s understanding of software, you will identify a better solution than what you had initially envisioned. Often, organizations without experience writing software or custom solutions may impose artificial limits based on their understanding of what s possible. - 5 -
Chapter 2 CUSTOM SOFTWARE ROI AND HOW IT AFFECTS YOUR BOTTOM LINE In the last chapter, we discussed how to plan your custom software project to minimize hidden costs. Now, let s consider the why behind your project. What are some of the most common ways that organizations achieve a favorable return on investment when developing custom software? The Two Types of Projects On the whole, there are two types of custom software, each with vastly different types of prospective returns. The way you evaluate ROI on a project will necessarily depend on the type of project you re undertaking. Let s examine them one by one. 1. Commercial Products For commercial software products, your return is going to be based on how many copies of the software you sell. In this case, it s essential to perform market research up-front in order to ensure that there is actually a market for what you re setting out to build. It is also important to recognize that good ideas or products that fulfill personal needs do not necessarily meet marketplace needs. This may sound obvious. Most larger companies have both the experience to know they should conduct market research and the resources to do so by and large, these organizations - 6 -
are already in the business of selling a product. But many individuals and startups neglect this step in today s marketplace. It is also important to recognize that good ideas or products that fulfill personal needs do not necessarily meet marketplace needs. As younger, smaller companies set out to develop custom software as a commercial product, there are several more factors they should understand are crucial for any ROI estimation. In today s software marketplace, one can no longer simply post a website or upload an app to the major app stores and assume that people will find it. It will be important to budget not only for the development of the product, but also for marketing, maintenance, and support. This measurement can take many forms. It could be an improvement in profits, or an improvement in the experience of your employees through the simplification of some regular but onerous task. This might lead to indirect improvements in output, as well as improved employee retention and cost savings in recruitment. The key is to understand the problem you re trying to solve. There are many ways to improve your bottom line, but no matter what kind of project you re pursuing, research is imperative. 2. Business Process Software Business process software workflow applications that manage an internal process are a very different proposition, but the first step is similar. You have to do the research internally and understand the problem that you re trying to solve, investigating potential solutions so you can build one that achieves the desired effect. What is the desired effect? This is the crux of the ROI question when developing custom business process software. You might aim to improve the quality of your output, reduce costs, or improve the reliability of your processes. It s essential you identify how you will measure ROI. - 7 -
Chapter 3 CREATING A CUSTOM SOFTWARE APPLICATION THAT WORKS FOR YOUR INDUSTRY You ve considered potential pitfalls and estimated the likelihood of a favorable return on investment for your custom software development project. Now you face another question: how do you go about understanding the scope and nature of the problems you re trying to solve? Collaborative Expertise This is where working with software development partners who know how to collaborate effectively really pays off. Their area of expertise is developing custom software; yours is your business domain. By working together, you have the joined expertise necessary to analyze both your business challenge and the full range of potential software solutions. When choosing a software partner, it s important to choose a firm that treats you as part of the development team. Once your team is in place, examine the problem that you re seeking to solve collaboratively, focusing on the problem rather than potential solutions. You should gather information about your impetus for building a solution, identifying requirements that define the challenge so that those requirements may drive the solution. This helps you ensure that you don t jump ahead of yourselves, accidentally neglecting important information or possibilities because you ve already settled on an approach. - 8 -
Iterative Development The steps above could take anywhere from a few days to a few weeks. This can be a highly involved process, with your team collaboratively defining and proposing a solution to the problem. In some cases, you could find that you need to do some tests to understand what the best solution is: this might even involve creating a proof-of-concept, a minimalistic version of a piece of software that would allow you to test certain pieces of functionality. The iterative software development process is ultimately a benefit. It is a refining technique that ensures your custom software solution is working as it should to address your challenge, and helping you to realize the best possible result. Not every project will start with a proof-ofconcept, but every project should involve a great deal of testing. This is part of the iterative development process that is fundamental to effective software development. Generally, development should move in two-to-six week cycles, building out pieces of the project and testing those individual pieces to ensure that they work as effectively as possible once they are eventually combined. This should be a highly involved process for the entire team. Look for your software development partners to seek continuous feedback: this is part of how you will make the software as effective as possible. In the course of the development process, requirements will likely evolve this is natural. In fact, it s often impossible to identify the full range of requirements without first developing and analyzing part of the solution. - 9 -
Chapter 4 PRIORITIZING FEATURES FOR A CUSTOM SOFTWARE SOLUTION Every custom software project is unique. Otherwise, it wouldn t be custom. With this in mind, it s important to align the overall custom software development process to your needs. Not every project, for example, will need the same depth of initial research you wouldn t apply the same research process to a manufacturing plant control system as you would to a web form for collecting user data. Similarly, as you decide which software features and capabilities to pursue, it s best to prioritize those that are essential to solving your business problem. How, then, do you select which features to implement? Version 1.0 There s one important thing to remember: software is an ongoing process. You will always have the ability to build second, third, and fourth versions of your custom software. When you re building a commercial product, it s useful to conceptualize the first version as the simplest iteration of the software that will meet the need you ve identified in the marketplace, excluding the bells and whistles and nice-tohave features. We can think of this simple, initial version as Version 1.0. The same philosophy applies to business process software. If you can get an initial version built, the entire process is likely to run more smoothly. By contrast, project teams often run into problems when they shoot for every feature they can imagine right from the outset. For example, the implementation of one of those bells-and-whistles features may be dependent on how you approach a core piece of the software s - 10 -
functionality and if that core piece evolves, the feature will have to evolve with it. You can imagine how complicated this could get if you re trying to incorporate dozens of those bells and whistles all at once, from the very beginning. Depending on the success of your Version 1.0 or the user feedback you receive, you may find that those non-essential features are ultimately unnecessary. that something has gone awry or that something is missing in fact, it s good and necessary, and it leads to better software. A Strong Foundation This concept is sometimes frustrating for people with a particular vision for their custom software solution. They imagine everything they want their application to do, and they can t imagine it being useful without every element in place. It s natural to dream big, but by working together with your software development partner to build a straightforward, viable piece of software as a starting point, you will be embarking on a much more sound development process, and giving yourself a strong foundation on which to build. Focus on the highest-priority features first, and know that it s okay to release a simple version of your custom software solution first, approaching later versions as upgrades. Understand that solutions are going to evolve, and that s a natural part of building custom software. It s not a sign - 11 -
Chapter 5 INTEGRATING SOFTWARE APPLICATIONS FOR MULTIPLE PLATFORMS We ve spent a lot of time talking about conceptualizing your problem and your process, because these are two of the most vital considerations as you begin a custom software development project. But while it s important to start from the problem rather than a preconceived notion of the solution, you will have to make decisions about the form your solution will take. And one of the most significant of these decisions involves the platforms on which your software will run, and how multi-platform software may be integrated. Native Apps Across Multiple Platforms You may wish to create software native to only a given platform ios or Android, for example, if your application is mobile. In this case, your decision will likely be determined by the market research we discussed earlier identify which platform is most commonly used by your target audience, or on which platform a market need exists, and proceed accordingly. But what if you are seeking to reach or serve users across multiple platforms? Depending on the project, you may be able to use crossplatform development tools to create the same application on multiple platforms simultaneously. This approach is worth investigation, but it has limitations, and it s important to recognize when it s not practical given the project requirements or the capabilities of the tools. Not all projects lend themselves to cross-platform development, and sometimes it is more efficient and less costly to split the project and develop for each platform separately. Discuss these options with your software development partner and assess which approach would be most appropriate for your project. - 12 -
Applications That Run Within Clients So far, we ve only considered what are sometimes called native apps : software written to run directly on a given operating system. But if your users will utilize the software on devices with regular access to a network connection, there is another often preferable opportunity. and may require you to update your app after operating system updates. Hosting your custom software on your own server, by contrast, puts you in control of your own updates and content. These app store pros and cons illustrate how the right approach can differ from project to project. Ultimately, it s essential to understand the specific needs of your project through close research and consideration and proceed accordingly. In this approach, you can build a solution that runs inside common client software like a web browser. This way, users can access the application on virtually any device with a web browser, regardless of platform. Responsive design allows these web-based applications to adapt to a variety of screen sizes, as well. Such software is generally not available in major app stores (unless you ve created a custom piece of client software to render information from a server). This has advantages and disadvantages: being in an app store can give you a degree of visibility among a certain audience, but there are more and more apps to compete with in the major stores every day. Furthermore, the Apple and Google stores impose certain content restrictions These app store pros and cons illustrate how the right approach can differ from project to project. - 13 -
CONCLUSION As we ve seen, there are countless challenges that you might face in the course of a software development project hidden costs and tough decisions about feature implementation, platform choices, and ways of framing your prospective ROI. For all of these challenges, the key to success is close collaboration with a trusted software development partner. By making a careful, well-coordinated plan and working closely as a team, you can realize your custom software project efficiently. Whether you re developing a commercial product or a business process application, by collaborating effectively, you can bring your custom solution to life. - 14 -
ABOUT ART & LOGIC Since 1991, Art & Logic has been creating an amazing variety of custom software solutions for the world s most successful companies. Over time, we ve developed a reputation for delivering top-notch creativity along with the tenacity to solve the toughest software challenges. Today, we develop software solutions including: Mobile apps Desktop software Cloud applications Drivers And More Considering a custom field solutions app? Let s talk. Our developers can help explain the best way to get started. Contact us: 818-500-1933 www.artandlogic.com/contact - 15 -