ఒక చిన్న కార్యక్రమం 100+ మిలియన్ రూబిళ్లు/నెల లాభంతో చిన్న కార్యాలయాన్ని ఫెడరల్ కంపెనీగా ఎలా మార్చింది

డిసెంబర్ 2008 చివరిలో, నేను ఇప్పటికే ఉన్న వ్యాపార ప్రక్రియలను ఆటోమేట్ చేసే లక్ష్యంతో పెర్మ్‌లోని టాక్సీ సేవలలో ఒకదానికి ఆహ్వానించబడ్డాను. సాధారణంగా, నాకు మూడు ప్రాథమిక పనులు ఇవ్వబడ్డాయి:


  • టాక్సీ డ్రైవర్ల కోసం మొబైల్ అప్లికేషన్‌తో కాల్ సెంటర్ కోసం సాఫ్ట్‌వేర్ ప్యాకేజీని అభివృద్ధి చేయండి మరియు అంతర్గత వ్యాపార ప్రక్రియలను ఆటోమేట్ చేయండి.
  • ప్రతిదీ అతి తక్కువ సమయంలో పూర్తి చేయాల్సి వచ్చింది.
  • థర్డ్-పార్టీ డెవలపర్‌ల నుండి కొనుగోలు చేయకుండా మీ స్వంత సాఫ్ట్‌వేర్‌ను కలిగి ఉండండి, భవిష్యత్తులో, వ్యాపారం అభివృద్ధి చెందుతున్నప్పుడు, నిరంతరం మారుతున్న మార్కెట్ పరిస్థితులకు స్వతంత్రంగా స్కేల్ చేయబడుతుంది.

ఆ సమయంలో, ఈ మార్కెట్ ఎలా పనిచేస్తుందో మరియు దాని సూక్ష్మ నైపుణ్యాలు నాకు అర్థం కాలేదు, అయినప్పటికీ, నాకు రెండు విషయాలు స్పష్టంగా ఉన్నాయి. కాల్ సెంటర్ తప్పనిసరిగా ఓపెన్ సోర్స్ ఆస్టరిస్క్ సాఫ్ట్‌వేర్ PBX ఆధారంగా నిర్మించబడాలి. కాల్ సెంటర్ మరియు మొబైల్ అప్లికేషన్ మధ్య సమాచార మార్పిడి అనేది భవిష్యత్ ప్రాజెక్ట్ మరియు దాని ప్రోగ్రామింగ్ యొక్క ఆకృతిని రూపొందించడానికి అన్ని సంబంధిత నమూనాలతో తప్పనిసరిగా క్లయింట్-సర్వర్ పరిష్కారం.

ప్రాజెక్ట్ కోసం పనులు, గడువులు మరియు ఖర్చుల ప్రాథమిక అంచనా తర్వాత మరియు టాక్సీ సర్వీస్ యజమానితో అవసరమైన అన్ని సమస్యలపై అంగీకరించిన తర్వాత, నేను జనవరి 2009లో పని ప్రారంభించాను.

ముందుచూపు, నేను వెంటనే చెబుతాను. ఫలితంగా రష్యాలోని 60 నగరాల్లో మరియు కజాఖ్స్తాన్‌లోని 12 నగరాల్లో 2+ సర్వర్‌లపై స్కేలబుల్ ప్లాట్‌ఫారమ్ నడుస్తోంది. కంపెనీ మొత్తం లాభం 100+ మిలియన్ రూబిళ్లు/నెలకు.

మొదటి దశ. నమూనా

ఆ సమయంలో నాకు IP టెలిఫోనీలో ఆచరణాత్మక అనుభవం లేనందున మరియు “హోమ్” ప్రయోగాలలో భాగంగా నాకు నక్షత్రం గుర్తుతో మాత్రమే బాగా పరిచయం ఉన్నందున, మొబైల్ అప్లికేషన్ మరియు సర్వర్ భాగం అభివృద్ధితో పనిచేయడం ప్రారంభించాలని నిర్ణయించుకున్నారు. అదే సమయంలో, ఇతర పనులపై జ్ఞానంలో అంతరాలను మూసివేయడం.

