Category Archives: Software Industry

Software Product Development: 10 Steps to Find the Right Partner

Software Product Development

A groundbreaking idea is all you need, but is it truly so? There are way too many technical and time-related challenges that befall the way. Then there are tighter operating budgets & the dreadful smart competitors. What if you do not have an in-house team for Software Product Development to bring your ideas to life? Or if you would like to get a product developed by professionals who are experts in both domain and technology – would it cost a fortune? Wouldn’t it be a dream come true if companies could materialize all the ideas they had all by themselves?

In today’s fast-paced world driven by technology, having a product development partner is the best bet for businesses. Not only does it allow existing internal teams to focus on the core business and products but also allows parallel innovation, brings in external benchmarked processes, ideas into the development process itself, helping your product get refined.

But how do you decide if your software product development is in the right hands? What are pros and cons of having an external partner? How far can you trust them, what are the questions you should ask them and more importantly, what are the questions you could ask yourself before you get started! In this white paper, we discuss the freakiest challenges of business owners and a step by step approach to effectively research, evaluate and join hands with a product development partner best suited to their business.

The Core Challenges Persist

Choosing a software product development partner can be intimidating at times, primarily because of the difficulties and challenges you can face in finding them and getting to trust their capabilities and delivery capacities. These challenges can be categorised into 3 major buckets -Strategic, Operational and Technical.

Strategic Challenges

An ideal product development partner starts the ground work with you, and that ideal-ness is not very common. Launching a new product or service to your audience requires a lot of planning and careful calculation of things that may go wrong. Businesses tend to ignore the strategic approach and get straight to execution and most product developers would want to get engaged straight into the revenue generation cycle.

The most common strategic roadblocks that enterprises face are –
• Lack of visionary guidance on the development partner’s end
• Unawareness of best practices and domain expertise
• Minimal of or no agreement policies regarding involvement of customer teams
• Limited or ignored post development support

Operational Challenges

In a perfect world, a software product development partner should be able to unravel their grasp on the SDLC (Software Development Lifecycle). Businesses tend to plunge into costs and deadlines too soon totally ignoring the collaborative approach, time mapping, circumstance analysis that is crucial to draw project outlines.

Some of those notable operational negligence factors are-
• Unclear nature of contacts
• No proper disaster consideration
• Shallow SLAs and IPR policies
• Not gathering enough proof of operational excellence
• Not thinking scalability through

Technical Challenges

Even after clearing all of these scrutiny levels discussed above, another challenge can be that the product development vendors favour the technologies they have strong expertise on and push the clients into believing that those technologies are the best fit for the product being developed. This is not just scary but unethical as well. The right infrastructure decides the fate of a product development project in an instant. There’s no validation for the said partner’s team size, claimed certifications and infrastructure. The only way to find that out is nosing every little detail they provide and losing valuable time.

Technical challenges can be of various kinds-
• Lack of claimed agility and availability
• Retention issues despite larger team capabilities and size
• Outdated technology (licenses, hardware)

Having laid out the challenges let’s discuss a step by step procedure of how businesses evaluate a product development vendor to eventually partner with them.

Choosing the Right Software Product Development Partner:

1. Answering Crucial Questions First

Time
Urgency is good, haste is not. The vaguest assumption made frequently while outsourcing software product development is the correct assessment of estimated time. Everyone one talks about it, but no one means it. Everyone takes delays and shifting of deadlines as a normal occurrence. Despite the norm, a vendor who establishes realistic and un-compromised deadlines shows early signs of a perfect partner for product development.
Decision makers must look out for time-related seriousness while evaluating various vendors. Asking questions about delivery deadlines and putting those deadlines on paper gives the idea owner a stronghold. Furthermore, time can be translated into a monetary asset to create a solid foundation for subletting your development projects.

Cost
Price is always a deciding factor in any purchasing decision. While searching for a product development partner, the pricing might get very competitive among industry players. It’s been truly said – Pay Peanuts, Get Monkeys. Even though budget needs to be controlled, businesses should be a little liberal and not look at pricing alone as the key factor while selecting their vendor. In software development projects, the prices provided are almost ballpark ones with an expected deviation of about 15%.
Laying out the end to end scope of work beforehand with reasonable buffers can save additional estimates and unruly demands of a vendor mid-project. Another important factor while finalizing a product development partner is fixing the percentage of inflation. The best way to keep costs under your control is clearly communicating about an open pricing model and a detailed discussion on costs that might appear post signing the contract.

2. Seeking Technical Expertise

