CRM it is not just about IT!

17. August 2009

Never leave a techy guy in charge of a Business Process they would be thinking all that it takes to solve any problem is either create or install an Information System, I had an argument on CRM with a "just install it" kind of guy and base on that conversation I decided to add this quick post. Business process en general should be aligned with strategy, and these process feed strategy back along the path; strategy is the basis for all actions within the organization and in particular a CRM Process Implementation is one of these actions. Any modern organization should know what its strategy is in terms of the relation with their customers, that strategic view will be the starting point for the implementation of a CRM (business) system, CRM as IT systems should be a tool aligned with the Business objective not an objective on its own.

It is true that successful CRM will heavily depend on technology; however, these technologies do not come cheap; there is a significant amount of money and time to invest and the process to implement such systems should be clearly and carefully planned and executed; otherwise, the promise of solving the relation problems with customers will become a back fire because lost of credibility with the current customer base. Before starting with any actual implementation of the system as a whole, company goals has to be revised and updated accordingly and the CRM process has to be designed and analyzed with all their consecuences for the business and the customer relationships with all the key players.

 

Allan Cascante @ 12:42

Currently rated 2.0 by 1 people

  • Currently 2/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Comentarios ,

AC Consulting y CostaRicaisIt.net

5. August 2009

Este 4 de Agosto la Républica un Periodico de Costa Rica publicó un reportaje acerca de CostaRicaisIt.net un portal para que la empresas de tecnología ofrezcan sus servicios en la red, esta iniciativa de Camtic ha facilitado la creación de leads para la empresas de tecnología en Costa Rica. Dentro del reportaje se menciona a AC Consulting como parte de las empresas miembros del directorio.

AC Consulting es miembro activo de este directorio y promueve su uso para generación de leads, a la fecha hemos recibido mas de 15 leads provenientes de http://CostaRicaisIT.net y seguimos continuamente .

Visite nuestro perfil en http://www.costaricaisit.net/portal/company/ACConsulting y lea el reportaje completo de la Républica en http://www.larepublica.net/app/cms/www/index.php?id_menu=96&pk_articulo=27712.

Allan Cascante @ 02:38

Currently rated 3.0 by 2 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Noticias

Buenas prácticas en el uso de CMS

31. July 2009

El uso de un CMS (Code Management System por sus siglas en inglés) es una herramienta fundamental para el desarrollo de software; sin embargo, dependiendo del sistema utilizado un conjunto de buenas prácticas deben guiar su uso; además, no se debe asumir que todos los desarrolladores son conocedores del uso de los CMS y más aún de esas nuevas buenas prácticas, para algunos resulta sorprendente que todavía se desarrollen sistemas sin el uso de estos sistemas, pero la realidad es que la práctica del uso de un CMS no esta 100% difundida.

Más aún algunos desarrolladores aplican prácticas viejas (no necesariamente buenas inclusive para el momento en se utilizaban) en sistemas modernos de CMS, por ejemplo actualmente estoy tratando de navegar un repositorio de un sistema el cual a pasado por varias fases, multiples miembros del equipo y todos aplicaron sus propias prácticas al uso (in)correcto del repositorio de código, por ejemplo versionan archivos temporales de proyecto que se tienen que crear cada vez que se carge la applicación en el IDE. Otro buen ejemplo de una mala práctica en este caso donde los documentos no se versionan por ser binarios, se crea una nueva versión del documento y se agrega al repositorio con un nombre diferente.

Casos como éstos llevan a graves problemas donde el repositorio es un agujero negro cualquier documento que caiga ahi desaparece, estas malas prácticas se notan aún más cuando el equipo del proyecto rota, incrementando los tiempos de capacitación; y dificultando los procesos de mejora en el sistema además de que genera dependencia en los miembros más capacitados del equipo pues son los únicos que entienden el (des)orden de los activos del proyecto.

Todas éstas malas prácticas eventualmente tienen que ser resueltas ya sea con la corrección mediante entrenamiento y la applicación de la póliticas internas o mediante la adquisición de un CMS que fuerze el uso de buenas prácticas con el costo de implementación, mantenimiento y entrenamiento de este. Existen opciones Open Source para los CMS pero su uso debe ser consciente y abierto a la mejora en la operación, no cosiderar su uso como algo trivial aún cuando sea simple y nunca olvidar la aplicación de los procedimientos y las buenas prácticas.

