Coding Guidelines: Programmer’s Daily Bread and Butter

As we work in startup, we are under time pressure to release a lot of new features on time, features which do not have well defined requirements and the complexity of those features is often underestimated and we end up taking a lot of shortcuts / adding hacks to release such time sensitive features.

This may work for a short time, but over the period of time we realize that the same shortcuts that you took to release features quickly are now slowing you down. You can not scale and add new features on top of it, even if you do, they become quite unstable. In this situation you might want to take a step back and revamp/refactor you base system.

One of the easiest things that you can do to avoid this situation is follow coding guidelines.

Coding Standards

Well, what according to you is a good code? The simple definition could be: if it can’t be understood, maintained and extended by other developers then its definitely not a good code. The computer doesn’t care whether your code is readable. It’s better at reading binary machine instructions than it is at reading high-level-language statements. You write readable code because it helps other developers to read your code.

Naming conventions:

As the name suggests, it is a simple concept where you follow a specific naming conventions across teams. This becomes important when your team is growing and are solving problems on daily basis and pushing a lot of code every day.

camelcases vs underscore

This helps a lot when your team becomes big and a lot of developers are working on the same code-base. If you follow some fixed patterns while defining classes/functions/variables names, it becomes really easy for fellow colleagues to understand your code. This directly impacts delivery time taken by a developer to build/modify a feature on top of existing code. For example, let us suppose you want to define a time-stamp field in a database table, how would you name it ? If you have a fixed pattern like a “action_ts” or “action_at” for giving names then you can easily guess what could be the field name in the schema. If its a created time-stamp then it could be either “created_at” or “created_ts”. You do not have to go and check every-time you writing any logic over different database tables.

Function/Module/API writing (Size and Purpose)

Simplicity and readability counts. It’s always better to write to concise code than a messier one so that if any other developer is also looking at it who has no idea, should get what exactly it is doing. Not more than max 10–15 lines. Jenkins is considered as one of the greatest implementations, and has average function length of 2 lines.

A function/module should only do ONE thing and should do it NICELY. By following this, code becomes modular and it helps a lot in debugging. You can solve the problem better and debug faster when you know where exactly it’s coming.

When you are developing features over an established products, more than 50% times, new requirements are of the nature which you can build on top of existing code. In such cases, you can ship those requirements really faster and stable if existing code-base is modular and stable. Writing library functions a savior. There are countless advantages of writing a library code. It avoids code repetition, no surprises when it comes to response formats and of-course code re-usability.

Exception/Error Handling

Unknown errors are real pain in developers life. It’s always better if you know probable exceptions and errors in code in advance. But that is not the case always. Irrespective of all this, you definitely do not want your end-users to see unexpected errors on their screens.

When you have different micro-services and bigger development teams, if you follow standard response formats for across APIs and standard exceptions then there will not be any surprises in production. You can agree upon one format across all the services. Every API can have certain ‘response_data’ and standard set of error-codes. Every Exception will have an error-code and a message. Message could have variation viz, tech specific message and user facing message.

Writing test cases:

If you want to have a good night sleep, then you better have thorough test cases covering almost all aspects of your code. The best way forward with building test cases is at requirement stage only. Whenever a requirement comes, products managers discuss it with developers as well as QA. Both teams start preparing for possible use-cases and test-cases.

A testing unit should focus on one tiny bit of functionality and prove it correct. Each test unit must be fully independent. Each test must be able to run alone, and also within the test suite, regardless of the order that they are called. The implication of this rule is that each test must be loaded with a fresh data-set and may have to do some cleanup afterwards.

Automation plays an important role here. What else is needed for stable product where you have all test cases covered and running at intervals automatically, giving you a report of the all functionalities. Also, whenever you are adding/modifying code, you make sure either you write new test cases or modify existing ones.

coding

Code Reviews:

This one thing save lives, trust me! Every team can benefit from code reviews regardless of development methodology. Initially it takes time if you do not have a procedure setup of doing code reviews, but eventually it becomes a habit. Code review should be one of the core development steps.

Code review generally is about:

  • Does the new code conform to existing style guidelines?
  • Does the written piece of code covers all the use-cases specified in the requirements and has relevant test cases written ?
  • Are the new automated tests sufficient for the new code? Do existing automated tests need to be rewritten to account for changes in the code?

There are several advantages of this process such as –

