Do you need luck to be successful?

Constantly I hear people talking about being successful or not. I get the impression they think success is the result of luck or being a lucky person. Maybe it is true but most people believe that luck is something magical, something in the air that if you catch some of it you will achieve something or be a successful person.

A couple of years ago when I was in college I read a quote that changed my perspective about luck. I know very little about Seneca but the quote is from him and it says:

“Luck is what happens when preparation meets opportunity”

I don’t remember if I read it from a book, an article or most probably browsing on the web, but what I do remember is that it redefined my academic and professional expectations. From that point on I just decided to do my best in order to be prepared for every opportunity that may arise. I was not daydreaming anymore or expected to be hired by a big software development company and to have a big salary. I knew opportunities will come at some point and I just needed to be prepared to get the most out of them.

In today’s entrepreneurial world we are not only responsible for being prepared and up to date with the latest technologies and trends. Now we are the ones responsible for creating the opportunities for us and for others. It’s time to review what we have learned and experienced so far, and bring our ideas to the table. Let’s get creative!!! Let’s innovate!!! Let’s be crazy enough to change the world!!! I hope I can keep learning forever and do something amazing along the way… What about you?

Open Letter to Puerto Rico’s Information Technology Sector

Image Credit: Carlo Giovannetti

Note: This letter was originally posted on the News Is My Business website in the context of the CIO & IT Leadership Conference celebrated February 7, 2014 in San Juan, Puerto Rico.

I was recently reading the January 2014 publication “Perspectivas“ from Estudios Técnicos and came across a quote that inspired me to write this letter.

“All nations have opportunities which they may grasp if only they can summon up the courage and the will … it is possible for a nation to take a new turn if it is fortunate to have the right leadership at the right time.“ – W. Arthur Lewis

 

I don’t have to tell you that Puerto Rico is going through the worst economic downturn in its modern history. Underfunded pension plans, overestimated government budgets, increased taxes, higher utility costs, and higher unemployment. Economic indicators like employment, cement sales and gasoline consumption show a constant downward trend. Bankruptcy filings are up from 2012 and the government’s credit rating is junk. Young professionals and retirees are leaving the island for one of the 50 states at an alarming rate.

As all of this happens, companies tend to be more cautious and more timid in terms of expansion and investments opportunities. It’s a normal and typical response.  Once you identify the possibility of a risky future, you tend to preserve cash to maintain operations in rough times. Creativity becomes worry and strategic plans become no more than a cash flow strategy plan.

But as it becomes more evident day after day, the recovery from this depression won’t be easy. We have been trying to jumpstart our economy since 2008. Since then we have had government incentives, economic forums, multi sector summits, seminars from experts, and roadmaps. It is time that we stop thinking that things will be solved magically or that some federal agency will save us. If we don’t do it ourselves, nobody will.

There is no other way. We have to do it ourselves.

Puerto Rico’s Information Technology sector represents all that is great about our biggest asset, our people. Our people have the talent and the skills to excel in the global marketplace. Something envied by other cities and countries. Highly educated, bilingual, professional, quality oriented, multicultural.

We have to harness the power of our biggest asset and create our future. Not by exporting our people but by exporting our knowledge and creativity through exciting products and services.

So, this is my challenge to all of you.

  1. Ask yourself, what is your biggest competitive advantage?
  2. Use a lean methodology and create a product or service around it.
  3. Target customers and clients in the states and especially in Latin America.
  4. Hear your customers and ask for help.
  5. Be relentless.

Let’s focus on building intellectual property and products and services that people want.  If we do that, the jobs will follow. The time to talk about plans is over. It is time to do and execute.

Focus on exporting. This is our platform. This is what’s needed from you.

Puerto Rico depends on it.

Electronic Transaction Governance: Implementing Standard Compliance

This is the first of a series of five blog posts detailing how to implement Electronic Transaction Governance in your software interfaces.  We will also discuss how Wovenware implements Electronic Transaction Governance in the Wovenware Integrator. The Wovenware Integrator is an adaptable software platform that provides visibility and accountability to all electronic transaction processes. Please refer to the What is Electronic Transaction Governance blog post for a detailed explanation of the term.

Electronic Transaction Governance: Standard Compliance