Allan Cascante @ 10:43

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

General

Quieres ser Social?

22. May 2009

Quieres ser Social (want to be Social)?

 

La vida se compone de interacciones, todos los elementos animados e inanimados se relacionan entre sí, incluso en formas que no conocemos. La interacción de estos elementos es el caldo de cultivo de la vida y la evolución; nosotros formamos parte de redes sociales gigantescas que no conocemos o al menos no estamos al tanto de todas sus ramificaciones.

 

El éxito de la humanidad esta basado en la capacidad de agruparse en comunidades, los problemas más difíciles se vuelven más fáciles de resolver con la ayuda de un grupo, en el que sus individuos aportan sus habilidades para el bien común. En fin, las comunidades son el centro de la vida moderna, y dicha realidad se acentúa más hoy en día que el mundo se liberó de sus barreras físicas, y formamos parte de una “comunidad” comercial global que trabaja e interactúa de manera conectada.

 

 

Ser social es más que una moda, más bien es todo lo contrario! Ser social es tan fundamental que no lo vemos, por eso nos parece novedoso, cuando realmente somos por definición seres sociales, desde el nacimiento del Internet hemos estado trabajando socialmente, ese es la base de la red de Internet. Lo que ha cambiado desde aquel momento hasta ahora son las herramientas: comenzamos con HTML e hyperlinks, pasamos de IRC hasta un sin número de opciones (gtalk, yahoo, msn, jabber, etc.), foros y grupos por doquier hasta sistemas de administración del conocimiento como los wikis.

 

Siempre hemos sido sociales, la diferencia radica en las herramientas y su uso, nosotros como AC Consulting trabajamos en iniciativas para llevar cada más y mejores herramientas de comunidad, por eso trabajamos en una propuesta para una nueva comunidad Mi Imagen Online. Con servicios y herramientas innovadores que facilitaran las relaciones entre los miembros.

Allan Cascante @ 04:44

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Redes sociales , , ,

Library Dependency and SOA Modular Development

26. February 2009

There always has been been promises to solve tech problems since ever; although, sometimes a solution creates another problem, first we had monolithic applications where all code has to be written by the same team; from I/O access to Presentation; then we had libraries to concentrate common pieces of code for a particular task, but these libraries created to be reuse had interdependencies with other libraries of code, then to solve these interdependencies we create versioned libraries and ship them in a single file, but as we had versioning we start to have problems with libraries having dependencies for a particular version and any new version might break the code; thus our code is still tightly coupled; even though, we have tried all tricks in the book (and some that aren’t in the book) to decouple our modules.


One common approach is to use patterns such factories to decouple the modules and leave the factory to decide (based on configuration) which “module” to deliver, and yet still once the object has been delivered it cannot be retaken or change into some new version; despite all these efforts, one fundamental problem remains: “how to decouple our modules and make them resilient to change in other modules”. Since 1999 there has been efforts from a group to define a standard for a framework capable of this decoupling, it first started as a solution for device communication where its applicability is obvious (i.e. in a Smart House where appliances come a goes any time) where the modules should be self aware of each other and auto-configurable.
Nowadays this framework is making its way into the enterprise application world to allow a SOA environment to exists in a single JVM or distributed JVMs, making modules reusable, secure, distributed, resilient, environment aware, self configurable, versioned and more; it varies from WS SOA in not requiring a transport layer removing this overhead and making services resilient. This framework its defined by OSGi Alliance and they provide the detailed specs for the framework but several implementations can be found both in commercial and open source versions, some examples are:

http://www.knopflerfish.org/
http://www.eclipse.org/equinox/
http://felix.apache.org/

A promise of a SOA environment without the overhead of the transport layer and a build in ability to react to failures and code changes is a great improvement it definitely adds a great number of advantages for (at last) modular development. We definitely should keep an eye in the releases of implementations of RFCs from this group.

Allan Cascante @ 05:37

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tips & Examples, Comentarios , ,

Google Calendar in a ASP.Net Page