Apart from deadlines and price, technical expertise plays a crucial role in determining the right product development partner. Does your prospective partner analyse and benchmark technical best practices? Do they value a sustainable and scalable architecture? Do they quote success stories with a leading technology? If the answer is yes you’ve found the ideal partner.
A product development partner must be technologically sound and equipped to take over critical situations ad gaps. They should have the knowledge of involved tools and mechanisms at their fingertips, and their workforce must have at least a couple of technology translators and demonstrators to answer any query in the discussion phase, helping businesses make a well-informed decision.
A software development service provider must be equipped with a mature talent pool comprising of knowledgeable engineers and sharp team leads and managers. Not every product development partner will have the honesty to declare but businesses must always place keen interest in finding how many projects the vendor is running at a certain point and whether they have the technical capability to provide exclusive attention to your projects. This can only be possible if they dedicate selective technical experts as full-time caretakers of your business’ project.
It is also imperative to figure out the health of the vendor’s infrastructure including but not limited to their server specifications, telecom bandwidth, network security, backup and, disaster preparedness. It is always safer to keep track of these minute technical details and ensuring that their systems are robust enough for optimum delivery.

3. Determining Business Expertise

The biggest most common flaw in the world of technology is that while we select a product development partner we focus on cost, timeline, technology and side-line the most critical element involved, the line of business. It should be of utmost priority for businesses to figure out whether or not the vendor has the familiarity with your business and relevant domain expertise.
Decision makers must invest time gathering information on skillsets and the company’s in the particular niche that the business operates in. Supported customer references, testimonials, and case studies can determine this competence and help businesses qualify the best vendor. While determining the business excellence, it is also advisable to conclude the speed at which the organisation updates itself to adhere to business changes that affect their customer. A vendor that looks for the watering can when the cat’s tail is on fire can’t do well to your business.

“So Far, So Good? The Full Case Study can be downloaded by clicking Here. No Email ID’s/phone numbers required”

4. Foresee & Forecast

There a steep possibility that a product you have in mind already exists or a similar product is being built elsewhere. Competing is healthy but trying to sell a product that’s not one of a kind has its own downsides. Assessing your prospective partner on those lines can do wonders.
Are they adding value? Are they intuitive enough to get into details of the market? Choose a vendor that can reduce time to action when you have the need to ramp up and add additional features, build differentiation for you and is open to feedback and alternatives. At the same time, business owners must analyse the risks that may follow if the project needs to be ramped down.
Developing a product is a long time affair comprising of multiple stages and phases. In every stage, the control must always be with the core business stakeholder – you. Asking questions pertaining to transparency, communication processes and reviews help in preventing problems in the future.
Product development is a long time affair. It contains numerous stages and phases that are required to be managed equally, and therefore, a partner must have a mature process and a competent management that regularly communicates progress and follows sound relationship management that practices transparency. Maintaining a constant comfort zone is important too, ask and understand the processes that suit your business and see if your vendor is comfortable advocating them.
As your business grows or undergoes divestitures, said product development might switch priority levels. Ensuring that the product development partner is able to provide you scalability options right from the beginning can save monetary, time and resource losses to both the customer and vendor. For example, there can be scenarios where your legacy applications are a good fit for new product development and there can be a potential cost saving. If your vendor highlights such avenues voluntarily, they’re most likely to be a great partner.

5. Protecting rights and competitor leaks

Businesses often face situations where an ideal product development partner is also a partner to a competitor organisation or is pitching similar clients. How do you guarantee the protection of your intellectual property and that your ideas are not being exploited by the vendor for gains?
Protecting and respecting your time, monetary and intellectual sources are the pillars of a successful partnership with an ideal product development partner. In popular product development destinations such as India, product development companies refrain from keeping intellectual rights of the products keeping the product immune from the competition.
Signing a non-competing agreement is another critical measure necessary before finalising a product development partner. It should be utmost priority of businesses to sign a clear and strong non-competing agreement. This diminishes the possibility of the partner developing similar product anytime in future, anywhere in the world. It is also advised to backtrack the vendor’s earlier engagements for a sample IPR.

6. Quality Assurance & Benchmarking

Along with technical and domain expertise, safeguard your ownership and rights with the partner you choose to develop with. They must have a healthy quality assurance system in place and they should be able to deliver it with utmost agility.
Quality Assurance can be a very vague phrase with varied meaning. In the matter of technology ask your product development partner the following questions:-
• Can they provide a thorough quality policy statement?
• Do they have the manpower and tool competency for frequent testing?
• What are the projected tests and when will they be performed?
• How much do the teams rely on automation and if there is any human intervention?
Not compromising with quality is a sign that the vendor does not undervalue customer satisfaction. Keeping up with industry quality standards is one thing, taking one step ahead and embedding quality assessments in every step of the product development depicts excellence.
It is preferable to choose a product development partner that can promise strong communication bridges not just with you but also internally. Not seeing QA as an end of lifecycle job but keeping it on the checklist frequently throughout various stages is another great trait of an ideal partner. Testing procedures must be carried out at every stage of the development, this demonstrates transparency, responsibility and an assurance of faster delivery turnaround as testing and quality feature assessment is deep rooted in their processes. The level of detail provided by a vendor during trials can get businesses a glimpse of the level of importance given to quality.
Undertaking code reviews, proper documentation, developing pseudo codes for pre-implementation reviews are some details that can be added to the quality assurance agreement.

7. After- Sale Support and Services