In this first blog post we will discuss the area Standard Compliance. Standard Compliance is the area of Electronic Transaction Governance that mitigates processing risks and assures proper handling of the electronic interaction through the initial verification of the electronic message. Standard Compliance limits its process to the verification of the electronic contract between the partners. That is, Standard Compliance will only verify the message format and not the data that is embedded in the message.

The message format can be a standard based format (e.g. ASC X12 EDI, NIEM, HL7, etc.) or a custom defined message format agreed to by the communicating parties.

For example, Partner A and Partner B decide to exchange new purchase orders through electronic messaging and they agree to exchange the messages using the following xml files:

Partner A Sends New Order Request:

<order>
  <item>
    <sku></sku>
    <quantity></quantity>
  </item>
</order>

Partner B Responds with New Order Request Acknowledgment:

<order>
  <acknowledgment></acknowledgment>
  <item>
    <sku></sku>
    <quantity></quantity>
    <price_per_item></<price_per_item>
  </item>
  <total_order_price></<total_order_price>
</order>

Standard Compliance dictates that when Partner B receives a New Order Request the first step in the electronic message handling process is the verification of the message. That is, the certification that the received message conforms to the agreed communication standard. The same would apply to Partner A when a New Order Acknowledgment is received.

To implement Standard Compliance an initial software process must exist to verify all incoming messages. The process will validate that the received message follows the established messaging format. If the tested message does not adhere to the established messaging format then the Standard Compliance software process must notify or return the message to the sender and not allow the message to continue processing.

The Wovenware Integrator handles this verification through the configuration of its Application Services implementations. Application Services are customizable software processes, based on a Software Pattern developed by Wovenware Engineers, which can execute following a custom defined business workflow. The first defined task of the business workflow is an Application Service that is configured to validate the format of all incoming messages. If a message does not conform to the expected format, the message is not allowed to continue through the business workflow and a notification message is sent to the sender.

In our next post we will discuss how to implement the Data Quality area of Electronic Transaction Governance.

Social Media: What’s the point of blogging if there’s no content?

We are living in a time where posting things on Facebook is “more important than anything” and tweeting about how great the service was at that store is what’s in. For us, marketers, it is getting harder and harder every day to reach our customers especially through traditional methods like phone calls or meetings. It sounds all so difficult, right? Well it is not. We have the perfect tool in our hands, we are… blind. We don’t see past our noses and we are ignoring a big important, “ginormous” fact: SOCIAL MEDIA IS EVERYTHING AND EVERYWHERE!

For most businesses, selling is the most important thing. Businesses sometimes forget that to achieve a good sale… and a continuous sale you need to obtain your client’s trust. So, nowadays where reaching for them is harder, we can use social media as a tool to gain their trust. Social sites like Facebook and Twitter help people connect with each other; but now, more than ever, they serve as a way in which people can stay in touch with your business and they can see what you are up to. Take for example, blogging. Here at Wovenware we focus on establishing a trustworthy relationship with our clients. We mainly sell custom software development services so it is hard to show that on a Facebook photo album. But we can blog about the things we do, we can tweet interesting topics and even things we’ve done, so our clients in Puerto Rico, Dominican Republic, United States and the rest of the World know we are constantly searching for new ways to improve our technologies and provide them with better solutions.

 It is very important to use social media, in this case blogging, wisely. People, and this is something I’ve witnessed, are constantly searching for solutions in the Internet. Be it: recipes, guides to do a particular thing, cats, news, or how-that-experiment-went-from-success-to-disaster-in-0.5-seconds, among many other things. I’ve read so many studies about social media and about blogging and all of them conclude: blogging content + blogging constantly = WIN!  When potential clients visit your web page they will most likely look at your “About Us” and this is where the magic happens, here is where you have to update valuable content to trigger the interest in them. For example, when I need to research a specific topic, facts or read how to get something done, I visit YouTube or search for blog post written by an expert. This is why you have to update content every day, so when a potential client looks for a solution on the web your website will pop out of the rest. What do customers look for in a blog post? They look for experience and answers to their problems. They want a blogger that writes about solving the problem they encounter every day.

 The most important thing you need to know is that you should write about something you’ve experienced yourself. People often tend to make decisions based on others experience. Experience is what every company should try to sell; experience, trust and killer customer service, then everything will fall into place, the way it is supposed to. The key to a good blog is great content that can be of help for the readers. Write about topics that concern the services you provide and show your knowledge and expertise in each of blog post.