17. December 2008

It has been a while since I discovered Google Calendars; although, lately it have drove my attention the extensive coverage of the API available for this application, so I though give it a try.

I found that Google Calendar expose the calendars as XML, ICAL and HTML; browsing around I found that ICAL is actually an Internet Standard defined in the RFC2445; so at first I tough of parsing the ICAL entries myself, later on I found a .Net 2.0 libray for ICal named DDay.iCal so I tough of integrating both into a simple ASP.Net application to show a calendar with the events on the given dates.

The integration between iCal and Google Calendar is very straight forward, first I went to Google Calendar and got the url for the calendar I want to navigate to, by selecting calendar's setting from the menu as shown bellow.

 


Then I select the iCal button and save the url shown in the pop-up for later (as shown bellow):





Then is just matter of creating a web project you can use Visual Studio 2005 as I did; then I added the references to DDay.iCal.dll and antlr.runtime.dll; in the Default.aspx page I create some components:

- A TextBox in case we need to load another Google Calendar.
- A Button to reload the Calendar from the TextBox.
- A Calendar to display the dates having Events.
- A Repeater to show all events for the selected date of the calendar.

The most important section of the aspx page, is the item template section of the repeater, this will bind the occurrences of the events in the calendar to display the Event details:

<ItemTemplate>
<div class="item">
<div class="time"><%# GetTime(Container.DataItem)%></div>
<span class="bold"><%# DataBinder.Eval(Container.DataItem, "Component.Summary") %></span>
</div>
</ItemTemplate>

The GetTime method will obtain the Time for the Event Occurrence, and the Eval will get the Summary for the Event.

protected string GetTime(object obj)
{
Occurrence occurrence = obj as Occurrence;
if (occurrence != null)
{
Event currentEvent = occurrence.Component as Event;
if (currentEvent != null)
{
if (currentEvent.IsAllDay)
return "All Day";
else return currentEvent.Start.Local.ToString("h:mm tt");
}
}
return string.Empty;
}

Since the iCal library follows the iCal standard, we only need to call this method

calendar = iCalendar.LoadFromUri(new Uri(GoogleCalendarURLTextBox.Text));

Where the Text in the TextBox points to a valid ICAL stream; therefore, we set the TextBox with the url we copied from the pop-up from Google Calendar. Now calendar has all the calendar entries from Google Calendar.

To mark dates in the Calendar where the Google Calendar has valide events occurences we implement some code for the Calendar DayRender event to check if the current rendered date has event occurrences and change the background color of the cell:

protected void GoogleCalendar_DayRender(object sender, DayRenderEventArgs e)
{
//When a date is render check if it has a event and mark the day in the calendar
if (calendar != null)
{
if (calendar.GetOccurrences(e.Day.Date).Count > 0)
{
//Paint the day with a red color
e.Cell.Attributes.Add("style", "{background-color:yellow;");
}
}
}

The we need some code to bind the Event Occurrences for the given date for the repeater to show the details, to do this we add a method to be called by the Selection Changed event of the calendar as follows:

protected void GoogleCalendar_SelectionChanged(object sender, EventArgs e)
{
//When selecting a date load the event in the Repeater
DailyEventsRepeater.DataSource = calendar.GetOccurrences(GoogleCalendar.SelectedDate);
DailyEventsRepeater.DataBind();
}

The previous code is practically all that we need to actually display the events in our google calendar and the details when a date is selected. Later some code to optimize the page can be included.

This is the finall application:


 
  Allan Cascante @ 05:23

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tips & Examples, .Net , , ,

Creating Something out of Nothing

22. May 2008
As part of my daily browsing I just got to ted.com "Ideas worth spreading"; and found a talk featuring Amy Tan, honestly I have never heard of her before; although the fifteen minutes talk was very insightful and compelling in a very funny way, it was entitled "Where Creativity does Hide?". The talk runs trough her life and how that transformed her and her creativity. The one idea that "rang the bell" in my head was: "How to create something out of nothing?"; I believe that's the best definition of creativity I have ever heard. That is the place where everything start rumbling in my head, and now I only can think of how to create something out of nothing, something out of nothing, something out nothing, SoN?????