Code reviews make for better estimates: Estimation is a team exercise, and the team makes better estimates as product knowledge is spread across the team. As new features are added to the existing code, the original developer can provide good feedback and estimation. In addition, any code reviewer is also exposed to the complexity, known issues, and concerns of that area of the code base. The code reviewer, then, shares in the knowledge of the original developer of that part of the code base.

Code reviews mentor new joiners: Code reviews help facilitate conversations about the code base between team members. During these conversations, team members share their views and new alternatives of doing things.

Code reviews take time: It’s an incremental process, where it takes time initially but as your code-base grows, it ensures, you are always pushing verified and tested code.

Hidden truth about code reviews: When developers know their code will be reviewed by a teammate, they make an extra effort to ensure that all tests are passing and the code is as well-designed as they can make it so the review will go smoothly. That mindfulness also tends to make the coding process itself go smoother and, ultimately, faster.

As a fast growing company our self, these set of guidelines have helped us a lot in shipping stable features on time and helping to increase a healthy learning environment.

Source:- Capital Float’s Medium Blog

More Related Posts

Card image cap
Credit changes hands as Digital Lending takes shape

A wave of change is sweeping across the nation, transforming accessibility of credit at an individual and institutional level. As stated by the World Bank in 2014, nearly 47% of Indian adults are disconnected from formalized financial systems, increasing their dependency on informal credit channels. The nature of these informal channels and the environment fostering their sustenance make these modes of funding exorbitantly expensive. These channels typically provide immediate funding but debilitate the borrower’s sustainability and competitiveness in the long-term. Usurious rates of interest, loans terms disconnected from business fundamentals and delayed-decision making shackle entrepreneurs armed with ambition.

The apprehensions involving credit-access notwithstanding, SMEs find themselves lucratively placed in the timeline of the Indian economy, wherein Governmental and capitalistic forces are aligning in order to further SME progression in the country. Centre-led initiatives and evolutionary processes set up by tactful corporates are becoming building blocks to facilitate economic development through SMEs.

SMEs central to India’s economic development

The Government of India has identified the significant role SMEs play in shaping and developing the economy. The ‘Make in India’ initiative was launched last year to attract foreign and local investment to the country’s manufacturing sector. SMEs are required to participate actively in making this initiative a success. The pro-manufacturing stance of the Government provides these businesses with the opportunity to scale and grow at an accelerated pace.

India destined to become an e-commerce superpower

Similarly, e-commerce companies in India are in the golden phase of technological advancement. According to Goldman Sachs, India’s e-commerce market will cross the $100 billion mark by FY20[1]. A study by PWC indicated that the e-commerce industry is expected to grow from $16.4 billion in 2014 to $21.3 billion in 2015[2]. Alibaba.com, the B2B division of the world’s largest e-retailer Alibaba Group recently announced that India is the second most important market for the company globally [3]. A whopping majority of the e-commerce space presently comprises of e-tailing and e-travel companies. Alibaba is likely to provide B2B companies the much-needed platform to establish their presence.

Credit now just a click away

Several factors could hinder SMEs from expanding at a geometric rate. Possibly the most critical of these is credit. Companies are queuing to alter the perception and approach to credit, with many organisations attempting to transform finance from a function to a service.

A recent article on YourStory mentioned that over 500 financial technology start-ups in India have received $1.4 billion in funding since 2012[4]. These are not merely in the credit services sector but also include companies in the mobile payment services sector. With 90% mobile phone penetration in the country and smartphone sales expected to reach 500 million units in the next five years, digital engagement with consumers will be higher than ever before.

Pioneer with purpose

Capital Float, the pioneer in digital lending for SMEs in India, is spearheading this digital revolution. We understand the crippling effects collateral-based loans have on business progression and the inherent anxiety they cause. Our expertise in big data, decision sciences proficiency and technological prowess gives us the edge to provide specially tailored financial services to small and medium businesses across the country. Competitive interest rates make us relevant and digital platforms increase our reach. Gone are the days when SMEs toiled to acquire credit. Digitized processes have bridged the gap between the borrower and capital, the two now being separated by a few clicks of the mouse.

Digital Lending will gradually replace conventional credit channels. In response to the altering financial landscape, traditional organisations are revisiting their work-flows and are attempting to revitalize processes to become felicitous options.

SMEs are evolving at a rapid rate and it’s not surprising that access to finance too is changing simultaneously.