మొబైల్ అప్లికేషన్‌తో ప్రతిదీ ఎక్కువ లేదా తక్కువ స్పష్టంగా ఉంటే. ఆ సమయంలో, ఇది సాధారణ పుష్-బటన్ ఫోన్‌ల కోసం మాత్రమే జావాలో వ్రాయబడుతుంది, కానీ మొబైల్ క్లయింట్‌లకు సేవలందించే సర్వర్‌ను వ్రాయడం కొంచెం క్లిష్టంగా ఉంటుంది:

  • ఏ సర్వర్ OS ఉపయోగించబడుతుంది;
  • టాస్క్ కోసం ప్రోగ్రామింగ్ లాంగ్వేజ్ ఎంపిక చేయబడుతుందనే తర్కం ఆధారంగా, మరియు వైస్ వెర్సా కాదు మరియు పాయింట్ 1ని పరిగణనలోకి తీసుకుంటే, సమస్యలను పరిష్కరించడానికి ప్రోగ్రామింగ్ భాష సరైనది;
  • డిజైన్ సమయంలో, సేవలో ఊహించిన భవిష్యత్తులో అధిక లోడ్లను పరిగణనలోకి తీసుకోవడం అవసరం;
  • ఏ డేటాబేస్ అధిక లోడ్‌ల కింద తప్పు సహనానికి హామీ ఇస్తుంది మరియు దానికి అభ్యర్థనల సంఖ్య పెరిగే కొద్దీ వేగవంతమైన డేటాబేస్ ప్రతిస్పందన సమయాన్ని ఎలా నిర్వహించాలి;
  • అభివృద్ధి వేగం మరియు కోడ్‌ను త్వరగా స్కేల్ చేయగల సామర్థ్యం నిర్ణయించే అంశం
  • పరికరాల ఖర్చు మరియు భవిష్యత్తులో దాని నిర్వహణ (కస్టమర్ యొక్క షరతులలో ఒకటి సర్వర్లు అతని నియంత్రణలో ఉన్న భూభాగంలో ఉండాలి);
  • ప్లాట్‌ఫారమ్‌పై తదుపరి దశల పనిలో అవసరమైన డెవలపర్‌ల ఖర్చు;

అలాగే డిజైన్ మరియు అభివృద్ధికి సంబంధించిన అనేక ఇతర సమస్యలు.

ప్రాజెక్ట్‌లో పనిని ప్రారంభించడానికి ముందు, నేను వ్యాపార యజమానికి ఈ క్రింది వ్యూహాత్మక నిర్ణయాన్ని ప్రతిపాదించాను: ప్రాజెక్ట్ చాలా క్లిష్టంగా ఉన్నందున, దాని అమలుకు గుర్తించదగిన సమయం పడుతుంది, కాబట్టి మొదట నేను MVP సంస్కరణను సృష్టిస్తాను, దీనికి ఎక్కువ సమయం పట్టదు మరియు డబ్బు, కానీ ఇది అతని కంపెనీ ఇప్పటికే "ఇక్కడ మరియు ఇప్పుడు" మార్కెట్లో పోటీ ప్రయోజనాన్ని పొందేందుకు అనుమతిస్తుంది మరియు టాక్సీ సేవగా దాని సామర్థ్యాలను కూడా విస్తరిస్తుంది. ప్రతిగా, అటువంటి ఇంటర్మీడియట్ పరిష్కారం నాకు సాంకేతిక ప్రయోగాల కోసం తుది పరిష్కారాన్ని మరియు సమయాన్ని మరింత ఆలోచనాత్మకంగా రూపొందించడానికి సమయం ఇస్తుంది. అదే సమయంలో, అమలు చేయబడిన సాఫ్ట్‌వేర్ పరిష్కారం సరిగ్గా రూపొందించబడిందని హామీ ఇవ్వబడదు మరియు భవిష్యత్తులో సమూలంగా పునఃరూపకల్పన చేయబడవచ్చు లేదా భర్తీ చేయబడవచ్చు, అయితే ఇది ఖచ్చితంగా "పోటీదారుల నుండి విడిపోవడానికి" అవసరమైన కనీస కార్యాచరణను నిర్వహిస్తుంది. టాక్సీ వ్యవస్థాపకుడు ఈ ఆలోచనను ఇష్టపడ్డాడు, కాబట్టి చివరికి వారు దానిని చేసారు.