Imagine a scenario where you hire a development partner to build, test and deliver the product and then you have to find a whole other unit for product maintenance and support! Hassles as these can be sorted if enough research and communication goes into the vendor selection process.
It is not only nicer but essential to choose a partner who provides end-to-end product lifecycle management. Multivendor engagement is always a hassle, inconvenient and time-consuming.
No matter how careful you are while selecting a development partner post-delivery disruptions are a common occurrence. No matter how much QA and testing the product has gone under when it faces the real life troubles in the hand of customers there are bound to be problems you may not have expected.
Making sure that your partner is readily available, easily accessible and offers seamless troubleshooting services makes for a win-win situation. Setting up an expert help desk if not assigning a permanent resource to your case is a great practice and demonstrates technical leadership. It is also imperative to keep in mind the occasional maintenance, updates and, upgrades long after delivery.
That’s not the only reason, retaining the development partner comes with other perks. Be it migrations, additional deployments or version upgrades the initial minds that have brought your product life understand it the best.
To assess your partner on these lines evaluates their alliances. Check whether or not they are associated and validated by global leaders, tool vendors, third party influencers and more. These recognitions from leaders not only endorse a prospective product development partner but also assure support from renowned brands.

8. Workforce Management

Any organisation is represented by its people and is as strong as its individuals are. Analysing the team structure of a prospective partner for product development is an important step. The vendor must have an equilibrium between the number of engineers, testers, and developers at various stages of the development life cycle. If the structure of the existing team allows a blend of skills and desired headcount, check whether the partner is open to on demand augmentation if and when needed. This will help you attain a cost optimized model that is aligned with business needs and will save costs incurred by a process that does not allow variable hiring or engagement.

Before beginning any discussion, save yourself time by asking the simplest question first. What is the number of employees at the prospective partner company and always go for a larger headcount number than your estimated requirement?

Conclude the team’s strengths by examining the claimed skills. Interview teams if needed to double check if the people assigned to your project complement your needs and have the required experience. Also request for information on the model of internal training, learning and development programs

Something that might seem like none of my business kind of a situation is the organization’s employee attrition rate? High attrition rates not only hamper continuity but also lead to potential seepage of information. The nature of employment of the team members should also be taken seriously and separate bonds must be designed for contractors.

9. Infrastructure Robustness and Availability

The foundation of any software product development project is the software and hardware infrastructure of the potential partner. Checking licenses, availability of hardware, quality of equipment is a must consider factor before assigning a project.
Operating systems, databases, servers and even table top systems must be in place before engaging the vendor, if not, businesses must probe their capability to arrange those before the project is embarked upon. Understanding the Networking infrastructure and enterprise security is another important part of the deal because that determines remote delivery and offshore operations.
Some other considerable factors to address are integration with other custom or packaged applications, licensing fees and hardware/infrastructure to support your technology choices for the product development. Decision makers should not hesitate before asking for proof of concepts, infrastructure architecture and basic technology tests before making a purchase decision.
You must remember that a robust infrastructure is a key to help ensure an ideal atmosphere for an engineering team to work on and deliver optimum results.

10. Reputation, Location and Others

Like any other business, the reputation of a company thrives on market demand and long-term relationship with the organization with its customers. Talking to existing customers does no harm and gives reliable feedback of a product developer. Testing out products launched by the likely development partner is another testament to their performance and experience.
Where your product development vendor is based is a vital element too. The laws in each country are different and it is important to have regulatory compliance in case you are outsourcing your project to a remote location. India has a huge percentage of overall product development companies in the world because of access to a huge talent pool, experience in software product development for almost three decades and more. Most importantly, India has traditionally been a cost effective market and continues to retain the cost arbitrage.
Most product development projects are contracted out and a common language to communicate plays an important role in the success of a project. And it is not just the literal meanings of the words used in a sentence but also the understanding of the tone of email/conversation which can make a big difference. Ensuring that the location of your dev partner is comfortable and adept in your desired mode and language of communication goes a long way in helping you communicate better.

Conclusion

An ideal Software Product Development partner can translate your precious idea into a success story or a lousy failure. Unhurried precautions and finding developers that don’t pendulum among clients for monetary gains can take your ideal product a long way.
Focus on engagement flexibility rather than lower costs and choose wisely between augmentation and contracting out your project to make informed decisions with carefully calculated risks. Weigh profits against long-term engagement and seek systematic approaches over dramatized timelines.
Finally, look for a development partner who builds business complementing applications along with technical masterpieces and is backed up by rich expertise and success in real life use cases. An ideal partner addresses your customization needs but never compromises on quality compliance and that’s the partner you need to go for.

About Mindfire Solutions

At Mindfire, over the years, we have helped enterprises, ISVs and product owners develop great applications and products leveraging our expertise, partnerships and experience which have been hugely successful. We specialize in software product development and have delivered commercial-grade systems repeatedly. We follow agile methods and believe in collaboration more than documents to get new stuff developed. We are focused on getting it done, together with clients. With over 600 excellent team members we do only one thing – Small Team Software Development – and we do it very well.
Get in touch with us for a free consultation to know how you can leverage our expertise to get your product development right. You can also opt for our limited period Risk-Free Trial Offer.

