Blog

How we built the Curfew Pass System in less than 6 hours

With the complete lockdown situation that the country faces now, the police department and the states are working hard, trying to control the public and to limit the chances of a community spread.

The novel coronavirus situation has put the whole national administration system in distress, where the officials find it hard to control and track the movement of people. With people wanting to go outside for essential services and some still having to go to work to support the essential services, the curfew pass issuing process would have become more chaotic if it was done manually. 

In light of this situation, GyroMinds team felt it was imperative and crucial to develop a simple digitized and automated curfew pass issuing process for the use of the administration and public. This could help government officials track the number of people commuting daily, and the routes they take. In an alarming situation of this kind, digitization and automation of the systems can reduce and streamline workload that leads to 10x efficiency. 

At GyroMinds, it is our commitment – to bring into action, simple and innovative solutions that can help with this contingency situation faced by today’s governments and administrators. We believe in democratization of technology and thrive in being part of the solution to the challenges the society is facing today. We strongly uphold the social ethos using ideas and initiatives that can bring some sense to these turbulent life situations. 

For us, corporate social responsibility is not just a norm, but a principle that we hold strong in all our relationships, respecting the responsibility and sustainability in every action. This has inspired us to build the perfect solution for this grave requirement in this hour of need.

It was really important for us to develop the software at lightning speed. We quickly evaluated various options and decided to go with Clappia as the best suitable platform for developing the software. Clappia is a no-code customizable solutions platform that allows you to quickly and easily create enterprise-grade customizable solutions and apps. 

Both the teams decided to set-up a war-room over Zoom, the next best thing to meet face to face in a conference room or a coffee shop! Zoom ensured we had a fast-paced seamless collaboration opportunity for our teams. We brainstormed and built the product in less than half a day. The diligence and the perseverance of the team has been so remarkable and so were the results, which were satisfying. 

As we were putting this solution in place, we initiated discussions with officials in governments and governing bodies. We used Twitter, Facebook, WhatsApp, email and every possible contemporary mode. We were aware that these days the administrators, bureaucrats and government officials are very tech-friendly, and by frequently using them they were up to date via such social media applications. 

Not all of our efforts were a success. Not all our attempts were reciprocated. We also knew that they were extremely busy working day and night, in their own war-rooms and ground-zeroes and were bombarded with harsh realities of these unprecedented challenges. But we were thrilled to be acknowledged and encouraged by some section, with whom we are continuing to engage and work towards exploring technological solutions for today’s evolving situation.

We are especially very proud to announce that the Assam Government has taken up the solution that we had offered. With some “localization’’ and “customization’’ to our quickly deployable solution.  Today, the Cachar district of Assam uses our CivilPass solution, a curfew pass without which commuting is impossible in the district, during the lockdown situation. 

The civilpass will generate a confirmation SMS with the pass number to the requesting citizen via email. The pass can be used either as a ‘personal pass’ or a ‘vehicle pass’. The starting and ending date & time of the journey must be reported correctly in the pass request. Any request which does not adhere to the basic rules of the government will be rejected. 

The requester will have to fill in the ‘cause of the travel’. The drop-down list makes sure that the public does not deviate from standard procedures and expectations. CivilPass makes it easier for the administration to manage and to adhere to the isolation and quarantine needs of a region, as specified by the government. With the extra step of allowing the requester to upload supplementary documents, this solution adds to one more level of validation, to review and issue the curfew pass to the public. 

At present, the need for such a solution has almost become basic and mandatory. The results are evident from the Cachar district (and others) who have implemented such tech solutions, to equip their city to handle such hassles and chaos in a better way, with minimum inconvenience to the public, and being sensible towards catering to the needs of their essential services. 

We see a large potential of such tech solutions to be deployed by different districts and different departments across the country, at this time of need. The police departments and the governments are trying their best to control the spread of COVID19 novel coronavirus pandemic, by taking proven and educated steps. 

With the inevitable situation that might appear to be forcing the public to go out for the basic needs, it is our duty to make the workload on the government and officers a little less by helping them with the pass issuance system which would otherwise be a strenuous task to handle the reality on the roads on hot sunny days. It is also helpful for the public who can apply for passes before they leave their home and commute safely without much anxiety. The only thing that everyone should follow is strict personal hygiene, social distancing, wearing face masks, regular washing and sanitizing of hands, and other things as recommended by authorities and medical associations. 

We strongly encourage and support agencies and institutions to come forward and embrace the latest technology solutions, partner with solution providers in a transparent manner and help the current situation, the society, that includes you, me and the world around us.

Let’s make it a little better for one another in this period of emergency! 

