Everyday new online services are launched and must of us don’t even notice but a few of them. I’ve found that the majority of these few start with a freemium model or a beta test mode to attract users and subscribers. I don’t find anything wrong with this, but personally, the first thing I do when exploring a new service is to find the pricing page to check if I can afford it.
For me, there’s no personal benefit to subscribe and start using an application day on and day off, configuring the service, entering my data, so when the owners think they have a large customer base, publish the pricing information and I end up without being able to use the application. It has happened to me before. Now, when I can’t find the pricing information, I just don’t sign up and let it pass it by.
Why everyone should you have a pricing model:
Credibility
Even if you need a year for beta testing your product, at least publish how you think the business will make money. It shows potential customers that the company has a plan and also, when the time comes, you’ll know how much you’ll need to pay. Also the company has (or at least has think of) a business model. Most start ups just die because they can’t find the right model to generate cash flow. This gives some kind of assurance to customers.
The right customers
Every potential prospect subscribed has even more probability of becoming a customer when the application exits the beta testing phase. You can increase conversion even more by giving a discount to beta tester for their efforts.
One of the first thing we did with LicenseSpot, our license and software protection service, was to define a pricing and a business model and then built the website and all collateral information. Even though we’re live, any new prospect can check how much the service is worth and if it fits they’re pocket.
Do you provide pricing information on you web applications?
A lot has been written about how the top three mobile companies should configure themselves. I’m talking about Apple, Google and RIM. Which one is better and which one is worse, who should die first and who’s second.
I think all those views (although have some degree of veracity in them) are too absolutist in the sense that things are not black and white. But also, it depends on the point of view of each person and their own experience.
All platforms have their own strengths, if they didn’t, neither of them would reach to the place they’re right now. Some value is the end user getting from them.
Here’s what I think in short words:
Blackberry OS
Is the oldest of the big three (even though Windows Mobile has a long history) but that doesn’t make it a looser. Been the oldest brings a lot of experience to the table. One of the biggest and strongest fields of Blackberry is their enterprise market capabilities. It has lots of good features built in that satisfy big companies like the White House. Lots of features has been incorporated into Apple’s iOS trying to get into this market, but adoption has been slow. As I said in the beginning, Blackberry has lots of experience in this field.
Besides been a leader in the enterprise market, Blackberry has fair good market share of the consumer market. This comes by a good reason: there are features that millions of people feel attracted to when buying Blackberry, one of them being the BB Chat. See as this simple and common capability, available on the Internet since its own birth, is one of the top features. Again, experience. I still don’t know why Apple didn’t launch the first day with a feature like this.
Apple iOS
It has a domination of the consumer market. The ease of use makes it a winner between people that have never had a smartphone.
Also, one of the biggest advantages is their App Store that has thousands of good applications. And more coming in with innovative features. This makes it a winner for usability and in the area of solving daily issues.
Adoption in the enterprise market has been slow, advancing a in small steps, but it’s coming.
Android
Also the usability here is a big winner. A fast growing market of applications makes it look interesting against Apple and Blackberry.
The biggest advantage of Android might be their price. As it’s an open source platform, carriers and phone makers don’t have to include royalties in prices bringing the phone’s total cost of ownership down.
Conclusion
I think all three has their own pros and cons. Neither of them should abandon their technologies for adopting the other. They have their own bright spots.
Even more, there could be some partnership between them if they want to consolidate and reduce costs. For example, a partnership between Android and Blackberry could integrate Blackberry enterprise features into Android giving it the experience and technology know how to become a unique platform that combines consumer and business capabilities.
Who you think should partner with who?
A few weeks back I needed a control that allowed me to upload multiple files to a SQL database going through an ASP.NET ashx handler. Also, the whole control needed to be implemented client side and the best option if using jQuery.
I spent lots of time trying to find some good control that didn’t used Flash. Most of the controls available out there were pure based Flash applications or a combination of jQuery + Flash. None were pure jQuery and supported the option of multiple files. Then I found Andrew Valums jQuery upload control. It was pretty easy to install and configured. The only drawback is that uses iframe for uploading the file, but this is transparent to the end user, so I decided to give it a try.
Here’s how it works:
Go the website and download the control. Keep in mind there are two versions: one GPL and another one with the MIT license. I went with the one with the MIT license. You can download it here.
Use the following HTML code to place it:
<div id="uploadRegion">
<div>
<input id="button3" type="file" />
</div>
<p>Uploaded files:</p>
<ol id="infoUploadedFiles" class="files"></ol>
</div>
new AjaxUpload('#button3', { action: 'filehandler.ashx',
name: 'myfile',
data: { '' },
onComplete : function(file, response){
var fileResponse = $.parseJSON(response);
$('<li></li>').appendTo($j('#infoUploadedFiles')).text(file);
}
});
HttpPostedFile file = context.Request.Files[0];
string name = Path.GetFileName(file.FileName);
string ext = Path.GetExtension(file.FileName);
byte[] fileContent = new byte[file.ContentLength];
file.InputStream.Read(fileContent, 0, file.ContentLength);
After receiving the file in a byte array proceed to save it to the hard disk or a database, as needed.
As part of the development process of RequestSpot, our help desk software for multiple departments, we’ve created a tool that lets users capture a region, a window or the full screen of their computers and edit the image as needed. With the edit options, you can:

After editing you can save the image in JPEG format or copy it to the clipboard for further processing, send it to an email or paste it on a document.
The best part is that we’ve made the tool, the screen capture software, available for free so the community can take advantage of it. If you want any more features, just contact me and I’ll try to include it in the development schedule.
Why is it that sites that provide localization always try to assume that the best content for you is the one based on your location?
Most people sometimes aren’t in their hometown. They could be on a trip to Asia or the middle east, but this doesn’t mean that when researching for a site or information, they want to see these sites in mandarin or in Arabian.
I may say that the majority of users try to look information first in English because the majority on sites are already in this language. You have more probabilities in finding what you need when querying in English.
What I’m saying is, don’t try to provide information on your site with automatic translation based on the visiting’s user IP address. Give the information in your primary language, be it English, Spanish, French or Portuguese and then give the user the option to select the language in which they would like to see the website and save that on cookie or the user profile for when they comeback. If the user queries google in English and when it enters your site it is then automatically translated to Spanish because the user happened to be in Cabo for vacations, he might leave, inferring the original language of the site is Spanish.
With the hacked of Gawker Media sites and the release of a list of users and passwords stored on the sites, people all over the Internet started reacting to the news and offering techniques on how this can be resolved.
Some of the proposed techniques include getting rid of the user database implemented on many websites and let an external application handle the customer login using credentials from others sites like Twitter, Facebook and OpenID. In my personal opinion, I really don’t like any of these mechanism because I really don’t trust these companies. Your could argue that they might have better protection than some guy’s new web service that just launched in 30 days to test an idea. Maybe it’s true, but also this guy might have a better mechanism to prevent this kind of leaks than the big companies.
Also, I think it’s not true that having a single point for user authentication is going to resolve the whole issue. Compare it with credit card fraud. Do you think you can solve the credit card theft problem by just having ONE card with a $300,000 limit than having multiple cards with, say $5,000 limits? If someone steals one of the cards, you only loose the 5,000. If you someone steals your ONLY card, you might loose $300,000 and you’re left with NO card. This is call spreading the risk.
A different approach that we use on our sites is to generate a random and strong password automatically for the user and send it to their email. We give them access to what they’re requesting on the site with just entering the email (and other information if necessary) and then email them the password generated. When they decide to come back to the site, they used the autogenerated password. They can change it if they want, but we took that step out of the funnel (guessing and thinking what password to put on) and just let them proceed to perform the requesting transaction and letting them now in an email how to continue using our sites in the future with their new strong password.
When I start developing and throwing out code, I can tell you I’m too concentrated in the features and how I want things to work out. Always testing and debugging and running around different possibilities in my head on how that piece of code could go wrong.
When writing elements on the interface, I just tend to place the needed controls or the html tags on web pages and add the labels to the respective controls. The labels just pop out of my head without even noticing what I’m writing. Most of the time I’m just thinking how the feature is going to work with the control.
So, when your application is finished, features are implemented, and then we begin with the cosmetic work. This is when the problem arises. If you intent is to offer your application in multiple languages, then localizing the controls and html pages is not part of the cosmetic work. The only way to localize your app when all the labels are hard coded is to make a copy of the web page or control, with the same code, and start changing the labels manually.
That’s why I always have a localization strategy before beginning throwing out the code. Even if you decide how the language engine is going to work after you’ve hardcoded the labels, the simple task of changing them to the variables is exhausting. After months of going through this process with some applications that didn’t have a localization strategy, I’m stilling finding hard coded labels.
Here are some simple strategies I’ve used:
Any of these techniques should be enough for localizing an application. The most important issue here is to plan for language support before coding starts. Doing it afterward is a never ending work. Hidden hard coded labels appear every day.
If you want more information about the code we use or you have any other technique for localization, let me know in the comments.
I’ve been trying in last few months to reduce the level of interruption I get while working. When I really get focused on doing things, I can achieve level a of productivity that sometimes is difficult to get.
Somethings I’ve done include turning off Outlook email notifications, not entering twitter and avoiding as much as possible using Instant Messaging while totally focused. The findings have been great. It turns out not all email needs to be answered immediately (it’s even better if you wait as you can think of a better response). Also twitter can wait, I can answer messages using the same system as with email.
Although I’ve diminish to the most these kind of interruptions, there are some that have been impossible for me to achieve, or even block, and those are software updates.
It’s unbelievable the amount of popups I get asking to install updates for this and updates for that. For example:
In conclusion, keep in mind when developing software to:
PS. Windows updates have asked me thee times to restart the thing while writing this post. So long, I have to restart.
What software update annoys you the most?
What ever happen to getting to know each other? Those early conversations about what you do, what are your plans and helping me out with one thing or another?
It seems all that is gone by now. Yesterday I received an email from a vendor which we bought a software product about two years ago. The subject said something about their social media sites. When I read the email, they were simply sending a link of their twitter and Facebook site asking me to click on the link and follow them or to just like them. I just though, what? Just like that? I though about running into a high school friend that I haven’t seen for a few years and all of the sudden telling me: hi Jose, how are you? hey there’s something I wanted to tell you…do you like me? eehhh, mmmm, what was your name again?
So, this is email isn’t far from that story. I sometimes complain about some vendors, specially in the tech sector, that once you buy their product, you don’t hear about them never again. This was one of those cases. I haven’t heard from them since two years and now I receive this email asking me to like them.
Sincerely. Not cool software company, not cool.
Try always to have some kind of conversation. These are somethings you could do:
The point is to establish some kind of conversation, but don’t start sending me emails asking me to like you. It’s just too soon for me.
What are you doing to get your customers to like you?
Today there are several mechanism available on the Internet to reach your clients and everyday seems to be more. But I still consider business blogs to be one of the best ways to really communicate the audience what your business is about.
Other venues get you to interact with clients, get to know them and they get to know us (sometimes maybe too much) but you can’t get an idea out there in 140 characters. That’s why your blog should be your command center for transmitting and developing your thoughts. Consider this:
What are you using to express your ideas?
As you’ve already know from my last post, we’ve launched a new site that gives an overview of the Santo Domingo public transportation system. It’s the first time we launch a service like this and we’re excited on watching the results. We’re aiming at least in covering the hosting costs.
The site basically shows a Google Map with the principal Santo Domingo buses routes in the city in combination of the Santo Domingo metro (subway). For now, the subway only has one line (the red line in the map). This forms the official Santo Domingo Transportation system of the city and is a great resource for tourist but also to local users.
For the moment, the only income we can get from the site is the AdSense ads from Google, although we are brainstorming some other ideas.
For marketing, we are using SEO techniques and placing some special keywords that get us in front of search engines. We’ve create a Facebook fan page where users can joined if they liked the service.
It’s really a different service, but we’re excited in trying these new things and we’ll be updating ahead how everything evolves.
I really like experimenting with maps and playing with streets and avenues and trains. So, if you are planning to visit Santo Domingo when you get your latest vacation in Punta Cana, Bavaro or Samana, then take a visit to Santo Domingo Transit Map. You will find all the official bus routes in the city and also incorporated the recently created first subway line.
Leave any comments on the same site’s contact section.
Since the beginning of computing someone had the brilliant idea that for storing files and documents the best way to classify them would be to create a hierarchy and structure of folders or directories and begin dumping them in there.
Today we have end up with hundreds and hundreds of folders in our hard disks with lots and lots of files. Sometimes I don’t even remember where I created a folder and even further what the files inside there represent.
And a simple explanation for this is that we as human beings don’t think like a hierarchy. Our memories are not stored in a hierarchical path that we follow to remember where we left the keys of our car yesterday. We just kind of make a full search on the brain for keys and the place just comes up. Now, that’s a way to store and look for things.
My suggestion here is that we try to stop using folders in general applications and in document management systems like SharePoint. Try to classify files in document libraries using meta data fields in SharePoint which get indexed by the search engine and also lets create filtered views about information. Folders will just complicate things creating a hierarchy of files. Investigate a little and you will notice that almost any folder can be replaced for a meta data property. And also you will get sharepoint workflow like an added bonus.
Some months ago Microsoft had a program called
SQL Server Front
Runner in which different companies submitted their product to be tested
against SQL Server. It was a very good program because the tests were conducted
by VeriTest, a famous third
party company dedicated to testing software.
We submitted SkyXoft Procx and got our
certification of good to go!
Yes, you have to do it. No, don’t ask more questions about it. Yes, you will
need to learn a couple of things, and some of your colleagues are going to
refuse using it, but you have to. In the long run, you will increase your
organization productivity and you won’t be able to live without it.
Some of the things you’ll get:
Of course, this are just some of the things you will get when deploying
SharePoint. There are a lot of other things you can do with it and customize it
to your needs.
After your implementation don’t forget to go a step further with workflow.
Add document approval and routing to those documents and forms in SharePoint
using our product, Procx. With it, you can really streamline processes and
really do more with less. Go, give it a look at our
SharePoint Workflow
site and our InfoPath
Workflow site.
Productivity has been key factor of growth of companies now days. When
organizations can’t reduce more costs and you have others rising, in which you
cannot have a direct influence, the only way to increase profits is getting into
productivity.
When people ask me to define productivity, I respond a four word sentence: do
more with less. That’s it. Process more insurance claims without increasing
personnel, find company documents and information more easily without wasting
time, automate processes and relocate employees to perform value added
activities in the business, handle more loans without increasing officials, find
new channels of delivering your product without investing lots of money.
Technology has been playing a huge role in productivity, especially
information technology. Today organizations have a portfolio of software
products available online that can automate almost any part of your company.
Identify your needs, look for manual routines that employees do and think how
you can improve that part of the business and which software can help you
achieve your objectives. A small increase in productivity can yield into high
profit values.
How can you really know how your company is doing if are not measuring
processes? Do you know how many support requests are you getting from users per
month? From what area are they coming?
If you go to the customer service representative, do you know how much time
is lasting for giving the customer a definitive answer on their problem? There
is no way we can improve these type of services if you are not taking measures
of the process. By doing so, then we can think about augmenting our customer
satisfaction index or reducing the amount of errors that a product has when
going out to the streets.
In this
article by Seth Godin, he makes a call to people to stop being afraid of
taking care of processes. Yes, we know this is a routinary thing, but it is a
strategic value to our business against competitors. If I’m more efficient
internally, I can handle more jobs and customers with less the cost of similar
organizations in the industry.
So, stop for while envisioning what your company will be in the next three
years and take care of those processes that customers and employees are
complaining right now.
We’ve been working hard in these previous weeks getting version 2.5 of Procx out on the streets. Most of the new features comes as part of the feedback we’ve been getting from our customers. The winner feature of all was a better web client interface. So, we dedicated the majority of the time in developing a new client with all the features requested. Here’s a preview of what’s coming:
1. The home page: The initial page welcomes every user with a summary of tasks pending and overdue for him. Also, a small calendar shows the tasks a person has for today by default.
(click for larger version)
2. The WorkList: this is the main part of the web client. Here you can see all the tasks assigned to you. You can now customize views so you can add or remove fields depending on the process and requests that you manage. For example, if you work for the IT department and handle help desk or maintenance requests, you may have a view that displays the tasks with fields associated to these request. If you work for the human resources department and handle training requests, you may want a view that shows fields from those requests.
(click for larger version)
3. RSS Feeds: now you can see tasks in your favorite RSS reader.
4. Tasks detail: You can complete tasks directly from the web, enter and view comments history.
(click for larger version)
5. Flow: You can now have a visual representation of the process actually running letting you know in what stage it is right now.
(click for larger version)
6. Search: Advance search capabilities and a detail of where is any request.
(click for larger version)
7. Reports: Reports can be seen now from the web, including any custom report made using the Procx Studio.
(click for larger version)
In conclusion, great features are coming in the next release of our new web client making it very easy for anybody in the organization to receive and complete tasks assigned to them during any process.
When creating a workflow, one of most common activities in them are tasks.
These tasks must be approved or completed during the execution of the process.
Someone in the organization is in charge of completing the task.
For this to happen, tasks must be assign to users or employees inside the
organization. They must then complete it according to their criteria. For
example, in a bank application for creating a new account, the officer will
generally have a task for checking if the person opening the account is already
a customer of the bank, maybe using their social security number (going one step
further this can be automated using a web service that makes a query to the
backend system and returning true if the person is a customer). After the
officer has completed the check, then he can complete the task.
Assigning a task to a person can be made directly or indirectly. In
Procx, you can do it
any way you want. Directly means assigning a task to an employee, a user. For
example, the task described in the previous example can be assign to Jack, an
officer in our Timbuktu branch. You can even get the user from a variable (for
example a user selected in a list on a form). The disadvantage of using this way
is that if Jack is transferred to the Honolulu branch, then you must edit the
process and change the assignment to the new user.
Assigning a task indirectly means not attaching a task to a user, but instead
to a role. A role belongs to an organizational chart and is occupied by a user.
In the previous example, instead of assigning the task to Jack, you can assign
it to the loan officer located in the organizational chart of the Timbuktu
branch. When Jack gets the sad notice that he’s been transferred to Honolulu,
then the only thing to be done is change the user assigned to the loan officer
role in the organizational chart. No other changes are needed in the process and
everything continues to run smoothly.
This is why assigning tasks to roles is the preferred practice when building
workflows generally and one that is totally supported in Procx.
When manual tasks and processes are automated, most of the time something is
lost in the middle. The most simple thing that is lost is flexibility. When
humans interact with a process, they can always adjusts things to their own way.
When handling an expense request, the account payables department may want to
approve it faster if the request is coming from that project in China that is
behind schedule, so the priorities in the process change. When we automate the
expense reimbursement request with software, these flexibilities are gone making
the software not likable for users.
That is how Alan Cooper describes fudgable software in his extraordinary book
The Inmates Are Running the Asylum : Why High Tech Products Drive Us Crazy and How to Restore the Sanity (2nd Edition): “I call this ability to take actions
out of sequence or before prerequisites are satisfied fudgability“.
For solving the problem, Alan describes in his book that software should be
flexible enough to handle this out of sequence tasks in the process allowing
persons to interact with it in a more human way. It’s like letting the users
decide which is the best way to handle a request.
This flexibility in software maybe one of the most complicated task to
accomplish during construction. Generally products are locked in the way a
workflow should execute, closing any other variables and exceptions that the
final user may want to use, as Alan explains in his book. But, if we achieved
this kind of malleability in software, we are making software that acts more
like a human allowing interaction to be kindly.
This kind of flexibility in software can be achieved using
business process
management software like Procx. The process per se can be changed and
configured according to organizational needs. Exceptions can be taken in and out
of the process as management wants. A request for a purchase order can no longer
be locked in an specific workflow forever. Process analysts can draw their
processes in the workflow
product and decide under which rules it will execute.
So, the interaction of the user with the process is not embedded in the
software, it would be built in Procx allowing the process to be as flexible as
the organization and management wants. It’s a new way of automating processes.
What do you think?