Uncover 10 effective tips for completing software as a service (SaaS) application in a budget on time to achieve a satisfactory return on investment.
Software provided in the form of online services rather than desktop applications continues to grow exponentially. I have been involved in the development of many company SaaS projects. Based on these experiences, I've summed up 10 key elements of software development that can determine the success of a SaaS application and, in many cases, its release. These tips are designed to point the way for your SaaS development.
common abbreviation
API: Application Programming Interface DTD: Document type definition UI: User interface XML: Extensible Markup Language
1. Make Uxd the most valuable asset
With the advent of the Internet, the attention to the user experience is gradually discarded. In recent years, however, there have been clear indications that the user experience has become an important feature of successful software. The sign of this return is the popularity of the term Web 2.0, which eventually becomes more meaningful: Rich Internet applications (RIA). In this article, I intentionally put the user experience Design (UXD) First, because the user experience is the first feature that a computer user chooses an application to consider.
Figure 1 and Figure 2 show two interesting UXD techniques. Figure 1 illustrates the concept of page retention (stay on the page). Because this is a thin RIA client application built using Adobe®flex, there is obviously no page. However, the technology is still in effect. Use case scenarios: Users who want to change their personal account settings. Instead of retaining the current state (or page) of the application, you will be presented with an overlay window, allowing the user to make the necessary changes and then close the status and return to the task at hand.
Figure 1. UXD Technology example called page retention
interaction between man and computer
In a survey of people-Computer interaction in Forrester research, most respondents provided the answer by using usability as their main reason for choosing an application. Of all the successful SaaS projects I've experienced, usability testing is done before the initial programming process. I've also seen companies even conducting sample surveys that allow users to complete questionnaires about static image files. This is because the cost of software overhaul is very high. Additional research in the design and prototyping stages can save millions of dollars for the company. The development team can also identify trends, characteristics, and characteristics of human-computer interaction, as well as market preferences for the development of the phase.
Figure 2 shows the closed view of the window in Figure 1, but two modes are used. The use case is more specific: it assumes that the user wants to change the company information value, so select the corresponding title bar. Window 1 shows the state of the window the first time it appears. Figure 2 shows the window state after the user clicks the Company Information column. The technology is called the accordion menu, because when the title bar is selected, the panel expands and shrinks like a hinge. This behavior enhances the user experience because it enables users to locate and update one or more values faster and easier when many settings must be categorized.
Figure 2. Folded Page Board
2. Adapting to change requirements
If there is any certainty in software development, it is that clients, customers, or product owners will change the requirements of the project after they have completed all design, planning, charting, and prototyping. Most project managers undergo traditional training, and restricting changes is part of this training, which may affect the release of the first official version of the product.
Software development is evolving so fast that in the entire lifecycle of the initial development process, you will find that core project management approaches change several times. Therefore, each project should be prepared to implement new development methods or fallback methods of existing methods.
3. Adoption of open standards
SaaS companies must consider open standards so that, in future iterations, there will be less code to be done for compatibility with other devices, platforms, services, and WEB applications, and more users will be available. Consumers with SaaS applications will enable them to do many tasks. For example, Figure 3 shows a cross-platform application TweetDeck that uses both the Twitter and Facebook open APIs in one interface. TweetDeck will soon be one of the most popular Twitter clients because it allows Twitter users to view the update status of their Facebook friends without switching apps.
Figure 3. Popular TweetDeck apps use both Twitter and Facebook's open APIs
The power of the community
When you end a software project, companies or individuals who develop the software often contribute to the open source community. This may include a custom code base that is required to complete a task, or a group of reusable software components that can be modified and used elsewhere. This continuing contribution to open source tools fosters an environment in which technology can be developed quickly and continuously.
Using a tool based on open standards can significantly reduce the company's financial costs, because the cost of the resource is low without licensing fees, so you're in a higher starting point than building from scratch. You can then allocate resources to modify the source code to meet business needs and changes. For example, TweetDeck's authors focus on the user experience features in their applications, rather than dealing with Twitter and Facebook api--which can be cumbersome.
Imagine what would happen if Twitter and Facebook were to use their API fees? TweetDeck may have to charge customers monthly fees so that the company can pay for the use of Twitter and Facebook APIs. It is also possible that users must pay a monthly fee to Twitter and Facebook to use the TweetDeck application. This is bad for TweetDeck, Twitter and Facebook, and TweetDeck is probably no longer a successful SaaS application.
4. Before the design of the wire frame
From a functional standpoint, the wireframe (wireframe) is just the image concept of the specific state of the software program UI, as shown in Figure 4. Be careful not to design details. The goal is to avoid being distracted by design elements and to keep the focus on business functions. Once the application's business tools are identified, the design team will be able to take over;
Figure 4. Wireframe provides a UI image concept
This aspect is closely related to the first element of successful SaaS UXD. The difference is that for SaaS to succeed, UXD must be part of the entire software development lifecycle, from concept to production. On-Line box making, I found two errors that could lead to SaaS failures:
The
team entered the design process so quickly that creating the design theme of the application was suddenly part of the wireframe process, as shareholders wanted the software to look beautiful rather than useful. The critical state of the application is omitted from the online box collection process (that is, only a wireframe is made for some applications).
Interestingly, the second error is most damaging to the SaaS project. The most useful thing about wireframe is that you can rely on them to demonstrate a different understanding of the product requirements. They can represent the core architectural design dependencies well before development begins. Understand this, it is not difficult to understand why the complete wireframe production process can save a lot of time and resources for the company.
The complete wireframe set may contain more than 100 documents. Each wireframe should have a description of at least one to two pages to help shareholders understand what is in front of them while reviewing the wireframe. Remember, these wireframe needs to be revised before the shareholder signs. It is best to determine the difference during the online frame setting and not wait for the functional code to be written.
Note: After the design process, the complete set of documents that defines the UI is often referred to as a book.
5. Provide the cloud infrastructure for SaaS
First, fools know that network infrastructure has a huge impact on SaaS. However, most SaaS applications on the WEB run with insufficient infrastructure hardware to scale as needed. As developers, we can use the extensible cloud system-often called the infrastructure as a Service (IaaS), but this advanced technology is very slow to promote.
The introduction of the technology is largely due to a lack of knowledge of the subject. For example, Amazon elastic Compute Cloud (Amazon EC2) can bring a lot of savings to companies running SaaS applications, but the lack of knowledge about Amazon's Web Services (AWS) infrastructure has led many companies back to legacy systems, Because that's what they know. However, the increasing bandwidth provided by ISPs provides a guarantee for successful SaaS applications, which automatically require higher network performance for SaaS applications that extend resources as needed.
6. Generate a complete design document before you start writing code
Software and the company's operating principle is the same, successful SaaS company's main characteristic is the development process planning stage is very perfect. A high-quality design document will serve as a roadmap for the developers responsible for executing the design, and can speed up code preparation for subsequent software. This is why successful SaaS applications are often projects that are completed on time and within budget.
The fact that SaaS applications are out of time and over budget is often due to the lack of communication in project architecture design principles. The key to maintaining code consistency throughout a large SaaS application is to build a complete application design pattern and transformation set and to communicate effectively across the development team. An effective means of communicating these principles is the use of the visual cortex.
Use of the visual cortex
After more than more than 100 years of research on human thinking and learning, it shows that one of the five senses in the learning process can learn faster. The input of vision and hearing will make the learner nearly 6 times times more efficient in remembering a problem. Therefore, visual signals such as charts and flowcharts are very effective in technical software documentation.
As shown in Figure 5, software architectures and microarchitecture diagrams are useful for building and exchanging the basics of RIA clients, providing a framework for the development team to follow when organizing code writing. From a structural perspective, the diagrams also set up a set of guidelines and expectations.
Figure 5. Loosely advanced view of program structure design patterns
Flowcharts are useful for passing event flows and sequences. In most cases, the more creative you are, the more effective your flowchart will be. Figure 6 illustrates a creative flowchart that describes how the open source SWiZ Framework for Flex implements reverse control (IoC), object introspection, and dependency injection.
Figure 6. Open source SWiZ Framework for Flex flowchart
If you have ever assisted or participated in the archiving or creation of method patterns, you should be familiar with the diagrams shown in Figure 7. It is useful for demonstrating a variety of possible processes or methods. For example, a process that involves multiple functions, some of which contain multiple conditions, such as if-else and switch statements. A functional description diagram is an overview of technical business processes and software. For example, you can select this diagram by describing the process of submitting code to the company's central source control repository.
Figure 7. A functional description diagram that outlines the entire process or method of a condition
6. Generate a complete design document before you start writing code
Software and the company's operating principle is the same, successful SaaS company's main characteristic is the development process planning stage is very perfect. A high-quality design document will serve as a roadmap for the developers responsible for executing the design, and can speed up code preparation for subsequent software. This is why successful SaaS applications are often projects that are completed on time and within budget.
The fact that SaaS applications are out of time and over budget is often due to the lack of communication in project architecture design principles. The key to maintaining code consistency throughout a large SaaS application is to build a complete application design pattern and transformation set and to communicate effectively across the development team. An effective means of communicating these principles is the use of the visual cortex.
Use of the visual cortex
After more than more than 100 years of research on human thinking and learning, it shows that one of the five senses in the learning process can learn faster. The input of vision and hearing will make the learner nearly 6 times times more efficient in remembering a problem. Therefore, visual signals such as charts and flowcharts are very effective in technical software documentation.
As shown in Figure 5, software architectures and microarchitecture diagrams are useful for building and exchanging the basics of RIA clients, providing a framework for the development team to follow when organizing code writing. From a structural perspective, the diagrams also set up a set of guidelines and expectations.
Figure 5. Loosely advanced view of program structure design patterns
Flowcharts are useful for passing event flows and sequences. In most cases, the more creative you are, the more effective your flowchart will be. Figure 6 illustrates a creative flowchart that describes how the open source SWiZ Framework for Flex implements reverse control (IoC), object introspection, and dependency injection.
Figure 6. Open source SWiZ Framework for Flex flowchart
If you have ever assisted or participated in the archiving or creation of method patterns, you should be familiar with the diagrams shown in Figure 7. It is useful for demonstrating a variety of possible processes or methods. For example, a process that involves multiple functions, some of which contain multiple conditions, such as if-else and switch statements. A functional description diagram is an overview of technical business processes and software. For example, you can select this diagram by describing the process of submitting code to the company's central source control repository.
Figure 7. A functional description diagram that outlines the entire process or method of a condition
6. Generate a complete design document before you start writing code
Software and the company's operating principle is the same, successful SaaS company's main characteristic is the development process planning stage is very perfect. A high-quality design document will serve as a roadmap for the developers responsible for executing the design, and can speed up code preparation for subsequent software. This is why successful SaaS applications are often projects that are completed on time and within budget.
The fact that SaaS applications are out of time and over budget is often due to the lack of communication in project architecture design principles. The key to maintaining code consistency throughout a large SaaS application is to build a complete application design pattern and transformation set and to communicate effectively across the development team. An effective means of communicating these principles is the use of the visual cortex.
Use of the visual cortex
After more than more than 100 years of research on human thinking and learning, it shows that one of the five senses in the learning process can learn faster. The input of vision and hearing will make the learner nearly 6 times times more efficient in remembering a problem. Therefore, visual signals such as charts and flowcharts are very effective in technical software documentation.
As shown in Figure 5, software architectures and microarchitecture diagrams are useful for building and exchanging the basics of RIA clients, providing a framework for the development team to follow when organizing code writing. From a structural perspective, the diagrams also set up a set of guidelines and expectations.
Figure 5. Loosely advanced view of program structure design patterns
Flowcharts are useful for passing event flows and sequences. In most cases, the more creative you are, the more effective your flowchart will be. Figure 6 illustrates a creative flowchart that describes how the open source SWiZ Framework for Flex implements reverse control (IoC), object introspection, and dependency injection.
Figure 6. Open source SWiZ Framework for Flex flowchart
If you have ever assisted or participated in the archiving or creation of method patterns, you should be familiar with the diagrams shown in Figure 7. It is useful for demonstrating a variety of possible processes or methods. For example, a process that involves multiple functions, some of which contain multiple conditions, such as if-else and switch statements. A functional description diagram is an overview of technical business processes and software. For example, you can select this diagram by describing the process of submitting code to the company's central source control repository.
Figure 7. A functional description diagram that outlines the entire process or method of a condition
7. Hold Unit Test
Mystery Data Converter case
My colleague wrote a test case before writing code to perform some data calculation and conversion functions (displaying "Last week" and "Yesterday"). After completing the test case, he writes and tests the code that performs the function. Strangely enough, the method was passed between the morning 12:01 a.m and 11:59 p.m, but mysteriously failed between 11:59 and noon.
There's a big problem here, if you're not doing a continuous, repetitive, hourly test, can you find this bug? Can a periodic manual test find it? Can the QA team find it? The real problem is that the application is likely to be delivered directly to the customer without dealing with the bug, and if the application is put into production, it is likely to ruin 15 years of business relations.
In general, SaaS leaders tend to be large applications built by many people. In unit tests for large applications, the data is always consistent: a project that performs unit tests at a later time is always miserably defeated. In contrast, successful SaaS developers run unit tests before they write code. For example, if I were to write a class called ServiceController, I would not start writing the class directly. Instead, I write a class that runs all the unit test cases based on the methods in the class. Next I will even run the test cases further, even though I know they will fail because I did not write the task code for the class.
The purpose of this is to exclude the possibility of bugs in unit tests and to ensure that unit tests are always passed. In general, it is easy to inadvertently make this mistake. If all unit tests fail, I can start writing the actual code. When I finish writing the new class, I run the unit test again. As long as all the test cases are passed, I will add a new unit test class to the unit Test Automation library to run at each build. In other words, the entire unit test library that I created for the application is part of the build process. In fact, every time I start building a project, I run all the unit tests to make sure that the integrity of the application code is not accidentally compromised.
In the world of programming, I find that only a few developers adhere to the process. But they are the most respected, prestigious and most expensive developers in the industry. If you want to know how to improve your price, stick to the unit test.
8. Don't trees trees
SaaS applications can have a much larger performance bottleneck than "fat" client applications that are running on the desktop. Even sophisticated programmers admit that in SaaS applications, performance bottlenecks are sometimes difficult to predict because there are too many variables involved. The difference between a successful SaaS application and a failed application is the way the development team responds to harmful performance during load testing and analysis.
In general, there are only two types of performance optimizations: Optimizations that have a significant impact on performance, and optimizations that have little impact. It is difficult to meet the optimization between the two. A common metaphor here is trees and forests. In most cases, developers spend a lot of time improving performance, but they're just standing still, but they're not solving the big problem of a computer processor or memory that is completely occupied when the application is running. As a programmer, if you are too concerned with trees, you will not see the forest.
The easiest way to prevent a tree from attracting eyeballs is to analyze your application. Analysis is an important part of a successful SaaS project because it optimizes how your application uses system resources, as shown in Figure 8. When you analyze an application, you can see which part of the application is taking up most of the resources and implementing design patterns to improve performance. For example, you may find that many object instantiations do not have to be garbage collected, which causes the application to continue to occupy memory after it has stopped, and it is necessary to implement an object pool with agents.
Figure 8. Profiling Applications in Eclipse
9. Learn about other successful SaaS projects
The easiest way to learn from other successful SaaS projects is to first pick a SaaS program that you're willing to use. Then, find a competitor for two or three selected software, and then try to write down the specific content that attracts your attention, and why you like or dislike an application.
Few apps can get my attention on usability and performance, so if this happens, I'll take the time to understand why, because I can often learn something from it. A task management application recently attracted my attention, often because it was too boring. However, the level of availability of this particular SaaS application is compelling.
I spent nearly two hours browsing the application, testing its limitations and assessing the accessibility of its large number of features. I like apps with a lot of built-in energy, but I want them to be lightweight. For this reason, I am very harsh on UI design. If the interface is not well organized, a feature-wide application is just a nightmare because half the time is looking for the features you need. The assessment of the SaaS application has made me conclude that it has a unique and unconventional UI organization compared to the other task management applications I have installed, and I like it.
10. Build Available Prototypes
If the code used to build the prototype is also used to create the final product, is it still a prototype?
The answer is yes. In software development, customers often want to see the concept validated before investing in actual development. Prototypes are just a proof-of-concept. Smart SaaS developers take advantage of the time to create prototypes. Think about how much work you can do during this time:
designs and lays out the architectural basics. Create a SaaS database schema by building a custom XML DTD and use XML as the data source for the prototype. (the schema can later be imported into the database engine and converted to actual content after a few minutes). Create an organization package, interface, and class structure for a full size application, even if the file is simply declaring the class name and interface that were originally implemented.
There are many advantages to this approach, but there are two points that are critical to the success of SaaS: You have a lot of lead in building the actual product, and you can often see the conflict of design patterns and the lack of architecture design when building prototypes. You can make the necessary modifications before you actually develop the product.
Conclusion
must be aware that changes in the software development world are changing so that the key elements of successful SaaS development will eventually change-and may soon change. The secret to keeping up with change is to update your knowledge at all times.