You can download the  complete White Paper by clicking on the link.

3 Trends in Software Developer Roles – And One to Avoid!

 

Three roles have been evolving in software development over past few years.

1. Devigner
The devigner is a person who packs a pretty punch. She is a graphic designer, UI designer, UX developer, server developer and database developer all rolled into one. Continue reading 3 Trends in Software Developer Roles – And One to Avoid!

How Do You Raise a High Bar? – Fresher Salary Again!

 

(Update Sep 20:

IMPORTANT NOTE ABOUT FALSE CLAIMS IN HIRING:

Mindfire Solutions does NOT employ services of any external organization for our recruitment process, in any role at any stage. We do our OWN hiring COMPLETELY and nobody else – no placement consultant, no recruitment agent, no headhunting firm, no campus coordinator, nobody else at all – is involved in any way at all.

Please do not believe people making false promises to place you at Mindfire Solutions, or to get you an interview slot, or influence hiring in any way – and definitely do not pay anything for such claims. If you do believe and interact with them, it is at your own risk and loss. Mindfire Solutions is not responsible in any way for such interactions.)

 

Mindfire has been elevating its quality and standards of work, of tech talent, continuously over the years.

We receive tremendous interest from thousands and thousands of aspirants, and create opportunities for as many people as possible. We are humbled by the response we have received to our package/offer for software engineering freshers in 2014, and appreciate everyone’s interest in joining Mindfire. Thank you from all of us, from the bottom of our hearts!

But we are not done.

We take another significant step today; hold your breath.

Our entry-level tech talent salary and offer package for 2014 was already among the highest nationwide. Today, we are glad to announce further revision of Mindfire’s entry-level (fresher) salary to Rs 42,000 per month – Rs 5,04,000 per year! This is among the topmost entry-level salaries for tech talent nationwide, and comfortably in the top 1%.

But we are not proud of our salary. Never. It is our people we are proud of. Always.

Focusing on original system development and full-cycle software product construction, Mindfire hires the best software developers. We look specifically for real-world programming ability – that natural knack for programming, that eye for detail, that passion for tech, that elegance of code, that clean flow of mind and that interest for work. If you have joined Mindfire, you are easily among the top 1% in tech ability and potential in India – congratulations!

If you have interest in work and passion for tech, and are confident of your programming chops – Mindfire is your paradise. India’s leading tech magazine – Dataquest – called Mindfire “Techies’ Paradise” many years back. That is what we enjoy being, that is who we are.

With this step, Mindfire makes clear its intent to become the top career choice for those who love innovative software development. Come home.

 

A Short History of Desktop Operating Systems

 

At the beginning of this millennium, the PC/OS wars had practically ended. You used Windows everywhere. Only some companies like Mindfire, which worked on Apple Mac development, had any use for platform diversity. Everybody bought Wintel – because you had to. Software was made for Windows only in most cases, so being on anything else meant being unable to run most things you needed.

Then, several unexpected things happened.

First, Operating Systems. The OS landscape changed. Apple made a spectacular comeback, and working on a Macbook was cool again. Mac OS X flew high. And Ubuntu rose from the ashes of Unix and Linux fragmentation, unifying them and making a friendly Linux.

Second, the Internet. The web became dominant platform for app delivery. Functional software that looked grey and dull, was suddenly all over the colorful web. Chrome and Javascript/AJAX hastened user experience on browsers that rivaled native desktop software.

Third, Design. Or, the ascent of design. Apple led the charge, and the world of tech grew to appreciate design for what it was – the yin for its yang. And those dull grey apps died a quiet death.

Fourth, Consumers. Technology exploded from enterprise/business to the consumer setting. Revenue started skewing towards consumers – although that died an early death due to our next point.

Finally, Devices. In came the world of smartphones and tablets, which changed the meaning of computers. And led to the creation of cloud. And desktop platforms became just one out of many access points for the cloud. Which leads to the Internet of Things. Coming next.

 

All the above made desktop platforms a choice, since the world of computing was no longer restricted to the PC and OS you used. Today, consumers buy Mac systems and techies buy Ubuntu systems, without needing to think what they will not be able to do. Because they can do everything.

At Mindfire, we celebrate this victory of choice with a commitment to platform diversity. Mindfire is investing in Ubuntu and Macbook laptops, aiming to have at least 15% of our people on Macbooks, and 15% on Ubuntu.

Why is diversity important?

A rainbow is interesting only because it has all those colors.

 

Thoughtful Programming Can Save Days. But Do You Have Time For It?

 

Today I will share an experience in the effects of inflexible software, actually caused by hard work!

We use a SaaS service for our payroll process. Last month, we needed to add a salary component for selected people. We decided that instead of adding it as the pre-defined “Bonus” component, we would name it “KMBonus”.

All good till now. The payroll system allows addition of custom components. Then you download a blank Excel file and upload it back after inserting figures.