నేను మొదటి రెండు వారాలు కంపెనీలో వ్యాపార ప్రక్రియలను అధ్యయనం చేసాను మరియు లోపల నుండి టాక్సీ పనిని అధ్యయనం చేసాను. ఎక్కడ, ఏమి మరియు ఎలా స్వయంచాలకంగా చేయవచ్చు మరియు ఇది అవసరమా అనే వ్యాపార విశ్లేషణను నిర్వహించింది. కంపెనీ ఉద్యోగులు ఎలాంటి ఇబ్బందులు మరియు సమస్యలను ఎదుర్కొంటారు? అవి ఎలా పరిష్కరించబడతాయి. కంపెనీ ఉద్యోగుల కోసం పని దినం ఎలా నిర్వహించబడుతుంది. వారు ఏ సాధనాలను ఉపయోగిస్తారు?

మూడవ వారం చివరి నాటికి, పనిని ప్రారంభించి, ఇంటర్నెట్‌లో ఆసక్తి ఉన్న సమస్యలను అధ్యయనం చేసిన తర్వాత, వ్యాపార యజమాని యొక్క కోరికలను, అలాగే ఆ సమయంలో నా స్వంత జ్ఞానం మరియు సామర్థ్యాలను పరిగణనలోకి తీసుకుని, ఈ క్రింది స్టాక్‌ను వర్తింపజేయాలని నిర్ణయించారు. :

  • డేటాబేస్ సర్వర్: MsSQL (డేటాబేస్ ఫైల్ పరిమితి 2GB వరకు ఉచిత వెర్షన్);
  • విండోస్ కింద డెల్ఫీలో మొబైల్ క్లయింట్‌లకు సేవలందించే సర్వర్ అభివృద్ధి, డేటాబేస్ ఇన్‌స్టాల్ చేయబడే విండోస్ సర్వర్ ఇప్పటికే ఉంది, అలాగే డెవలప్‌మెంట్ ఎన్విరాన్‌మెంట్ కూడా వేగవంతమైన అభివృద్ధిని సులభతరం చేస్తుంది;
  • 2009లో మొబైల్ ఫోన్‌లలో తక్కువ ఇంటర్నెట్ వేగాన్ని పరిగణనలోకి తీసుకుంటే, క్లయింట్ మరియు సర్వర్ మధ్య ఎక్స్ఛేంజ్ ప్రోటోకాల్ తప్పనిసరిగా బైనరీగా ఉండాలి. ఇది ప్రసారం చేయబడిన డేటా ప్యాకెట్ల పరిమాణాన్ని తగ్గిస్తుంది మరియు ఫలితంగా, సర్వర్‌తో క్లయింట్ల పని యొక్క స్థిరత్వాన్ని పెంచుతుంది;

ప్రోటోకాల్ మరియు డేటాబేస్ రూపకల్పనకు మరో రెండు వారాలు గడిపారు. ఫలితంగా మొబైల్ క్లయింట్ మరియు సర్వర్ మధ్య అవసరమైన మొత్తం డేటా మార్పిడిని నిర్ధారించే 12 ప్యాకేజీలు మరియు డేటాబేస్‌లో దాదాపు 20 పట్టికలు ఉన్నాయి. నేను సాంకేతికత స్టాక్‌ను పూర్తిగా మార్చవలసి వచ్చినప్పటికీ, ప్యాకేజీలు మరియు డేటాబేస్ యొక్క నిర్మాణం మారకుండా ఉండాలి.

సన్నాహక పని తరువాత, ఆలోచన యొక్క ఆచరణాత్మక అమలును ప్రారంభించడం సాధ్యమైంది. ప్రక్రియను కొద్దిగా వేగవంతం చేయడానికి మరియు ఇతర పనుల కోసం సమయాన్ని ఖాళీ చేయడానికి, నేను మొబైల్ అప్లికేషన్ యొక్క డ్రాఫ్ట్ వెర్షన్‌ని తయారు చేసాను, UI, పాక్షికంగా UX మరియు ప్రాజెక్ట్‌లో తెలిసిన జావా ప్రోగ్రామర్‌ని చేర్చాను. మరియు అతను సర్వర్ సైడ్ డెవలప్‌మెంట్, డిజైన్ మరియు టెస్టింగ్‌పై దృష్టి పెట్టాడు.

MVPలో రెండవ నెల పని ముగిసే సమయానికి, సర్వర్ మరియు క్లయింట్ ప్రోటోటైప్ యొక్క మొదటి వెర్షన్ సిద్ధంగా ఉంది.

మరియు మూడవ నెల చివరి నాటికి, సింథటిక్ పరీక్షలు మరియు ఫీల్డ్ పరీక్షలు, బగ్ పరిష్కారాలు, ప్రోటోకాల్ మరియు డేటాబేస్‌కు చిన్న మెరుగుదలల తర్వాత, అప్లికేషన్ ఉత్పత్తికి సిద్ధంగా ఉంది. ఏది జరిగింది.