Guide to understand the Software Development Process

Many business people don’t fully understand the complexity of a software development process. It’s natural, since specialized books about development are read by developers and other IT people, and many others might still be referring to a software project as ”coding” or ”writing”. With better luck one might add ‘designing’ and ‘testing’. Quite inaccurate.

One can think of several metaphorical comparisons to describe software development, such as writing a book or building a house. Some of them are a good light in the dark, some are rather misleading. And while many people may argue whether creating software is an art, a science, or a precisely elaborated process, we’d leave that choice to someone else. It cannot be described sparsely. But we’ll try to give some descriptions and comparisons in a compact and clear way.

Do We ”Write” Software?

One of the common but rather vague things is comparing creating software with writing. Writing code, writing a book, and so on. You can start writing a book without a plan and go with the flow; with custom software development you cannot, unless developers do a rather small piece of software on their own – and for themselves. Moreover, an outsourced software project never starts with writing code.

Books and software may both have strict deadlines. But once a book is published, what’s written is written; rewriting is not an option. But software keeps being under constant improvement with new versions being released – it’s a natural thing. It’s almost impossible to get every need of your end user, catch up with business and technological changes once and for a lifetime. Books aren’t that dependent on changes; software is. But that’s good: your software, unlike a book, can’t become just another mediocre thing on the market, can’t become irrelevant and outdated. The processes are absolutely different: we prefer using the words ”create” or ”build” software rather than ”write”.

Do We ”Grow” Software?

”Growing” software on a good basis and a good set of documentation is possible to a certain extent. Like with writing, it’s not the best description one can suggest. It partially gets the incremental, agile nature of making and maintaining relevant software. But while ”growing”, the product is rarely tasty until it’s ripe, and the owner has to wait awhile.

The difference is, in software development there are different stages of being ”ripe”. Startups usually demand rolling a minimum viable software product on the market, getting feedback and making corrections and improvements. Each version is more ”ripe” than its predecessor, and it has to be ”watered” by support and maintenance, kept fresh amidst all the business and technological changes.

Do We ”Build” Software?

This one is considered by many specialists the closest way to describe software development, and we can agree with that. Construction works show the huge importance of careful planning, preparing, guiding the work, and performing it. The limits of software depend on how its architecture is constructed. The amount of works doesn’t grow gradually, since every building is different, and requires different approach. There can be a hospital, an office building, a school or a barn, and same physical size doesn’t mean equal amount of labour. Something is done with concrete, something can be done with wood and nails, and the latter doesn’t work well with complex and valuable software for mobile startups and other businesses.

  • Everything depends on the kind of a building you need. You need to figure out the problem the software will solve, and conduct the necessary preparations, do market research, gather info, etc. The more complex your software is, the more resources must be spent on planning. Bad planning – and the whole app fails, falls like a house of cards by the first gust of a wind.
  • Then you and your chief architect (project manager) can proceed to design that perfectly combines functional requirements and interface, resulting in proper user experience. Sure you want those who will work or live in the building to be fully satisfied with it. Same thing with software. One more good thing, once the design is approved, it’s way easier to give more precise estimations for the remainder of the construction (development) works.
  • When furnishing a house, you needn’t building things you can buy: household appliances and furniture. It’s much cheaper and way faster. Same with software: if your software development team is experienced, it will use all the available resources to stay away from writing needless basic things: there are lots of software toolkits, frameworks, classes, and libraries for that, each for a particular case. And if the team means business, they will easily find tools and technologies that will get your tasks done as fast as possible. Custom pieces of furniture take more time and efforts, but in most cases there are already existing pre-built ways to save your time and money without compromising security and efficiency of your software.
  • There will always be changes in functional requirements. Again, changes can painlessly happen within the planned architecture. Here we once more emphasize the importance of preparations – although this topic is worthy of a separate article. And we cannot go anywhere without mentioning quality assurance, which constantly checks different aspects of how the software works. What’s more – even a minor change involves testing, so that’s not the place to cut the costs (in fact, QA usually takes about 30% of the whole development time).
  • Optimization of software (inner walls of a building) is limited to the approved architecture, and here main expenses are all about labour, not materials. But what you receive in the end is better software and satisfied users. Meanwhile users speak their minds on what they would like the apartments to look – and one should never neglect these opinions.
  • One more thing worth noting – a good architect (or a good creative expert in software development) is always ready to consult you on things that should be solved immediately, and what can be left for later without breaking your plans or the quality of your software. You are most likely to not know the subtleties of the technical side – so leave making suggestions and explanations to your team. Unless you are an experienced IT person and you needn’t reading this article to get these insights.