Author – Rajath Kumar, Marketing Manager, Capital Float.

[1]http://economictimes.indiatimes.com/industry/services/retail/indias-ecommerce-market-to-breach-100-billion-mark-by-fy20-goldman-sachs/articleshow/49532128.cms
[2]http://www.pwc.in/assets/pdfs/publications/2015/ecommerce-in-india-accelerating-growth.pdf
[3]http://articles.economictimes.indiatimes.com/2015-12-08/news/68865727_1_indian-smes-alibaba-com-indian-sellers
[4]http://yourstory.com/2015/10/digital-finance-revolution/

Oct 24, 2018

Card image cap
Why Online Vendors Should Apply for Capital Float’s Online Seller Finance

Are you an online seller looking to optimize and grow sales? Given the highly competitive nature of e-commerce, it’s always advisable to have a cash flow option handy for successful expansion. Furthermore, you wouldn’t want to lose out on market opportunities due to the lack of convenient financing options. And that, is where Capital Float comes into the picture.

In the cut-throat world of e-commerce, having a lucrative financing option at the right time is likely to translate into a significant competitive edge. There are three key occasions, wherein, an online seller may require rapid financing:

  • Respond to an increase in sales by purchasing inventory
  • To be prepared for seasonal fluctuations in revenue, and bridge short-term gaps in liquidity.
  • To widen product portfolio by diversifying into other product segments or to widen reach by operating on a new marketplace

Here are a few compelling reasons as to why you must apply for Capital Float’s Online Seller Finance to maintain your competitive advantage in the business:

  1. Flexible loans that are customized to your need

The exciting features at Capital Float’s Online Seller Finance ensure speedy expansion for your business in a simple manner. As an e-commerce vendor, you can raise funds from INR 1 Lac up to 1 Crore, depending upon your cash requirements. Furthermore, we provide you with effortless repayment modes for a loan tenure between 90-180 days. Our partnerships with multiple, leading e-commerce platforms enables you to acquire our e-commerce seller loans to operate and expand across different online marketplaces.

  1. A quick, hassle-free process

        a) Minimum documentation

To apply for our eCommerce seller loans, you need not furnish a heavy stack of documents. All we would need from you are your bank statements of the last six months and KYC documents credentialing you and your business.

         b) Zero collateral

We provide unsecured loans, meaning we don’t take collaterals as guarantee for loans. You won’t be asked to pledge your property or vehicle to avail a loan from us. Our loans are bereft of the anxiety that are often associated with loans against collateral.

        c) Loans against marketplace sales

Our motto is to help businesses to ‘Break Limits’. We understand that many a time, businesses with potential are hampered by the lack of finance. We are committed to change that. You can avail Online Seller Finance on the basis of your proven sales on e-commerce marketplaces, receiving up to 150% of your average monthly sales.

  1. Apply anywhere, any time

While financial institutions like nationalized banks, private banks and traditional NBFCs not only take weeks to sanction a loan, but they also have tedious application procedures, Capital Float ensures immense flexibility in the process. We have designed a handy mobile app through which you can apply for a loan from anywhere, as long as you are connected to the internet. The four-step online application procedure is not only user-friendly, but allows you to raise funds without losing on precious time.

External financing is an excellent tool for you to grow as an online vendor and keep operations smooth. Capital Float’s sole aim is to bridge the current gap in the market with innovative and flexible credit products for online enterprises like yours. That said, Online Seller Finance is just the product you need to fulfill your finance requirements in a smooth, hassle-free manner.

Wait no more. Take your online business to the next level with our online seller loans. Click here to apply.

Oct 24, 2018

Card image cap
Bharat QR vs POS Machine: Which One Is Better?

FinTech is disrupting the very fundamentals of money management the world over, and India is no exception. With the Prime Minister’s focus, especially, on making India “digital”, a number of programs and schemes have been launched. In fact, many of the schemes have taken a cue from the private sector and have upped the innovation game to deliver a comfortable and convenient money management experience. From the point of sale (POS) machines to merchant cash advance to e-wallets, we are seeing a plethora of FinTech products and services change the way we pay. And this phenomenon is occurring across industries, whether it is the fast moving e-commerce sector or the heavy-duty manufacturing sector.

