Over the past 9 plus years, our team has developed many solutions for our clients, included matured business, and start-up teams. We see success stories. Companies with our solutions, grow their business into next level. And we see failed ventures. Some stopped using the solutions we built and turn to something else. We see young teams, put too much efforts into what they want, instead of what the customers wants, and ended up missing business opportunies. And we also see solutions, architected with limited view into future, and waste resources to build for new devices. We can offer our experiences to assist your team, to have a better technical overview of whatever things you try to build, and avoid technical mistakes others have made. Your team do what you are expert with. Let us see what we can help from the technical side.
Have a deep understanding on the idea you are have, know the problems it can resolve.
Know the market and solution which exists, and why customers/users are using them.
With our experiences, judge on what can be improved, or avoided. And know those area you can do better.
Get professional advise on technical design and frameworks. To target on what devices (Web, Android, iOS, etc).
In today's technical world, all customers, all users, have multiple devices. In past, we normally assume Computer is only the channel for users to access the system. Now, they have mobiles (iOS, Android, Windows Phone), and PC, tablet, and with all kind of browsers.Generally, give this situation, all projects must start with a good architecture design, and the most important step is Database layer communications.There could be different ways, but the most common way, is to build centralized web service to handle all database communications (CRUD process). And plan for devices types. For example, for the same function, judge the device values, and return proper values.Even for web interfaces, now we normally code with Javascripts (jQuery, Node.js, etc), and all these have build-in support for JSON web services. While mobile OS, also work with JSON web services. Thus, designing a single set of Web Service functions, will save much of the efforts in future development and multiple devices supports. That will also make changes & updates much easier: changing in a single place, all related callers get updated.
We worked with customers who spent costings and efforts, into building perfect project, trying to cover all possible angles, all possible devices. That is normally the correct approach.Any project is fixed budget, fixed scope, fixed schedule project.Determine a target (scope, features, devices), reach the target, and release.For example, building an App. Usually, target iOS first, and among iOS devices, target last 3 generations first, and target the main stream devices first.It is unlikely to have a full scale release, not all Apps are Facebook level. Maybe the last 1% of the users with some outdated devices, will cost a bomb to your project budget. And features. Features can always be added into the project as the project being maintained and supported. Two weeks later you look at the same project, you may have new ideas to add in. So, do not have to wait until all features are implemented. Push something out, have the actions, keep the ball rolling. Execute the project.
While planning for the features, and functions, talk the actual customers and users with some scenarios described to them.Any feedback is good feedback. Do judgement on the feedback and decide whether these will affect the project idea or not.If possible, it is better to build some simple prototype level screen and workflow, with Axure, any wire-frame tools, even Excel/PPT. That is to avoid the situation users may not understand based on words descriptions.In certain situation, project idea may even need to build as Interactive Prototypes. More challenging but these testings certainly worth the efforts, in many situations.Changing, or updating a project after coding done, will cost much more. If the change affects architecture level design, it may even trigger some core modules to be re-write.So, do a better communication with all level of customers and users. It helps a lot in project ideas.
We worked with quite a few companies, which spent money and efforts to build some very good websites, and they started to expect customer to come.Well, a good project won't success without the follow up actions: marketing, promotion, sales, support, and improvements.Marketing could cost a bomb, much more than developments. Plan for a good online marketing, Search Engine, or Social Network, or even plan for offline marketing, depends on the trade you are in.And, hear from what customer feedback. Plan for a limited release to some selected customers, gather their comments and feedback. Work with developers, get the system improved.And plan for good hosting servers. Prototype, beta release, they can run on shared servers, or low spec servers.When release into production, a high end server, with enough RAM and CPU Power, will become necessary to meet the traffic requests. Customers, users, will not return back to a slow system.