For me what really drives creativity is necessity, and the cohesive medium is opportunity in form of spare time. Take Creativity C, Spare Time as st and necessity as n the following formula would describe not where the creativity hides but how big it can be.

C = n * st

Taking the above formula the greatest n or st would make C greater; thus, having a necessity or spare time are not warranty of obtaining more creativity. Therefore, to have SoN creativity is required meaning

SoN = C

therefore

SoN = n * st

Since st could is measured as Time, it would be affected by sense of time according to the Necessity n, therefore

SoN = n * t^n

In conclusion to get something out of nothing I would require both a Necessity and Time, the amount of each required to get a bigger SoN would be determined by the Necessity in the first degree and the time in second.

Having the silly-naive definition of SoN presented above I came to the conclusion that if I want to create SoN I need to get either a great necessity or tons of spare time and a small necessity. In example took this post, I can say this is SoN, the necessity to create it was significant smaller than the spare time I had to write it, as you can see the result is not brainier but its something out of nothing.

Then Where does creativity hides? For me creativity hides inside the necessity, but necessity without time will not get any creativity.
Allan Cascante @ 05:33

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Comentarios

Interested in Writing? Think about the readers first!

7. December 2007

Sometimes we just sit down and write anything without having a any deal of thinking about the target audience of what we are writing. Moreover, we do not have any kind of tools; but, peer reviews and comments from readers to understand and qualify our writing skills. I was thinking that it would be nice to have a mechanism to test my articles; browsing around I found an article in wikipedia about a test named Flesch-Kincaid Readability you can read the whole article in here. Despite the fact that the test might help into measuring readiness of the text in terms of sentences length and word length using Flesch Reading Ease test, or changing the equation to get Flesch–Kincaid Grade Level test. Investing time to think about the target audience; to take language, audience education, even the medium used to present the article; may change the perception about the article greatly by the readers.

People is getting used to read from digital mediums, such as PC or cellphones; however, the traditional medium is printed; such books or newspapers. Digital books are more common nowadays; although, when it comes to read a book the favorite media is the old fashioned paper. Readers looking form information in the internet have different reading patterns, they tend to do skimming reading; which means, reading pieces of the whole page, the starting sentences of the paragraphs in a effort to read only the strictly necessary to figure out if the article worths being read completely; therefore, when writing for a digital medium we have to pay special attention to starting sentences on paragraphs.

This behavior on reading has lead to a number of mechanism two I would like to mention here; one to encourage fast reading and other one to assist skimming reading; since the 70's a technique know as Rapid Serial Visual Presentation has been used in a experiment at the Standford University Persuasive Technology Laboratory; the technique is used in a web site called buddybuzz.org there several content providers can present their text in the tiny cellphone screens, RSVP consist of flashing one word at the time allowing to draw attention on that particular word before moving to the next one in the text; allowing speeds up to 1000 words per minute, this mechanism have prove useful for those interested in reading their favorite news or blogs in their cellphones.

Skimming experience can be enhanced and eased by means of tools; a group of researches at Palo Alto Research Center in California develop a tool called ScentHighligth, the tool is specially useful with digital text, they use correlation, spread activation and word co-occurrence to get search keywords related and highlight sentences based on a base of correlated words you can read the entire paper here.

Sadly both techniques are only experimental and our articles will have to be carefully written and correctly targeted to the audience to avoid loosing the effect that we want to achieve and all our effort will be wasted. I all the browsing I did about reading I found a site where the readability test can be done to a page, so I posted this words in the internet and ran the test here this are the results:

Total sentences 26
Total words 501
Average words per Sentence 19.27
Words with 1 Syllable 302
Words with 2 Syllables 114
Words with 3 Syllables 62
Words with 4 or more Syllables 23
Percentage of word with three or more syllables 16.97%
Average Syllables per Word 1.61
Gunning Fog Index 14.49
Flesch Reading Ease 50.84
Flesch-Kincaid Grade 10.96

Then from the previous results the reader can be an advance student of 10th grade and its at level with publication such as Time magazine. So readability is not that bad; although, it will also depend on the contents and the target audience. Allan Cascante @ 05:35

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Comentarios ,