Consumers are at the receiving end of these changes and need to fast adapt to the new payment means. First it was a revolution of the plastic money, with cash bring replaced by credit and debit cards. This demanded the use of other paraphernalia, such as the point of sale devices at the checkout counters. Now, with niche FinTech innovators such as Paytm and MobiKwik, even the point of sale devices are not required. It is just scan and pay. The government has taken this ease of payment a step further by bringing to light the Bharat QR payment method.

What is Bharat QR 

Bharat QR is a payment process driven by a Quick Response Code or QR code. A user who has the Bharat QR-enabled bank application on his or her mobile phone can make a payment quickly, easily and safely. The best part is that scanning the machine-readable optical grid translates the bank account information without your having to swipe or hand over a card, making it extremely convenient! This is because the QR grid stores the person’s bank information. This is similar to using a Paytm or a FreeCharge or a MobiKwik e-wallet, the advantage being that in Bharat QR, payments are linked directly to your bank account rather than to a separate e-wallet. There is thus no hassle of transferring money to your Paytm wallet or MobiKwik wallet. Alternatively, the user can also access Bharat QR through the Bharat Interface for Money or BHIM universal app, which is a UPI developed by the National Payments Corporation of India (NCPI).

Currently, Bharat QR is available on the mobile applications of 15 nationalised and private banks, namely – Axis Bank, Bank of Baroda, Bank of India, Citi Union Bank, DCB Bank, Karur Vysya Bank, HDFC Bank, ICICI Bank, IDBI Bank, Punjab National Bank, RBL Bank, State Bank of India, Union Bank of India, Vijaya Bank and Yes Bank. It is also linked to VISA, MasterCard, American Express and RuPay cards. Its scale is expected to increase in the coming days.

A look at Point of Sale

Bharat QR is thus a leap ahead of the Point of Sale payment mechanisms, which were the mainstream payment devices used at most commercial and consumer locations such as shops and restaurants. The Point of Sale or POS terminal is a computerised replacement for a cash register that can process credit and debit cards. A customer swipes their card in the machine and enters the PIN number to verify and complete the transaction. The POS is installed at the merchant location, mostly by the bank that they associated with. Not only does the merchant bear the cost of the device and the installation, but they are also compelled to pay the issuer bank a merchant discount rate (MDR). This is a percentage of the transaction value. In a bid to boost cash transactions, the RBI had rationalised the Merchant Discount Rate (MDR) for debit cards. Accordingly, a cap has been introduced for debit card point of sale payments, capped at 0.75% for transaction values up to Rs 2000 and at 1% for transaction values above Rs 2000. However, it continues to be an expense for the merchant, and is often passed on to the customer by increasing the selling price of the product or service. Often, buyers may not even realise that they are being charged extra for the MDR.

Other payment instruments: e-wallets

The first leg of replacing the point of sale was the onslaught of e-wallets such as Paytm and FreeCharge. Although they operate on the same principle as that of scanning a QR code, they are somewhat restrictive because they require both the transferor and the receiver to have the same e-wallet installed on their smartphones. The need was thus felt for a faster and easier money transfer mode, which caused the Bharat QR to come to the fore, thanks to the design and development by NCPI.

Advantages of Bharat QR

The Bharat QR is a step towards financial freedom by means of cashless transactions. It relieves one from the hassle of swiping at the point of sale or of facing detection troubles with one’s plastic money at the point of sale. Because there is no requirement of a physical use of a card, the risk of data theft or security issues through tampered or cyber-compromised point of sale devices is also minimised. Costs are reduced from both the consumer and merchant viewpoints, since the need for expensive point of sale devices and their MDR charges is eliminated. A significant advantage of Bharat QR is its ease of operation; i.e., the buyer and seller need not download the same payment application to make the payment happen, unlike Paytm. This is because the Bharat QR is directly linked to a single bank account. It poses a logistical relief, since businessmen now need not shuffle between different wallets and track their credits and debits – a tedious task. Moreover, the money transfer happens instantly because Bharat QR uses an IMPS service. Bharat QR truly has the potential to create a FinTech revolution.

It is clear that Bharat QR paves a convenient way ahead for paying and receiving funds. It is a great idea to get started on this universal tool. As a merchant, you must register with your banks to get authorised to receive payments through Bharat QR. Link your bank account to the BHIM app and generate your unique Bharat QR Code, take a print of your QR code and stick it onto your payment counter to get started.

Oct 24, 2018