As you can see, the last example is really the closest, and the list of similarities can be continued forever. But the ones we presented here should be enough to understand the process of software development, which is impossible without patience, expertise of the team, and mutual understanding.

Custom built software or Open Source

Every business has diverse requirements and needs to implement efficient software solutions which can improve work flow, processes and output. Most of the software in use is called Commercial Off-the-Shelf Software, also known as Packaged Software. This software can fulfill the requirements of many organisations but is not suitable to the meet the specific needs and expectations of every client.

Continue reading “Custom built software or Open Source”

The Importance Of Software Testing

What Is The Importance Of Software Testing?

There is an entire phase in the SDLC dedicated to software testing. Traditionally, it’s done after the developers have finished building the software – it’s handed over to the testing team to perform tests on it. This is, in my opinion, the most important part of the SDLC process.

The reason it’s so important is that it is the major factor in getting good quality software. Developing software that works and works well is the ultimate aim of a project, and the testing stage is where this is done.

The software testing phase can be broken down into smaller stages, each of which have their own importance:

Unit Testing – testing each component of the software individually, to check that it works correctly in isolation.

System Testing – testing the entire system as a whole, ensuring all of the components work as expected.

Regression Testing – testing the entire system against a pre-defined list of tests, to ensure the new changes don’t impact existing functionality. This is important for upgrades and updates to software.

These are the main types of software testing and each of them are important. I believe there are three main reasons that we do software testing.

Software Testing Results In Less Maintenance

The aim of software testing is to ensure good quality software. Good quality software means it has less defects or issues, it works well, and does what it needs to do. When you do software testing as part of a development project, you are aiming to pick up and find all of the issues in the system before it is release to the end users.

In an ideal world, the developers will be creating software that works first go, and does not have any issues. However, this is not often the case – bugs appear in the system and the software testing phase is there to pick it up. If it’s found before the release, that’s great. If it’s found after the release, it means that time will need to be spent finding a fix and performing more testing on it – all while the end users are using the software.

The time taken to fix defects after the software is released is significantly more than during the testing phase. This is because the fixes need further testing, and need to align to any maintenance releases or other schedules that the organisation has set up. Getting it right the first time when you release it is almost always the preferred approach.

Good Software Testing Results In Increased User Morale

As mentioned above, fixing the bugs in the system before the release is preferred. Another benefit of doing this is that the user morale and confidence in the software is increased. Why is this?

Well, let’s say Project A has completed but software testing was not done very well. The software works, but not very well, but is still released to the users. They start using it, and even though it does some things well, there are still outstanding issues so some parts don’t work as expected. This results in the users getting frustrated with the tool – which is not a good thing for the organisation or the project team. The defects may eventually get fixed, but the reduced morale from the users will take time to heal.

Alternatively, Project B has completed. They have spent more time on software testing and when it is released, it has far less defects. It has taken longer to produce, due to the increased focus on testing, but once the users have it, it will work correctly and they will be happy with the software.

The testing effort and decision may be impacted by the organisation you work for, and other factors, but the benefits to user morale are high.

Software Testing Matches The Product To The Requirements

The final reason software testing is important is that it is used to match the software to the requirements.

Software is built around the user requirements gathered during the analysis phase of the project. The analysis phase defines what the software is supposed to do. The developers aim to build from these requirements, but it’s the testing phase that checks that these requirements have been met.

The testing is done against functional requirements – such as expected behaviour and what needs to be done. It checks that the software does what it supposed to do, and that nothing has been done incorrectly or left out. It also checks non-functional requirements – things such as load time and other performance measures.

What If We Didn’t Do Software Testing?

One question people might wonder, is what if we didn’t do software testing? What if the developers just created the software and released it? That is one option – but I don’t think it’s a very good one.

It would rely on the developer actually creating low-defect software – which isn’t very likely. All developers (myself included) think that their software is bug-free, but in reality, issues are always found.

Releasing the software without testing will mean there is a high risk of issues being found, and the software not actually working. It would waste a lot of user time and effort when using it. It may actually result in more serious issues, such as security breaches, data loss and corruption.

In summary, the importance of software testing can be attributed to three areas – less maintenance, increased user morale, and matching to requirements. It results in high quality software – which should be something all of us are aiming for.

Common mistakes of the first startup project

After I ran into Helen at a restaurant, I realized she was just office pretty organic growth, and anti-pattern, put your feelers out. High turnaround ratecircle back. Open door policy we are running out of runway yet we need to socialize the comms with the wider stakeholder community.

Continue reading “Common mistakes of the first startup project”