We downloaded the template which had a column for KMBonus, along with columns for every other component. This sheet was filled for KMBonus and uploaded back. It failed. No error message, nothing – the page just refreshed silently.

What was wrong? Was it a problem with file format? File size? Number formats? Did columns or sheets or anything get rearranged by mistake? This took a couple hours. When nothing worked, a support issue was filed. It was a weekend.

On Monday, support tried to understand what was wrong. After few hours, and with the file being analyzed, support figured out what was wrong – the uploaded file couldn’t have empty cells/columns while being uploaded back! So, although you wanted to update only KMBonus column, you had to either insert zero into every other cell everywhere, or delete all other columns.

First I was upset – that a simple error message, or documentation on expected file format, would have helped avoid this. Then I realized something else.

Entire payroll for hundreds of people got stuck for a couple days, because the programmer had worked hard – but harder than necessary.

Think about code structure. It would have taken more work, more effort, to put in all this validation – “Check all cells have numbers, ensure none are blank!” Sure, requirements may not have covered this case, so as a programmer I am free to do anything. But if I am free, do I do things after thinking about it – being thoughtful about work? Do I do things for the user – being thoughtful about users? Or do I do things that are just technically correct? Instead of tightening by validation, a simple conceptual foundation would have reduced the programmers’ work and rendered flexibility to user!

Imagine if the conceptual foundation had been: any blank cell means nothing is to be done. If something has a number, update component to that number. Simple.

So when you get a sheet with many cells blank, entire columns blank, ignore the blank ones. And process only the ones with numbers. Did I say simple?

Think of code. This is actually less work, is conceptually clear, and means much more to user! Smart work versus hard work. Saves days of effort for the programmer. And, in our example, a difference of days in payroll processing!

Thoughtful programming is based on common sense. Thoughtful programming reduces work. Thoughtful programming can save the day. Days.

 

Entry-level/Fresher Salary at Mindfire Solutions

 

(Update Sep 20:

IMPORTANT NOTE ABOUT FALSE CLAIMS IN HIRING:

Mindfire Solutions does NOT employ services of any external organization for our recruitment process, in any role at any stage. We do our OWN hiring COMPLETELY and nobody else – no placement consultant, no recruitment agent, no headhunting firm, no campus coordinator, nobody else at all – is involved in any way at all.

Please do not believe people making false promises to place you at Mindfire Solutions, or to get you an interview slot, or influence hiring in any way – and definitely do not pay anything for such claims. If you do believe and interact with them, it is at your own risk and loss. Mindfire Solutions is not responsible in any way for such interactions.)

 

Quietly.

Quietly, Mindfire has created one of the best packages for freshers, nationwide.

At Mindfire Solutions, we have always believed in providing industry-leading packages for talent. We have raised the bar in 2014 with a lucrative pay package and other elements that will surprise you.

1. Salary
Our uniform entry-level salary for all 2014 technical freshers is Rs 35,000 per month (Rs 4,20,000 per annum). All fixed, all guaranteed. This in itself is perhaps in the top 90%. Whoa! But wait – this is just salary. We have more!

2. Free Tablet
On the day you join, you take home a gift of a tablet (Apple iPad mini 3G or Samsung Galaxy Note 8) worth about Rs 30,000. It belongs to you. A nice little welcome to a new life.

3. Free Insurance
You and your parents/family are eligible for medical insurance, with annual premium up to Rs 6,000 paid by Mindfire, which generally gives you insurance coverage up to Rs 3 lakhs.

4. Free Lunch
For past 8 months, we have had free lunch at all our centers. We do not foresee discontinuation of this facility – people have been thrilled!

5. Zero Bonds
Mindfire is against bonds of any kind. We do not bind you with any bonds, disguised as “service contract” or any clever words. You can walk out at any time if you get a better option for your career/life (with a month’s notice). We wish you well.

6. Zero Deposit
There is no financial deposit of any kind. Neither a bank guarantee or anything. The only thing you need to give is your talent, your energy, your dedication. Everything else is for you to get.

7. Zero Bench
We will get you real work within 6 months of joining. You don’t have to sit idle on bench for 2-3 years, destroying your long-term career and future.

8. 100% Learning
You will learn by doing practical work. You will have active guidance and help and resources, and you will learn by doing and reading and discussing – not by being taught by someone. Being taught is passive, learning yourself is active – the chosen path for winners.

9. 100% Job Security
Mindfire has not had layoffs at any time in its history. Neither in the mega recession of 2000-2002, nor 2009-2010, nor at any other time ever. People are asked to leave only due to individual performance problems, and at 2% it is the lowest in industry. OK, let’s be direct: yes, if you have no interest in work and tech, we will ask you to leave.

10. 100% Stability
Mindfire is a self-funded organization with no bank loans or external debt or borrowing of any kind. We have hundreds of clients spread all over the globe in various industries, which diffuses risk factors and renders us an enviably strong and stable foundation. We have been continuously and comfortably profitable since 15 years.