6 Key Things to Be a Better Seller

Selling is not easy … you have to motivate yourself to sell; believe in your products and services!

Develop your experiences on a map of beliefs, where it indicates that it is good, that it works, and that it is practical and possible.

These beliefs arise from references, experiences, acquired knowledge and the belief you have in your product and services. To be a good salesperson you must have good character and leadership skills that will help achieve THAT sale.

A good salesperson has integrity, does not have divided loyalties, but is committed to the truth, understands the need to satisfy the customer, but also knows how to obtain results for the benefit of his client without affecting their character.

As we mention before there are 6 key things to be a better seller:

  1. Offer Real Solutions – one-way to help your clients is offering solutions that suit their needs, but you need to remember that these solutions need to be real. Only promise what you can deliver.
  2.  Submit Viable Proposals – offer your clients feasible proposals, things that can actually be done and that will serve the needs of the customer. You want to solve your customer problems, not create more.
  3. Facilitate/Help – be helpful and make things easier for your clients, they will be grateful. Sometimes our clients have busy schedules so it is very useful if we can give them all the information and advice they need in a straightforward way. Also, you are selling something but don’t forget that your attitude influences the sale. If the customer feels you are not completely into our job or you are not being helpful and truthful they may decide not to deal with you anymore.
  4. Investigate/Ask- ask what is the pain, what needs to be done, how they want it done and when. Research your customer, their completion, and the industry they are. Learn everything you can in order to understand your customer and help them with their needs. At the end of the day you want your customer to be more successful because of you.
  5. Talk less – STOP talking, you need to give the promising and the talking a break. Actions not words are what makes the sale.
  6. Listen More – learn how to really listen and understand what it that your customers want is. Sometimes we think that a quick meeting with our clients is enough to understand all their problems. It is not. Listen more, especially with an open mind and enthusiasm.

It really does not matter what you sell (I mainly sell Custom Software Development and Business Intelligence with QlikView in Puerto Rico and the Dominican Republic), if you apply these six tips to your sales tasks you will see your sales improve.

Have more tips? Please share then with me in the comments section.

New Software Development Technologies, New Possibilities: Node.js

New software development technologies are constantly emerging and one of the most exciting new ones is called Node.js. It is a software framework (based on the Javascript language) that can be used to develop and deploy custom network applications. It allows running Javascript as native code at server-side making it a very fast, lightweight and scalable framework.

Node.js uses the Google V8 engine to compile high level Javascript code directly into low level machine code. The benefits of doing this are its speed and that it is asynchronous. This means that your code can be designed to execute tasks that are not dependent of each other or must wait to see which finishes first. While it can be used to create any type of application, it is most convenient during web based development.  It can be applied to create a more engaging, real-time web application while diminishing requests to a server and make it more responsive.

A good example of this would be a HTTP server application. Node.js provides countless libraries in order to develop your application. With only a few lines of code you can create a very simple HTTP server:

var http = require("http");

http.createServer(
  function (request, response) {
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
}).listen(8080);

In the previous example, when a user opens the webpage “http://localhost:8080/”, he will be treated with a page containing the message “Hello World”. While this can be done in any type of server with a simple HTML page, here we gain more control of our server and the ability to be asynchronous. It can handle the request for the user and route it accordingly based on your own rules. You can limit the traffic to the user and the response he gets directly into the code. It can push new events or notifications to the user without hitting the refresh button, thus eliminating the need to be constantly making requests to the server. Basically, you can tailor fit how the server is going to work based on your own specified needs. This makes it more efficient and eliminates tons of overhead.

Since it is built on Javascript, the programming learning curve is very low. You don’t have to be an expert on Javascript, or programming in general, to be able to create your own application. Big name companies (like Yahoo, LinkedIn, and Microsoft) are already aware of this and are deploying Node.js in their production environments. Since the web is moving to one based on instant feedback, it seems to be the perfect framework to use for development.

For more information on Node.js, as well as a tutorial, you may visit NodeBeginner.org and Nodejs.org for the installation client.

 

Have you used node.js before? Did you find it useful? Let us know what you think about it!