ఈ క్షణం నుండి ప్రాజెక్ట్ యొక్క అత్యంత ఆసక్తికరమైన మరియు అత్యంత కష్టమైన భాగం ప్రారంభమవుతుంది.

కొత్త సాఫ్ట్‌వేర్‌కు డ్రైవర్ల పరివర్తన సమయంలో, XNUMX-గంటల డ్యూటీ నిర్వహించబడింది. పగటిపూట పనివేళల్లో అందరూ రాలేరు కాబట్టి. అదనంగా, పరిపాలనాపరంగా, కంపెనీ వ్యవస్థాపకుడి యొక్క దృఢ సంకల్ప నిర్ణయం ద్వారా, టాక్సీ సేవ యొక్క మేనేజర్ ద్వారా లాగిన్/పాస్‌వర్డ్‌ని నమోదు చేసి, వారు డ్రైవర్‌కు తెలియజేయబడని విధంగా ఇది నిర్వహించబడింది. నా వంతుగా, వైఫల్యాలు మరియు ఊహించలేని పరిస్థితుల్లో వినియోగదారులకు సాంకేతిక మద్దతు అవసరం.

మర్ఫీ యొక్క చట్టం మనకు ఇలా చెబుతుంది: "ఏదైనా తప్పు జరగవచ్చు, అది తప్పు అవుతుంది." మరియు సరిగ్గా ఎలా తప్పు జరిగింది... నేను మరియు అనేక మంది టాక్సీ డ్రైవర్లు అనేక డజన్ల పరీక్ష ఆర్డర్‌లలో అప్లికేషన్‌ను పరీక్షించినప్పుడు ఇది ఒక విషయం. మరియు లైన్‌లోని 500+ డ్రైవర్లు నిజమైన వ్యక్తుల నుండి నిజమైన ఆర్డర్‌లపై నిజ సమయంలో పని చేసినప్పుడు ఇది పూర్తిగా భిన్నమైన విషయం.

మొబైల్ అప్లికేషన్ యొక్క ఆర్కిటెక్చర్ సరళమైనది మరియు సర్వర్‌లో కంటే దానిలో చాలా తక్కువ బగ్‌లు ఉన్నాయి. అందువల్ల, పని యొక్క ప్రధాన దృష్టి సర్వర్ వైపు ఉంది. అప్లికేషన్‌లోని అత్యంత క్లిష్టమైన లోపం ఏమిటంటే, ఫోన్‌లోని ఇంటర్నెట్ పోయినప్పుడు మరియు సెషన్ మళ్లీ పునరుద్ధరించబడినప్పుడు సర్వర్ నుండి డిస్‌కనెక్ట్ సమస్య. మరియు ఇంటర్నెట్ చాలా తరచుగా అదృశ్యమైంది. మొదట, ఆ సంవత్సరాల్లో ఫోన్‌లోని ఇంటర్నెట్ తగినంత స్థిరంగా లేదు. రెండవది, ఇంటర్నెట్ పనిచేయని అనేక బ్లైండ్ స్పాట్‌లు ఉన్నాయి. మేము ఈ సమస్యను దాదాపు వెంటనే గుర్తించాము మరియు XNUMX గంటలలోపు గతంలో ఇన్‌స్టాల్ చేసిన అన్ని అప్లికేషన్‌లను పరిష్కరించాము మరియు నవీకరించాము.

సర్వర్ ప్రధానంగా ఆర్డర్ పంపిణీ అల్గారిథమ్‌లో లోపాలను కలిగి ఉంది మరియు క్లయింట్‌ల నుండి కొన్ని అభ్యర్థనలను తప్పుగా ప్రాసెస్ చేసింది. లోపాలను గుర్తించిన తర్వాత, నేను సర్వర్‌ని సరిదిద్దాను మరియు నవీకరించాను.

నిజానికి, ఈ దశలో చాలా సాంకేతిక సమస్యలు లేవు. కష్టమంతా దాదాపు నెల రోజులు ఆఫీసులో డ్యూటీ చేసి అప్పుడప్పుడు ఇంటికి వెళ్లడమే. బహుశా 4-5 సార్లు. మరియు నేను ఫిట్స్ మరియు స్టార్ట్‌లలో పడుకున్నాను, ఆ సమయంలో నేను ఒంటరిగా ప్రాజెక్ట్‌లో పని చేస్తున్నాను మరియు నేను తప్ప ఎవరూ ఏమీ పరిష్కరించలేరు.