11. 100% Software Development. Only.
Mindfire is a place for pure software development, nothing else. We do not do production support, technical support, and a zillion other types of work. We take up only work which is software development (programming and testing), so you will always get hardcore tech work only.

 

To Mindfireans: 11 is an odd number. Which item above should we cut (unimportant for freshers) so that it becomes 10? Or which other item can we add to make it a dozen?!

To Software Freshers: we love you if you love tech. As you can see above, Mindfire will give you a lot. The only thing you need to give is your talent and time. Do come on over and apply for the best IT/software jobs at http://www.mymindfire.in/AddMyProfile.aspx!

But shh, quiet. Don’t tell your friends where you found the best opportunity. Don’t tell them about Mindfire.

Shh.

 

 

Thank God It’s Friday – Mindfire Style!

 

At Mindfire, we recently had a proposal to have one day of the week as “Work From Home” (WFH) for everyone.

A day working at home would allow a day’s escape from the commute. It would enable flexibility in planning personal stuff, including spending time with family.

The ideal day was Friday. Practically, it would mean Fridays blending seamlessly into the weekend, and undiluted weekends. People with family few hours away could travel overnight on Thursday, work from home on Fridays, and have two full days at home. And it would make Fridays a little more fun and a little more free!

Awesome! Doable? Hmm.

We shared the idea with people at our Bangalore center, to gauge response and interest. It quickly became obvious that people loved it! Given Bangalore’s epic traffic and commute problems, it was not surprising that most people preferred to avoid the roads.

Of course, there are some problems. Some people may have connectivity issues and actually prefer to work in office. Some people may have hardware or device-dependent work which cannot be taken home. Some work may need bandwidth which is not available at home. And certain work (such as Hiring) simply has to be done at office.

But there are enabling factors. First is our 100% laptop environment, which allows both mobility and reduces power-cut issues due to battery backup. Second is availability of cheap and reliable Internet connections. Third is the Mindfire culture – of being outcome-oriented instead of needing to see people sitting at their desks.

There is the gnawing problem of unfairness for people who cannot enjoy Friday WFH because their work cannot be done from home. Will they enjoy the joy of others? Or will they hate a facility they are excluded from?

It is a balanced risk. People understand if they have work issues at home, they need to rush to office. People also understand that freedom and flexibility come with responsibility. And that good things come hard, but go easy!

To test the waters, we are rolling this out at our Bangalore center from August 22, Friday.

This is a trial, an experiment in Work 2.0. If there are problems with work, it will have to be discontinued. If it works, it will be rolled out at our Bhubaneswar and Delhi centers as well. Helping positive ideas succeed enables us to do more, to move forward, while failing takes us a step backward.

 

Will it work? I will update what we find out! Life is discovery.

 

The whole is greater than the sum of its parts.

This truism is applicable to all, whether it is an individual or a company. The various facets which confluence to make an entity great render to it a unique flavor, one that cannot be copied completely. The innovative practices at Mindfire Solutions contribute towards its uniqueness and differentiate it from its peers in the software industry. Here’s how.

My last blog was on the 2 minute innovation where I told you how Mindfire Solutions follows a unique project status communication practice which makes use of rich media to communicate the day’s progress to the client. In this blog you will get to know yet another innovative best practice followed at Mindfire Solutions. Ever heard of the term collective intelligence? No? Well, simply put, it means 2 is better than 1. Only, in our case 700 is better than 1. This is an approach aimed at solving individual queries by the combined knowledge of an organization.

We all know that the true value of an organization can be closely gauged from what lies between their employees’ ears. And Mindfire Solutions not only encourages its employees to broaden their horizons but also gives them the scope to make the best use of it by fostering a culture of sharing. As time passed, number of projects increased and Mindfire’s numbers and ranks swelled, realization dawned that although the collective knowledge of the organization was increasing linearly the individual knowledge was more or less limited to his own area of expertise. Owing to a demanding work scenario and paucity of time there was hardly any scope to learn more at an individual level. In an organization where knowledge is treated as the most important asset, productivity would get a quantum boost if there was some way in which the information about the knowledge and skills of an individual can be shared with another individual in need.

And then a unique knowledge management practice was developed in Mindfire Labs and christened as Fluid Expertise. Based on his need, a Mindfirean can use this system to search on the particular topic and then get the content results as well as the list of colleagues who can help. The database for this project consists of the user profiles of all the employees (which include their expertise, blog links, seminars conducted, articles, projects, team space etc.) as well as the articles, tips, case studies etc. contributed by them and available on the website. The search results will be displayed to the user in his browser in a 2 part sectioned format. While the upper half contains the people search results (in this case Mindfire’s in-house subject matter experts), the lower half contains the results from a Google customized search. The user can then choose to proceed according to his wish, i.e. contact the expert on a communication window or click on the pages as suggested by Google.

How the system works?

The system either crawls through the website or parses text/html, word documents and PDFs and considers the content for further processing. Again in order to match the query against the document the text in the document is indexed. The match can be done against the URL, title or the description/content of the page and when the user clicks on the URL the content will be displayed.   As is expected, a lot of inputs are required to find out the top ten subject matter experts on a particular topic. And because we have too many inputs it becomes imperative to decide which among these inputs are primary and which ones are secondary. The primary inputs help in choosing the top 10 people and thereafter, the primary and secondary inputs both are used to rank them. The secondary inputs don’t have a role to play until the top helpful persons have been selected. The decision as to what could constitute the primary and secondary factors are left to the system owner’s discretion.

Following are some of the factors that contribute greatly in people search listing:

1. Content: Content has to be the most important factor to judge the level of an individual’s expertise. With the help of an open source indexing engine and a compatible server which helps add easy interfaces to add/update/query documents and pump more data, an expert’s contribution is closely gauged in his area of expertise.

2. Number of User clicks: For a specific search the system will track which links has been clicked by which user and which expert has been contacted by which user. This knowledge will be useful for predicting the result for the user thereby providing personalized search experience.

3. Peer Endorsement: In this case the system will take time to learn from user input and suggest right people and direct the user to the expert. To address this, there will be an offline input mechanism where employees should be able to specify who is an expert in which area. This will also form a part of the database.

4. User Feedback: While designing the system we realized that there should be an offline data collection mechanism to know whether contacting a person helped, in short a feedback is sought. Initially the system gives a default people rank to everybody. After collecting inputs from various users the people rank increases or decreases accordingly.

5. Interconnections: This factor varies from person to person. As the name suggests, these variables play a role to decide how easy it is for A to connect with B. This is determined based on the fact whether the 2 users belong to same team, same project, same center, same team space etc.

6. Previous search: To get this data the system should be able to store old searches by users and match the current search against old search and find relevant experts to solve the query.

In order to get near accurate rankings of the resident experts at Mindfire Solutions these parameters are constantly monitored and at times subjected to minor changes to give an appropriate listing. And in this way we make use of information readily available to not only solve client issues but also increase our knowledge base on a particular topic by learning it from the guru himself.

These systems and processes at Mindfire Solutions make it robust inside out. And when a customer engages with Mindfire Solutions, although he would interact with a small team, he would definitely feel the depth of knowledge in his work which is largely due to the collective intelligence behind it. That is what contributes to making Mindfire Solutions an enviable organization to work with and work for. Who wouldn’t?

2MV-Final

The 2 Minute Innovation

And before you come to a seemingly easy conclusion, let me be very clear. I am definitely not talking about Nestle’s Maggi noodles which can be cooked in about just two minutes. So what could be the 2 minute innovation? Ever heard of 2MV (short for 2 minute video) as a daily reporting tool? Possibly NO! Allow me then to introduce you to the 2MV Habit that is religiously followed at Mindfire Solutions.

About the 2MV:

The 2MV Habit is a unique practice followed at Mindfire Solutions. This was exclusively designed to address problems that are typical to outsourcing/off-shoring/remote software development companies. The common problems pestering this industry are:

  • lack of visibility in true daily work progress,
  • absence of the human factor,
  • lack of synchronous communication owing to different time zones and
  • unavailability of rich communication possibilities (email and documents have their own limitations)

We call it the 2MV Habit because it is a daily practice wherein the developer records his daily progress in the form of 2 minute long videos that are actually screen-casts (videos of the screen) with the audio commentary by the developer. This could also include a little bit of code browsing as well.

So how does it differ from emails/documents?

The use of video/media differentiates 2MV from an email/document by creating software engineering artifacts that are rich in information. After some initial hiccups the developer realizes that while he can make a 2MV in 2 minutes, he would take around 5 minutes to draft an email/document. However, on the flip side, while the contents of an email/document can be scanned in a minimum 10 seconds time, it would actually take 2 minutes to go through a 2MV.

How the 2MV works?

Clients can log in to Mindfire Solutions’ cloud based project management system with the credentials that are provided to them at the time of on-boarding. Successful login takes the client to the 2MV home page wherein all recent activity is listed as a stream of events. One can then view the 2MVs by clicking on the 2MV icon which renders a flash / HTML5 player and plays the video on the homepage. Comments can be made from the event stream itself. There are also options in the account menu to change the email preferences on new 2MV upload, note addition, transcription addition and resetting of password etc.

2MV workflow

Benefits of using the 2MV Habit:

  • Giving demos daily helps the developer to view the work from the user’s perspective
  • The developers feels accountable to produce demonstrable work every day
  • The human voice renders a personal touch and helps forge better relationships in a remote team environment
  • It also helps the developers bond better with the testers bringing in better coordination between teams
  • Easier, faster and better daily status reporting
  • Instills a sense of ownership in the developer as the 2MV carries their personal signature
  • Rich knowledge base with visible gradual evolution of software and codebase
  • Any misunderstanding with respect to requirements or specs is detected at an early stage and fixed accordingly
  • Easier, faster and better transition to new team members whether in case of attrition or scaling up the existing team
  • Better insulation from human risks in team

A 2MV experience:

Let’s be honest. Everyone was not really enthusiastic when the 2MV was launched. As with just about anything that is new, there was some resistance to 2MV initially from one of the project teams. This was mainly because they were not comfortable recording the video (Ironically, they assumed it would take them more than 20 minutes to record a 2MV). Also they wanted to hang on to the traditional methods of email and online meetings with the client as they believed that they could email faster than record the day’s work in 2 minutes. Before panning it completely, they were coaxed to give it a try, one last time. And then the rest is history. The client loved this mode of communication and decided to use this method instead of emails and meetings. This helped them cut down time spent on meetings. Finding a time suitable for both the development team and the client was again a hindrance, but the 2MV helped get rid of it. The developer could record his day’s work before he left and the client could review it whenever/wherever he wanted to using any device (desktop/laptop/handheld). In this particular case (and as with most other cases), the client not only applauded Mindfire’s effort but also gave valuable feedback that we incorporated subsequently.

For a company that is ONLY into offshore small team software development, Mindfire Solutions offers its clients this unique status reporting tool that not only adds a personal touch but is also a rich repository of evolving project information. One of our clients commented that:

“We’d just like to say what a great idea the 2 minute video is in maintaining a good relationship between us and Mindfire. It is often difficult to build a personable relationship over such a distance but we feel this definitely helps! Seeing the developer’s computer screen brings things closer and enhances trust and support.”

Yet another client found 2MV to be an interesting concept and was of the opinion that:

“A 2-min video is best for more general info and UI demonstration.”

As for our developers, most of them appreciate Mindfire Solutions for this initiative as it has helped them better their communication skills. The fact that the client can add comment in the 2MV itself makes the communication very clear and less time consuming. One of them said, I have also spotted some issues in my code while making the 2 MV at the EOD. So, it’s like testing the whole thing you have worked on before you leave for the day :)”

And when I asked another developer how the 2MV is a mutually beneficial initiative he said,

“It helps to make changes on the work from the beginning as client provides feedback on the work from the scratch level where as in text emails client sends changes/fixes only after seeing the complete task on stage and its sometime difficult for the client to visualize the work from text and provide feedback. Also it helps the client in decision making whether or not to continue/pause the current functionality and jump to some urgent fixes.”

As 2MV is increasingly becoming popular as a project status reporting tool, it would not come as a big surprise if clients begin to choose this as a preferred mode of communication over email and skype. We surely live in interesting times!

(N.B. : There are many such practices at Mindfire Solutions. Watch this space for more innovative techniques/processes practiced at Mindfire Solution. We use technology to be efficient!)

Who Should Software Developers Care About?

Manager/Lead or Client – who should developers care about?

Neither.

Software developers in outsourcing companies are a harried lot.

Demands come from multiple quarters – Lead or Manager, Client, Colleagues – to name a few. Sometimes a CEO and other random people are also part of the group. In large organizations, Marketing, Interaction and other teams join the party. And often there are multiple people of each type above. Time is always running out. And sometimes none of these people agree among themselves! What is a software developer to do in such a situation? Who should s/he care about? Who is most important?

None of them.

Software is made for a purpose.

That purpose is to be used by people for something. The only thing that matters in making software succeed, is whether Users will use it. If Users use your software, everyone will be happy. If Users don’t care, everything is wasted.

All the people above – Lead, Manager, Client etc – are representatives for the User. They are people with good intentions, but they are maya – illusion – from the software’s perspective. The only thing that software cares about is whether Users use it or not.

Software that is used is happy software. Software that is unused is grumpy software.

It follows logically that if software cares only about its use, the developers of that software should primarily care about the User. Generally, Client and Lead and others are also doing the same thing – they are planning and prioritizing and designing and doing everything for final User.

But!

Your Lead may find a short-cut that ignores user. Your CEO may want something done that is good for your company but bad for user. Your Client may prioritize something where user is short-changed. On top of this, ego and personal views may come into play.

In short, sometimes (although rarely) these other players may not have user in mind. In such situations your duty is to ignore them. If you can make them see reason, good. If you cannot, you still know what is right and wrong, because you know who to focus on – the User.

Your final responsibility is to the User. Your job is to make good software that Users love.

As a developer, your User is unknown, faceless and often doesn’t exist except in the future. It is easier and tempting to think of the representatives as real, and the User as maya. At core, it is just the opposite.

But my Client pays my company! But my Lead decides my salary!

In the place-time continuum of life and careers, you will find that the experience of making good software is what you will carry forever. Everything else will float away. Your Company will change, your Colleagues will change, your Client will change, your CEO will change, your Lead will change. But that experience of making good software that users use and love and you are proud of – that experience of exhilaration, that pursuit of excellence – that  will never go away.

As humans, we sometimes do what our head tells us, and sometimes what our heart tells us. But through it all, our conscience guides. Think of Clients and Leads as head and heart, and User is conscience. Client and Lead may tell you what to do, but let User be your guide throughout. As in life, so in work.

Use Users as your yardstick in all situations.

When in doubt, think of Users. When not in doubt, think of Users. Everything and everybody else is maya.