Maker All - Executive Presentation

1,359 views

Published on

Executive presentation of Maker All, complete enterprise web applications development enviroment from Softwell Solutions - a Brazilian software company expanding its operations to global markets.

Published in: Technology

Maker All - Executive Presentation

  1. 1. Diogo Falcão<br />diogo.falcao@softwell.com.br<br />simplifyingtechnology<br />
  2. 2. INDEX<br />MakerAll®<br />Concept<br />Rewards<br />Cases<br />Practice<br />Company<br />
  3. 3. <%@ tagliburi="/WEB-INF/tlds/webrun.tld" prefix="webrun"%><br /><%@ tagliburi="http://java.sun.com/jsp/jstl/core" prefix="c"%> <html><br /> <head><br /> <meta http-equiv="Content-Type" content="text/html; charset=${webrun:charset()}"><br /> <title>Auto Test</title><br /> <webrun:importsrc="wfr.js"/><br /> <script type="text/javascript"><br />function restart() {<br />document.autoTestForm.action.value = "restart“; document.autoTestForm.submit();<br /> }unction systems() {<br />document.location.href = "<c:out value='${pageContext.request.contextPath}'/>“; <c:if "${haveFixedSystemDir}"><br /> function reconfig() {<br />document.autoTestForm.action.value = "reconfig";<br />document.autoTestForm.submit(); } </c:if> function showMsg() { <c:if test="${not empty requestScope.msg}"><br />interactionInfo("<c:out value='${requestScope.msg}' escapeXml='false'/>"); </c:if><br /> } <br />vardefaultText = "<webrun:message key='INFO.DETAILS_ON_MOUSE_OVER' js='true'/>“; <br /> function showObs(tr, value) {<br /> if (value == null || value == "") { value = defaultText;<br /> }<br />document.getElementById("obs").innerHTML = value; highlightON(tr);<br /> } <br /> function hideObs(tr) {<br />document.getElementById("obs").innerHTML = defaultText; highlightOFF(tr);<br /> } <br /> function highlightON(tr) {<br />tr.style.backgroundColor = "#E2F6C2";<br /> }<br /> function highlightOFF(tr) {<br />tr.style.backgroundColor = "";<br /> } vardefaultText = "<webrun:message key='INFO.DETAILS_ON_MOUSE_OVER' js='true'/>“; <br /> function showObs(tr, value) {<br /> if (value == null || value == "") { value = defaultText;<br /> } document.autoTestForm.action.value = "restart“; document.autoTestForm.submit();<br />
  4. 4. COMPUTER LANGUAGES<br />
  5. 5. PROBLEM = OPORTUNITY<br />Software ProjectsResults<br />Rework<br />Over Budget<br />Aborted<br />Delayed<br />Data<br />90 %<br />DELAYED<br />66 %<br />ABORTED<br />40 %<br />REWORK<br />54 %<br />OVER BUDGET<br />
  6. 6. HARDWARE EVOLUTION<br />NumberofTransistors<br />Year<br />Doublingevery 18 months<br />Moore´s Law<br />Intel processors<br />
  7. 7. SOFTWARE EVOLUTION<br />MAKER ALL®<br />2000<br />P R O G R A M M E R<br />Computer Languages<br />Fortran, Cobol, Java and <br />.NET - framework<br />1954<br />P R O G R A M M E R<br />1950<br />Machine Code<br />P R O G R A M M E R<br />ENIAC – Binary System and introduction of BIT (Binary Digit) concept – Plugging and unplugging cables.<br />40´s<br />P R O G R A M M E R<br />
  8. 8. PARADIGM SHIFT<br />P R O G R A M M E R<br />P R O G R A M M E R<br />Fim<br />Início<br />I<br />I<br />SIM<br />NÃO<br />Abre uma consulta no banco<br />Dados e armazena o valor <br />Retornado em uma variável do<br />Tipo TABELA<br />Existem registros na<br />Minha variável?<br />Mensagem de Alerta<br />Finaliza a Sessão<br />Processamento3<br />Próximo registro<br />Processamento 3<br />publicclass Base64Coder {<br /> // Mappingtablefrom 6-bit nibbles to Base64 characters.<br />privatestaticchar[] map1 = newchar[64];<br />static {<br />int i = 0;<br /> for (char c = 'A'; c <= 'Z'; c++) {<br /> map1[i++] = c;<br /> }<br /> for (char c = 'a'; c <= 'z'; c++) {<br /> map1[i++] = c;<br /> }<br /> for (char c = '0'; c <= '9'; c++) {<br /> map1[i++] = c;<br /> }<br /> map1[i++] = '+';<br /> map1[i++] = '/';<br /> }<br /> // Mappingtablefrom Base64 characters to 6-bit nibbles.<br />privatestatic byte[] map2 = new byte[128];<br />static {<br /> for (int i = 0; i < map2.length; i++) {<br /> map2[i] = -1;<br /> }<br /> for (int i = 0; i < 64; i++) {<br /> map2[map1[i]] = (byte) i;<br /> }<br /> }<br /> /**<br /> * Encodes a string into Base64 format.<br /> * No blanksorlinebreaks are inserted.<br /> * @param s a String to beencoded.<br /> * @return A String withthe Base64 encoded data.<br /> */<br />publicstatic String encodeString(String s) {<br />returnnew String(encode(s.getBytes()));<br /> }<br /> /**<br /> * Encodes a byte arrayinto Base64 format.<br /> * No blanksorlinebreaks are inserted.<br /> * @param in anarraycontainingthe data bytes to beencoded.<br /> * @return A characterarraywiththe Base64 encoded data.<br /> */<br />publicstaticchar[] encode(byte[] in) {<br />returnencode(in, in.length);<br /> }<br /> /**<br /> * Encodes a byte arrayinto Base64 format.<br /> * No blanksorlinebreaks are inserted.<br /> * @param in anarraycontainingthe data bytes to beencoded.<br /> * @param iLennumberof bytes to process in <code>in</code>.<br /> * @return A characterarraywiththe Base64 encoded data.<br /> */<br />publicstaticchar[] encode(byte[] in, intiLen) {<br />intoDataLen = (iLen * 4 + 2) / 3; // output lengthwithoutpadding<br />intoLen = ((iLen + 2) / 3) * 4; // output lengthincludingpadding<br />char[] out = newchar[oLen];<br />intip = 0;<br />intop = 0;<br />while (ip < iLen) {<br />int i0 = in[ip++] & 0xff;<br />int i1 = ip < iLen ? in[ip++] & 0xff : 0;<br />int i2 = ip < iLen ? in[ip++] & 0xff : 0;<br />int o0 = i0 >>> 2;<br />int o1 = ((i0 & 3) << 4) | (i1 >>> 4); <br />/**<br /> * Encodes a byte arrayinto Base64 format.<br /> * No blanksorlinebreaks are inserted.<br /> * @param in anarraycontainingthe data bytes to beencoded.<br /> * @return A characterarraywiththe Base64 encoded data.<br /> */<br />publicstaticchar[] encode(byte[] in) {<br />returnencode(in, in.length);<br /> }<br /> /**<br /> * Encodes a byte arrayinto Base64 format.<br /> * No blanksorlinebreaks are inserted.<br /> * @param in anarraycontainingthe data bytes to beencoded.<br /> * @param iLennumberof bytes to process in <code>in</code>.<br /> * @return A characterarraywiththe Base64 encoded data.<br /> */<br />publicstaticchar[] encode(byte[] in, intiLen) {<br />intoDataLen = (iLen * 4 + 2) / 3; // output lengthwithoutpadding<br />intoLen = ((iLen + 2) / 3) * 4; // output lengthincludingpadding<br />char[] out = newchar[oLen];<br />intip = 0;<br />intop = 0;<br />while (ip < iLen) {<br />int i0 = in[ip++] & 0xff;<br />int i1 = ip < iLen ? in[ip++] & 0xff : 0;<br />int i2 = ip < iLen ? in[ip++] & 0xff : 0;<br />int o0 = i0 >>> 2;<br />int o1 = ((i0 & 3) << 4) | (i1 >>> 4); <br />publicclass Base64Coder {<br /> // Mappingtablefrom 6-bit nibbles to Base64 characters.<br />privatestaticchar[] map1 = newchar[64];<br />static {<br />int i = 0;<br /> for (char c = 'A'; c <= 'Z'; c++) {<br /> map1[i++] = c;<br /> }<br /> for (char c = 'a'; c <= 'z'; c++) {<br /> map1[i++] = c;<br /> }<br /> for (char c = '0'; c <= '9'; c++) {<br /> map1[i++] = c;<br /> }<br /> map1[i++] = '+';<br /> map1[i++] = '/';<br /> }<br /> // Mappingtablefrom Base64 characters to 6-bit nibbles.<br />privatestatic byte[] map2 = new byte[128];<br />static {<br /> for (int i = 0; i < map2.length; i++) {<br /> map2[i] = -1;<br /> }<br /> for (int i = 0; i < 64; i++) {<br /> map2[map1[i]] = (byte) i;<br /> }<br /> }<br /> /**<br /> * Encodes a string into Base64 format.<br /> * No blanksorlinebreaks are inserted.<br /> * @param s a String to beencoded.<br /> * @return A String withthe Base64 encoded data.<br /> */<br />publicstatic String encodeString(String s) {<br />returnnew String(encode(s.getBytes()));<br /> }<br /> /**<br /> * Encodes a byte arrayinto Base64 format.<br /> * No blanksorlinebreaks are inserted.<br /> * @param in anarraycontainingthe data bytes to beencoded.<br /> * @return A characterarraywiththe Base64 encoded data.<br /> */<br />publicstaticchar[] encode(byte[] in) {<br />returnencode(in, in.length);<br /> }<br /> /**<br /> * Encodes a byte arrayinto Base64 format.<br /> * No blanksorlinebreaks are inserted.<br /> * @param in anarraycontainingthe data bytes to beencoded.<br /> * @param iLennumberof bytes to process in <code>in</code>.<br /> * @return A characterarraywiththe Base64 encoded data.<br /> */<br />publicstaticchar[] encode(byte[] in, intiLen) {<br />intoDataLen = (iLen * 4 + 2) / 3; // output lengthwithoutpadding<br />intoLen = ((iLen + 2) / 3) * 4; // output lengthincludingpadding<br />char[] out = newchar[oLen];<br />intip = 0;<br />intop = 0;<br />while (ip < iLen) {<br />int i0 = in[ip++] & 0xff;<br />int i1 = ip < iLen ? in[ip++] & 0xff : 0;<br />int i2 = ip < iLen ? in[ip++] & 0xff : 0;<br />int o0 = i0 >>> 2;<br />int o1 = ((i0 & 3) << 4) | (i1 >>> 4); <br />/**<br /> * Encodes a byte arrayinto Base64 format.<br /> * No blanksorlinebreaks are inserted.<br /> * @param in anarraycontainingthe data bytes to beencoded.<br /> * @return A characterarraywiththe Base64 encoded data.<br /> */<br />publicstaticchar[] encode(byte[] in) {<br />returnencode(in, in.length);<br /> }<br /> /**<br /> * Encodes a byte arrayinto Base64 format.<br /> * No blanksorlinebreaks are inserted.<br /> * @param in anarraycontainingthe data bytes to beencoded.<br /> * @param iLennumberof bytes to process in <code>in</code>.<br /> * @return A characterarraywiththe Base64 encoded data.<br /> */<br />publicstaticchar[] encode(byte[] in, intiLen) {<br />intoDataLen = (iLen * 4 + 2) / 3; // output lengthwithoutpadding<br />intoLen = ((iLen + 2) / 3) * 4; // output lengthincludingpadding<br />char[] out = newchar[oLen];<br />intip = 0;<br />intop = 0;<br />while (ip < iLen) {<br />int i0 = in[ip++] & 0xff;<br />int i1 = ip < iLen ? in[ip++] & 0xff : 0;<br />int i2 = ip < iLen ? in[ip++] & 0xff : 0;<br />int o0 = i0 >>> 2;<br />int o1 = ((i0 & 3) << 4) | (i1 >>> 4); <br />
  9. 9. ENTERPRISE APPLICATIONS DEVELOPMENT PLATFORM<br />100% VISUAL<br />Java and .Net<br />P R O G R A M M E R<br />
  10. 10. LEARNING CURVE<br />MAKER ALL® – Complete training in 40 hours<br />
  11. 11. Themissing link ofunderstandment<br />D O M A I N E S P E C I A L I S T<br />Requiriments<br />Development<br />P R O G R A M M E R<br />
  12. 12. SERVICES<br />Motivation:<br />Beanentry-point to Clients<br />Sharetheriskofparadigmshiftting<br />Deliver web solutionsdesignedbyMakerAll®<br />Qualityandproductivityassurance<br />
  13. 13. HOW DOES THE MARKET OPERATES?<br />Software Factories (Accenture, Logica, etc.):<br />Ondemand applications development;<br />ElevatedFunctionPointcost (over US$ 200,00);<br />100% especificandadapted software;<br />Longprojectexecutionperiods.<br />Software Houses (SAP, Oracle, etc.):<br />Marketing ofexistingSoftware products;<br />Immediateimplementation;<br />Solution partiallyadherent to bussiness;<br />Companyhas to adapt to software;<br />Elevatedcosts for customizations.<br />
  14. 14. SOFTWELL SOLUTIONS POSITIONING<br />Bridgebetweenthebestof 2 worlds:<br />Ondemand applications develpment;<br />100% especificandbussinessadapted software;<br />AlmostImmediateimplementation;<br />LowFunctionPointcost;<br />TheAgilityof a Software Housewithflexibilityandcustomizationcapabilityof a Software Factory.<br />
  15. 15. HOW IS IT POSSIBLE?<br />UsingMakerAll® as thedevelopmenttool<br />Usinganagileandproductadaptedmethodology (Maker Express)<br />Welltrainedteam<br />3 Pillars: Processes, People, Products...<br />
  16. 16. CASE: NATIONAL PARLIAMENT CHAMBER<br />Final officialclientreport: testedproductivityof23,80 PointsofFunction per hour!<br />
  17. 17. SOME CORPORATE CLIENTS<br />
  18. 18. MORE THAN 600 CLIENTS<br />
  19. 19. INOVATION BECAME NEWS<br />Extensivenational media coverageofcompanystart-upandproduct release<br />
  20. 20. ESPECIALIZED MEDIA EVALUATION<br />Info: thebiggestBrazilianespecialized IT magazine<br />MAKER All® TechnicalEvaluation<br />April, 2008<br />
  21. 21. THE BEST ENTERPRISE WEB APPLICATIONS DEVELOPMENT TOOL !<br />2008: comparisonwiththebiggest players in theindustry<br />7,6<br />7,8<br />8,2<br />8,3<br />
  22. 22. NATIONAL REWARDS<br />“The best 2008 software in all categories”<br />Brazilian National Association of IT Companies<br />“The best Web applications development tool”<br />Info Magazine<br />
  23. 23. THE COMPANY<br />Softwell Solutions was born from an idea to simplify processes and enhance the business strategies. After more than 8 years of research, involving dozens of multidisciplinary teams, we were able to create a strong brand, with solid and innovative projects. With only 3 years of birth and more than 600 clients the company is growing at extremely fast pace and starting to reach international markets. With consolidated operations in Brazil and Europe and starting operations in Africa and Canada we want to be recognized worldwide as a young and creative company within the global software industry.<br />
  24. 24. COMPANY HISTORY<br />The Freire Group<br />SoftwellSolutions is a start-upfromthe Freire Group - importantBrazilianprivategroupofeightcompaniesthathasinvestmentsonthesegmentsof: HighTechnology, Energy, Digital Media andComunications.<br />Freire Informática Inc.<br />TheoriginofMakerAll® andSoftwellSolutions is Freire Informática Inc. – thethirdlargestBrazilian Software HouseespecializedonGovernmentSolutions. With 25 yearsofmarketexperiencetheirsolutions are present in eight states and 20% ofallbrazilianmunicipalities.<br />BirthofMakerAll®<br />MakerAll® wasborninside Freire Informática Inc. aftereightyearsofresearchoninovativeandagilepractices in software development. It is nowthe standard platform for all Freire projectsandhundredsof its clientsandpartners.<br />
  25. 25. WORLDWIDE OPERATIONS<br />Partner<br />Canada<br />Unit<br />Madrid/ES<br />Unit<br />Lisboa/PT<br />Headquarters<br />Salvador/BA<br />38 Partners in Brazil<br />Partner<br />Angola<br />Unit<br />São Paulo/SP<br />
  26. 26. CONTACTS<br />SoftwellSolutionsLatinAmerica<br />Magalhães Neto Avenue, 1856, 14th floor, Salvador/BA - Brazil<br />+55 71 2108 3800<br />Barão do Triunfo Street, 73, 12th floor, São Paulo/SP - Brazil<br />+55 11 5093-7843<br />SoftwellSolutionsEurope<br />Empresarial Torres de Lisboa, ZipCode 1600-209, Lisboa/PT<br />+351 217 230 647<br />Calle Orence, 85, Ed. Lexington, Zip Code 28020, Madrid/ES<br />+34 915 678 494<br />
  27. 27. PRODUCT ROADMAP<br />Venture Capital 2009 - US$ 3.900.000,00<br />Realized<br />2000 2003 2007 2009 2010 2011 2012 2013 2014 2016<br />
  28. 28. Thankyouverymuch!<br />Come visit us atwww.softwell.com.br<br />Diogo Falcão<br />diogo.falcao@softwell.com.br<br />

×