ఒక నెల, దీనర్థం ఒక నెల పాటు ప్రతిదీ నిరంతరం గ్లిచ్ అవుతుందని మరియు నేను ఆపకుండా ఏదో కోడింగ్ చేస్తున్నాను. మేము ఇప్పుడే నిర్ణయించుకున్నాము. అన్ని తరువాత, వ్యాపారం ఇప్పటికే నిర్వహించబడుతోంది మరియు లాభదాయకంగా ఉంది. ఇప్పుడు కస్టమర్‌లు మరియు లాభాలను కోల్పోవడం కంటే సురక్షితంగా ప్లే చేసి తర్వాత విశ్రాంతి తీసుకోవడం మంచిది. మనమందరం దీన్ని బాగా అర్థం చేసుకున్నాము, కాబట్టి మొత్తం బృందం సమిష్టిగా టాక్సీ సిస్టమ్‌లో కొత్త సాఫ్ట్‌వేర్‌ను పరిచయం చేయడానికి గరిష్ట శ్రద్ధ మరియు సమయాన్ని కేటాయించింది. మరియు ఆర్డర్ల ప్రస్తుత ట్రాఫిక్ను పరిగణనలోకి తీసుకుంటే, మేము ఖచ్చితంగా ఒక నెలలోపు అన్ని లోపాలను తొలగిస్తాము. బాగా, దాచిన బగ్‌లు వ్యాపార ప్రక్రియపై ఖచ్చితంగా క్లిష్టమైన పరిణామాలను కలిగి ఉండవు మరియు అవసరమైతే, వాటిని సాధారణ ప్రాతిపదికన సరిదిద్దవచ్చు.

డ్రైవర్లను కొత్త సాఫ్ట్‌వేర్‌కు బదిలీ చేసే పరిస్థితి యొక్క సంక్లిష్టత గురించి గరిష్ట అవగాహనతో, గడియారం చుట్టూ డ్రైవర్లతో పనిచేసిన టాక్సీ సేవల డైరెక్టర్లు మరియు ఫోర్‌మెన్ నుండి అమూల్యమైన సహాయాన్ని ఇక్కడ గమనించడం అవసరం. నిజానికి, ఫోన్‌లలో కొత్త ప్రోగ్రామ్‌ల ఇన్‌స్టాలేషన్‌ను పూర్తి చేసిన తర్వాత, మేము ఒక్క డ్రైవర్‌ను కూడా కోల్పోలేదు. మరియు వారు క్లయింట్‌లను తీసివేయని శాతాన్ని విమర్శనాత్మకంగా పెంచలేదు, ఇది త్వరలో సాధారణ స్థాయికి తిరిగి వచ్చింది.

దీంతో ప్రాజెక్టు మొదటి దశ పనులు పూర్తయ్యాయి. మరియు ఫలితం రావడానికి ఎక్కువ కాలం లేదని గమనించాలి. మానవ ప్రమేయం లేకుండా డ్రైవర్లకు ఆర్డర్‌ల పంపిణీని ఆటోమేట్ చేయడం ద్వారా, క్లయింట్ ద్వారా టాక్సీ కోసం సగటు నిరీక్షణ సమయం పరిమాణం యొక్క క్రమం ద్వారా తగ్గించబడింది, ఇది సహజంగా సేవ పట్ల కస్టమర్ విధేయతను పెంచుతుంది. దీంతో ఆర్డర్ల సంఖ్య పెరిగింది. దీంతో టాక్సీ డ్రైవర్ల సంఖ్య పెరిగింది. ఫలితంగా, విజయవంతంగా పూర్తయిన ఆర్డర్‌ల సంఖ్య కూడా పెరిగింది. ఫలితంగా కంపెనీ లాభాలు పెరిగాయి. అయితే, ఈ ప్రక్రియ అంతా తక్షణమే జరగనందున, ఇక్కడ నేను నాకంటే కొంచెం ముందుకు వస్తున్నాను. మేనేజ్‌మెంట్‌కి నచ్చజెప్పిందని చెప్పడానికి ఏమీ అనడం లేదు. ప్రాజెక్ట్ యొక్క తదుపరి ఫైనాన్సింగ్‌కు నాకు అపరిమిత యాక్సెస్ ఇవ్వబడింది.

కొనసాగుతుంది..

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి