Posted on Leave a comment

How I explained Digital Transformation to my 11-year-old

Long story short I found myself doing this last Sunday. This is what I said (cutting out the numerous questions he had along the way).

Buying sausage online as it has always been

Imagine that we want to buy some sausage online.

We search on google, find a company and then check out how it looks on their website, read the description on how it will taste, maybe watch some videos and read some reviews.

Then I enter my name, address, phone number, credit card information and place the order.

Then wait a few days, hopefully not too long, and then sausage arrives in a frozen. We then defrost, cook, eat.

Photo by Edi Libedinsky on Unsplash

“What’s wrong with that?”, he asked.

Nothing is wrong with the way the we bought the sausage (except going forward the site cookie will follow me everywhere – I did not tell him that!)

Buying sausage from a digitally transformed organization

“But imagine this”, I told my 11-year-old.

What if we got a quick taste of the sausage first?

He was confused because it is not possible to taste sausage over the internet!

I told him that there could be different people putting up videos eating the sausage, telling us how it tastes – is there a snap to the bite, is it spicy, sweet, how it smells, feels great after eating it” and the chef comes and tell us all the good things that go into it – we can get a better idea right?

He nods along. I continued…

Once we place the order, what if you can get to see how the sausage is getting made specially for just for you?

What if you can see that good meat is getting ground up in a clean meat-grinder, exciting spices going in, getting cased, going into a cool computerized oven, drying on clean racks, getting packaged carefully with your name on it and then you know exactly where the sausage is?

What if it comes delivered almost ready to eat with some bread, mustard, ketchup, slaw – whatever you like and after you have had it, you can tell everyone how awesome it was and for that you will get free sausages – wouldn’t that be great?

He was sold.

The raw definition of Digital Transformation

Digital transformation is a process by which organizations change their physical processes to digital processes using technology, by always thinking about how these would impact the customer.

Organizations have forever undertaken transformation initiatives – it is nothing new. One of the primary drivers of all this is that organizations realize that they are losing their relevancy in an industry. Such transformations are drastic in nature – they aim to change the core beliefs and business models of a company. 

Successful transformations have always kept the customer at the heart of the initiatives. With the advent of the internet, customers are moving more to the web and as such transformation efforts are becoming more and more focused on amplifying the web presence. Industries are labeling this as digital transformation where the customer is able to digitally “feel” every part of an organization, from the very first time they know its presence till the time they get the first order followed by support and hopefully loyalty.

During such a transformation, organizations may have to change their business model to fit the changing environments and to gain competitive advantages in the industry and the markets in which it wants to grow/lead.

There are many reports on how to do DX (the most accepted acronym for digital transformation), how to measure returns, how long is the payback etc. (feel free to reach out to me if you want to learn more about these).

But I want to go back on the “Why” because that can really explain how DX came about and became one of the most sought-after business words in Google.

Why do organizations care about exposing their internal processes to customers?

Organizations are more fluid today than ever before. The walls of organizations are corroded and the best organizations are now ecosystems of partners, vendors, customers, prospects, competition, substitutes, and new entrants. The advent of smarter algorithms and big data have resulted in more informed buyers. This resulted in buyers wanting to know more not only the product they are buying, but how it is made, where it is sourced from and how it will be supported.

Organizations are no longer making the sausage inside closed doors. Devices are able to provide notifications, algorithms are able to determine when, how and why to connect with customers and big data is able to harness behavior before customers are able to understand their behavior themselves.

Getting back to my 11-year-old

So, he asked me “will I be able to do digital transformation when I grow up?” I was quite happy because the little guy had figured out how to perk up my ego – he wants to be like dad!

I told him in the next decade there will be significant advancements to technology. Self-driven cars, smarter homes that can order for the customer, incredibly fast internet, smart devices that will make a lot of decisions for us, are examples of such advancements.

Sitting here today we can feel that the world in 10 years would have transformed. But by that time, we will see a new transformation taking shape – one that we may speculate on now, but will not know till we get closer.

I may have confused him with my last answer, but definitely got him thinking. If you are reading this let me know your thoughts?

Posted on Leave a comment

Why Agile scares a lot of people

Life is what happens to us while we are making other plans” Allen Saunders, Publishers Syndicate

Agile practices are now several decades old, maturing and taking shape in the last 2 decades and every industry has implemented it in some form or fashion, including Governments. The Agile manifesto was developed in 2001 and was originally written for software development (https://agilemanifesto.org/). The very basic concept of Agile is to deliver solutions iteratively with continuous feedback loops through increased collaboration, experimentation and validation from the live environment. As the internet and devices matured, it became even more imperative to deliver solutions quicker and faster to learn user behavior and reactions before investing more time and money on features that originated in close-door meeting rooms.

Traditional project management

Looking back at traditional project management, we know that it is based on phases, stage-gates – research, gather requirements, plan, execute, test, deliver, and support. A large part of the time is spent gathering requirements, creating usability matrices, mapping them to specifications and finalizing plans through work breakdown structures, capacity planning and creating baselines – scope, cost, time. Once all that is set/stamped/frozen, work begins, and eventually the team comes back after a few weeks/months to deliver the original scope. There is nothing wrong with this. It is a structured process, allowing managers to have tight controls and measured reporting on projects. For generations, numerous standards have existed and have matured to manage this methodology – it is also called a waterfall method of project management and project delivery – going from phase to phase. Typically, and coincidentally, organizations that are hierarchical, have long-standing success of project delivery in this methodology. There are several reasons why – one of the main reasons is the need for control at all layers in a hierarchical, centralized organization. Such organizations even have their own frameworks of undertaking projects in the waterfall methodology – their entire operations have been designed and centered around waterfall. If they are spread across geographies this is even more true, where a centralized project management office feels the need for greater control. M&A activity adds additional layers of complexity and post integration challenges are overcome by going back to “what always worked”.

How is Agile different?

Fast forward to the world of Agile, it is quite an opposite mindset. Here are the main differences.

  • In Agile projects, cost and time is frozen, scope is constantly reprioritized based on early learnings from the live environment
  • Collaboration and communication take preference over rigid contracts –  scope of work in contracts with vendors / internal departments are fluid and subject to change
  • It is more important to test working solutions and learn from the live environment, continuously and iteratively rather than create fully-buttoned up solutions.
  • Prioritizing a backlog of tasks takes precedence over creating fully-baked plans and sticking to that plan throughout the duration of the project
  • It is more important to interact with each other in teams rather than create strict process and tools to manage how work is done
  • Managers in Agile organizations measure teams based on the amount of learnings, the ability for teams to iterate continuously and adapt, rather than stringent KPIs only

We can see how this can scare organizations and managers that rely heavily on processes, numbers and plans. It goes against the very grain of the organizational mindset. This leads us to the next obvious question.

Is Agile better?

I am not saying one is necessarily better than the other. Some projects require long periods of planning and sticking to the scope no matter what happens. Although, that is becoming rare! And the biggest reason why it is becoming rare, is that world around is changing more rapidly than ever before. So, assumptions made today may not be true tomorrow or even later that same day. Next, the advent of digital is making in-house processes external as well – basically the customer not only wants to look, smell, feel and place the order, but they actually want to see the sausage being made in the factory and “feel” it getting delivered to them so that when they open the package they can enjoy it even more – connected devices, emerging technologies and intermingled network of industries allow customers to demand this level of transparency. So, the argument that projects that only impact in-house processes does not have to get learnings from an external environment, is no longer valid. It is therefore critical that any project (internal to the organization or external) be open to changing its scope throughout its lifecycle – from my experience as an Agile coach, this is the biggest fear for organizations that want to move to Agile from a traditional waterfall methodology. Most ask me “how can we do something if the plan is a moving target?”

Simple Analogy

My 16-year-old son asked me how he can implement Agile in his life! “It is not possible for students to distinguish between Agile and Waterfall. In fact, we have to kind of do things in waterfall. Like my project assignment – I have to plan, work and then hand it in.” He does have a point, but this is how he can change (he is actually trying!) – I told him “why not write all your thoughts on a piece of paper, take a picture and send it to your teacher to get some early feedback? Then keep iterating, till you have a final product ready.” The goal here is to iterate, learn as fast as possible and then incorporate the learnings into the next iteration. In the lean startup world, they call it the build-measure-learn loop – but that is another discussion!

In the end, one may argue, that the answer lies in the details, the nuances of a specific project or industry or market, environments etc. But almost always the answer lies in the willingness of organizations to try Agile. And then, some companies are forced to try it because status quo is no longer an option for them.

I am a transformation consultant, an Agile coach and a lean junkie and I spend a lot of my time researching organizational culture. I enjoy dabbling with new technology to solve business problems. In anything I do I try to go about with Agility.

Would love to hear your thoughts on this…

Posted on Leave a comment

Sensemaking in culture transformations

Organizational culture has been defined in numerous ways. Over the last few decades culture is seen as a competitive edge for different organization. Deloitte reports that a vast majority of companies are using culture as a lever to drive strategy, transform operations and become market leaders and industry benchmarks.  “Culture eats strategy for breakfast” (ref: Peter Drucker) is more true today than ever before. It is no longer an HR initiative. Culture is a business issue, a business essential.

Simply defined, culture “is the way we do things around here”. It is mainly driven by leadership by creating values, behaviors, artifacts, norms, ground rules, reward systems and beliefs that influence the daily activities of an organization. Over time it becomes the espoused beliefs of the organization and spreads in somewhat uncontrolled ways throughout the organization’s ecosystem, especially as organizations grow big through M&A across geographies. Our personal beliefs are shaped first by our upbringing, then by the societal norms and beliefs and finally by the broader media that influence us. We then bring these beliefs into our organizations. Most likely they match the general culture of the organization. Eventually the culture of an organization gets embedded in deep rooted into its tenets – it can be observed and felt as a person touches any aspect of the company, be it online, talking to its leaders or even walking through the doors.

If companies “do the things they do” due to their culture, especially in organizations where culture is strong (good or bad) and they get deep rooted, across geographies, it becomes really difficult to change that culture. Should companies change their culture? The answer would depend on the state of the industry, the markets, the competitive forces, the macro political, economic and legal environments of such industries and markets and other forces that impact the existence and growth of such companies. To stay relevant organizations will reach a state where status quo is no longer an option. Companies then undertake transformative initiatives. When these transformation efforts change the “way the we do things around here” they will challenge the very core and belief of its foundation – almost every time.

Numerous journals, studies, articles and frameworks have been developed to categorize and measure organizational culture – just search Google for organizational culture frameworks. Whatever be the culture of an organization and whatever transformation efforts are – if they require a dramatic change of culture – from hierarchical to decentralized, from centralized to distributed, from leaderless to dictatorial etc – the intended results may or may not fall where it was envisioned. The challenge becomes manifold in larger organizations with deep-rooted history, over multiple locations and social norms. How can such organizations get off the block and structure their culture transformation?

One way this can be achieved early-on is through sensemaking. “Sensemaking is the way in which people give a shared meaning to their collective experiences” (Wikipedia). It veers away from traditional decision-engines and planning-models and makes way for dialog and narratives. There are numerous psychological sources about sensemaking and the complexities in such studies need not be understood to realize its importance in the early stages of a culture transformation. If culture is the “way we do things around here” and really difficult to pinpoint, then changing it will require large groups of people across different geographies, societies and communities to agree at any given point on “what is that way”. There could be generic, high level answers, but the devil is in the details here – to change the “way we do things around here” – for example to move to an Agile culture from a traditional waterfall culture requires going against the very grain of every brick and process of an organization. In such situations leaders can bring calm and structure to the culture transformation by focusing on the narrative through sensemaking. By giving a shared meaning to the collective experiences of a large group of people, leaders can bring fears, anxiety, egos, insecurity, excitement and chaos to the middle of the giant organizational table from where change can actually start to happen. It is probably the hardest thing an organization has to do, if it has to do it.

Here are some excellent sources on sensemaking

https://pdfs.semanticscholar.org/66b6/01eb97c775fe223099224f2ec10e619d175b.pdf

https://www.researchgate.net/profile/Shawn_Clark3/publication/13173097_Strategic_Sensemaking_and_Organizational_Performance_Linkages_Among_Scanning_Interpretation_Action_and_Outcomes/links/02e7e52a1fc4e12add000000.pdf

I am a transformation consultant and have found that early on in transformation initiatives, applying sensemaking brings agility and structure to organizations. Would love to hear more thoughts on this, if you found this of any value.

Posted on Leave a comment

Do you know the CEI for your co-operative?

Following up on our blog on “Collaborate online or your co-op will lose its competitive edge” we wanted to talk about a very important Key Performance Indicator for co-operatives – the Co-operative Engagement Index (CEI) – this is something that we have developed after nearly 20 years of working with co-operatives, building strategic software and shaping operations for co-operatives that have resulted in multiple growth spurts for these groups.

So what is this CEI and why should your co-operative measure and improve this over time?

Most co-operatives exist to leverage the collective buying & selling power of its members and vendors and build strong partnerships across their ecosystem. The leverage happens only when members and vendors participate and engage in dialog, business, transactions and contracts through the co-operative. The more the engagement, the stronger the co-operative. So if this engagement can be measured in a managed way, we can start to identify patterns and factors that build deeper engagements, or find patterns and factors that corrode engagements across members, vendors, co-operative employees and partners. So how can this be done?

In almost every co-operative in the world, this engagement today happens in an unmanaged space through emails, websites, Facebook and LinkedIn groups, road-shows, trade-shows, committee and board meetings. Unmanaged dialog creates a weaker co-operative and co-operatives do not have big funds to build an entire social network for themselves that have deep analytics like LinkedIn or Facebook or Twitter. There are membership management tools but they do not measure engagements and definitely do not provide insights on what is working and what is not.

How we came up with the CEI

This lead us to work with some of the large co-operatives that we have worked with to create the CEI. CEI in its most basic form measures the amount of dialog that happens in a “managed” space between all the parties of a co-operative over time. Using intelligent algorithms patterns are identified to then classify the dialog. A unit score is tagged to each dialog across different parties. For example, dialog that results in an inquiry to a vendor from a member may score 90% while a dialog about the weather today may score 10%. No dialog for 1 month can score -10%.

Early Challenges

There were challenges that we had to overcome. First, co-operatives have different by-laws and operate differently. Secondly, co-operatives across different industries have different levels of engagement. Thirdly, co-operative across different countries and cultures will also have different classification of dialog and engagement. Lastly, how can all of the dialog across 100s of companies, 1000s of people be “managed”?

How it worked

We attacked the problem from the last to the first. We created a Social Network for Co-operatives that connected members, vendors and the co-operative into a managed space for all dialog. After implementing at one of our clients we soon learned that it was challenging to have everyone join at first. But over time there was good adoption, especially when the co-operative admins were deeply involved and believed in the engagement.

Next we tackled the differences across cultures, countries, industries and by-laws. We realized that is was a big task to normalize the CEI across all of these elements. So we create a “flexible” CEI that is adaptable for each co-operative with benchmarks to “similar” co-operatives.

The process starts with assessing all the communication, collaboration and engagement channels of a co-operative. Based on this the co-operative social network is implemented and the co-operative’s very own CEI is ascertained by tagging unit scores to each dialog type and pairs. Finally, the CEI is measured, reported and improved over time by bringing out patterns of what is working and what is not.

We have recently implemented this at one our customers, IDCO – they are an industrial hose co-operative.  The co-operative’s CEI is getting measured through our Co-operative Social Network implementation at IDCO. In 3 months engagement has gone up. IDCO is poised for exponential growth in the next few years.

Why you need to get your CEI

In the end, it is all about bringing value to a co-operative’s members and vendors and allowing all co-operative employees to feel as part of a giant ecosystem that marches to the same drum-beat and echoes the same sentiments of the collective buying and selling power. To that, the CEI is going to become one of the most important KPIs for the co-operative business.

Interested in learning more and getting a free assessment of all- your collaboration channels? You can reach out to us anytime at info@medullus.com or just call us at 845-271-6030.


Blog post by: Roni Banerjee. Reach Roni @ roni@medullus.com

Roni heads Marketing & Sales for Medullus and is the Practice Lead for Blockchain Solutions. Roni has nearly 20 years of CIO/CTO experience with orgs across industries. Roni architected the world’s 1st true purchasing group ERP/BPM system for a billion $ org. Roni has implemented large workflow systems, recently for a public-traded pharma. Roni holds an MBA from Warwick Business School in the UK and several certification in PM, Agility, Blockchain and software.

Posted on Leave a comment

Analyzing risk, early on, in a software development project

Most development companies jump into a project the moment they get their hands on one – why not? That is what we are here to do – solve problems for our prospects and customers and hopefully make a decent living doing it! But how many go the extra mile and actually analyze the risks to a project before jumping in with both feet?

I am not sure about the answer about how many, but from my experiences of being a customer and consumer of custom software, I can say with some confidence that the number is slim.

Why, you may ask? Why do most companies do not analyze project risks? Well it is not a project deliverable, nor part of most project scopes and why worry about the risk when the development company has all the control on the deliverable?

Wrong (sorry to say)! Not analyzing project risks and not planning for risks is like starting a project blindfold.

Here are some of the things you can and should do at the start of the project.

(1) Once you have defined your milestones, meet with the project team – involve the stakeholders, if possible and the customer/users. Ask them 1 question – what do you think will prevent us from meeting milestone a, b, c…

(2) Once you get the answers – list the risks and discuss 2 things (a) the likelihood of the risk happening (probability or a %) and (b) the impact of the risk to the milestone – high, medium and low (you can also rate if from 10 to 1)

(3) Next multiply the probability with the impact to get a risk number against each risk and sort them from high to low – there you have it – your “Risk Register”

(4) Finally you figure out ways to mitigate each risk – there are many ways to mitigate risks (avoid, transfer, mitigate, accept etc) but that is a different blog post (coming soon!) – as long as you plan for it you are better prepared than most.

(5) You can even put a $ value to each risk – the cost of the risk multiplied by the probability of the risk – some keep this as a management reserve (if you are really risk averse!)

It is important to assess your risk register every time you are nearing a milestone (or more frequently). Both you and your customer will sleep better at night!

 


Roni Banerjee

roniRoni has 16 years of experience in leading small to large scale IT projects for various markets. Roni successfully founded 2 companies spanning multiple locations and time-zones. He rolls up his sleeves and gets into software development anytime you ask him and database development is his passion – we call him “our sequel junkie”! Roni has a Bachelor’s in Engineering, his very valued PMP and is close to finishing his Global MBA from the coveted Warwick Business School in the UK. When asked about his personal life he says “We, my wife and 2 boys, live in the picturesque Hudson Valley region of New York. A Yankees and New York Giants fan, I also enjoy strumming my guitars every day, mixing recipes from different cultures when I get some time and hack away during an occasional round of golf.”

Posted on Leave a comment

5 ways to handle scope creep

Scope creep – the surreptitious phenomenon that plagues so many software projects (and any other project as well). But so many times it cannot be avoided. Best practices dictate that to avoid this it is important to sign off on a scope baseline before development starts – where both parties (supplier and customer) have understood the scope as of that point and they have understood what each other has understood! Following that any change to scope is accounted for and one or both of the other 2 constraints of a project, cost and time, are updated.

But real world is not as copybook as that!

So many times a customer does not realize that something very crucial is needed in the scope unless they the end product or a pretty close prototype of the end project. In some cases the project does not even make sense without this feature/need. Or, something new has changed since the project got started and now new features or changes are needed to the original scope to make everything work. Most development companies will say “sure we can do this but it will be change requests and cost an additional X and/or the timeline will get changed by Y days.” For the innocent customer, who really had no control or idea at inception, this could break their budget, bank and eventually lead to a failed undertaking.

One may argue that agile methods could help. But agile is a methodology, a culture and does not provide guidelines to this issue. Some may say that a well drafted contract will help – but how does that make the project successful when there are cost or schedule overruns or the developer is choked by a demanding customer?

Well here are a few points that could help!

(1) Discuss upfront about scope creep with your customer. Talk about how it can affect the project constraints (scope, cost and time). Having a separate discussion topic about this can go a long way in the end.

(2) When scope increases and it is important to stick to the planned schedule, the increased scope can be handled by crashing the project with more resources which increases cost for the developer. Keeping a project reserve upfront is a good idea. Why not make it transparent to the customer? “Let’s keep 10% of the total budget as a reserve in case scope changes midway.” Most professionals will like that rather than sign on a gray line!

(3) You may already be doing agile developments with multiple release cycles. Sometimes it could be possible to move some of the changes to a phase 2 or a version 1.5. It can buy some time which allows for better planning.

(4) You might be able to trade off some scope (what?) – yes let me explain. You may be able to have some involvement from the customer’s in-house resources in the development. Of course this needs to be agreeable by both parties and planned carefully and any risk should be managed accordingly. But there are advantages. For one, the customer is part of the development and there is more buy-in by end users when they are part of the creation! It also helps to balance the workload.

(5) From the customer’s standpoint, if the budget is not stretchable and scope needs to increase, they could transfer some of the extra cost incurred by the developer into a future project. In such cases funds may be released as an advance on the next project. It is not the best of situations, but when a project is near completion and there is a deadlock, it is ok to be a bit creative! Similarly from the developers standpoint, if costs need to be contained, they could revisit the original scope and see what can be shaved off for the current project.

The reality is that scope creep is difficult to avoid. But how we manage that is the game changer. In the end it is not about winning – it is about delivering a project that is successful in the eyes of the customer.

 


Roni Banerjee

roniRoni has 16 years of experience in leading small to large scale IT projects for various markets. Roni successfully founded 2 companies spanning multiple locations and time-zones. He rolls up his sleeves and gets into software development anytime you ask him and database development is his passion – we call him “our sequel junkie”! Roni has a Bachelor’s in Engineering, his very valued PMP and is close to finishing his Global MBA from the coveted Warwick Business School in the UK. When asked about his personal life he says “We, my wife and 2 boys, live in the picturesque Hudson Valley region of New York. A Yankees and New York Giants fan, I also enjoy strumming my guitars every day, mixing recipes from different cultures when I get some time and hack away during an occasional round of golf.”

Posted on Leave a comment

5 questions to ask before you start an enterprise mobile app development project

(1) The 1st and the most obvious – do you need an iOS, Android, Windows, RIM product (any or all)?
This is actually an important 1st question. Most customers say “yes”…but it is important to vet it out – questions like “Who is the end consumer?” or “Where will this be used?” or “What % will be Windows vs. Android?” etc. gets the customer thinking – does it make sense to do a RIM development if only 1% of the consumers are using it? It may, depending on the importance of these consumers and the product – but it is good to think through this upfront (maybe a version 2.0?)
There are some good tools to do cross platform developments – we have tried Xamarin – there is also Kony, CoronaLabs etc. – of course traditional tools (Android studio, iOS SDK and XCode 6, Windows .NET for mobility etc.) are always good as well.

 

(2) What is the back-end database and are there API-s to connect to it?
Is the internal environment built in the Microsoft Stack or php/MySQL stack or other? This is key, because most enterprise mobile apps transact back and forth to the internal systems. There are JDBC connectivity processes to SQL for example, but the safest way to go is to have APIs for all the calls to and from the internal database. It does increase the scope so it is important to discuss this upfront. In fact we go all the way of finding out all the methods required for the web service if we have to code that.

 

(3) How many drop-downs do you have in your forms (in all the screens) and are they maintained internally?
Dropdown data is usually in tables and they have setups in the internal systems. If an app is using this data in dropdowns then it must be
synced at all times with the internal systems. Depending on whether the app has to function offline or not, the dropdown data needs to be (a) saved locally in the device or (b) refreshed every time calls are made to the web service from the device. If there are a large number of dropdowns there could be performance issue, especially if some or all of them have a lot of fields and records. It is important to build the correct architecture (cache, edge etc.)

 

(4) Does the app need an offline mode?
This is a BIG question and will change the scope, cost and timeline of the project. Offline mode of an enterprise app creates a lot of challenges that needs to be identified upfront. Here are a few of them that could be generic to all projects:

  • What kind of data will be available in the offline mode?
  • How is the device getting all the data (master records, transactional data, images etc.)?
  • While the data is in the device and it is offline are the “affected” records “locked” in the internal system or a “true sync” is required when the data is sent back to the internal database?
  • How much data needs to be stored locally in the device? (Devices have limited internal database capacity, but there are ways to get around that if architected correctly)
  • Images need to be transferred back and forth using encoding (typically base 64) – does the internal system have decoders? Are the images stored in the network or within the database as blob/image data fields? Are there master/detail type forms? If so how are the calls to the web-service handled?
  • Are there master/detail type forms? If so how are the calls to the web-service handled?

 

(5) How will be app be distributed to the intended users?
Will it be through the App Store/Google Play etc.? If so how are authentications handled? What are the restrictions for downloading and signing up? Or will it be through your own custom distribution portal that can be developed? Or will it be through private/enterprise platforms (like iOS Developer Enterprise Program or Google Enterprise etc.).

 

There are obviously the regular questions on what the app will do (functional specifications), how it will behave and be used (usability specifications), security considerations (which is probably the most important factor) etc.

A well-developed and thought out scope upfront prevents any and all surprises during execution of the project and at delivery. This is true of any project – standard project management philosophies. However, for a mobile development project these questions will either make or break the project – there are slim to none chances of fixing the project in the end if these are not addressed at inception. It may take time upfront, but as a mobile developer you will be able to deliver a richer, cleaner and a “complete” product to your customer.

 


Roni Banerjee

roniRoni has 16 years of experience in leading small to large scale IT projects for various markets. Roni successfully founded 2 companies spanning multiple locations and time-zones. He rolls up his sleeves and gets into software development anytime you ask him and database development is his passion – we call him “our sequel junkie”! Roni has a Bachelor’s in Engineering, his very valued PMP and is close to finishing his Global MBA from the coveted Warwick Business School in the UK. When asked about his personal life he says “We, my wife and 2 boys, live in the picturesque Hudson Valley region of New York. A Yankees and New York Giants fan, I also enjoy strumming my guitars every day, mixing recipes from different cultures when I get some time and hack away during an occasional round of golf.”

Posted on Leave a comment

To cloud or not to cloud that is the question

Following up from our prior blog on “To app or not to app” this one is equally relevant, if not more.

Scene: You are looking for software to solve a business problem or bring efficiencies to operations, processes or provide services to your customers, integrate better with suppliers, partners, employees etc. One question you will have to ask in today’s environments is “should the software solution be a cloud solution?”

 

A brief recap on cloud – cloud computing is a simple concept – your pc, laptop, device is no longer running the software (and/or resource) that you are using. The software is being run in some remote machine (could be your server room or a remote off-site server) – also called SaaS (software as a service). Quick note: cloud also has other components, viz. IaaS (infrastructure as a service), PaaS (platform as a service) and DaaS (development as a service) – but for this discussion let us focus on the Software portion.

 

Some quick, good links to cloud https://medullus.com/cloud-migrations/

 

So to answer the impending question, it is best to answer another one!

Why is the question “To cloud or not to cloud” important?

 

(a) Security – most software now cross the boundaries of your office (firewall). They have interactions with email, customers, suppliers, surely employees accessing from remote, mobile devices etc. Although your internal network is buttoned up, your security and governance policies are well-defined and security audits are intact, it is still vulnerable. The only reason is that breaches are a factor of the opportunities that “system access” provide to hackers and not dependent on where the data resides. Studies have proved that it is safer to be in the cloud than traditional IT networks. Why that is the case is a discussion for another time, but you can easily search this on the internet or wait for our next few blogs on this! Having said that you cannot uproot your business and move to the cloud today if you are not there yet, but when developing your next software, you should see if the software can be “cloud ready”

 

(b) Scalability – can the software scale with your business? If you experience growth do you need to reinvest in upgrading the software? Similarly if you need to scale down, does the software environment provide for cutting costs? In a traditional IT environment it is difficult to cut costs when you have invested in infrastructure. It is a sunk cost. Software and infrastructure in a cloud environment may provide you with the scalability you need if implemented correctly.

 

(c) Availability – enterprise software needs to be highly available. Today’s business is 24×7 and that is not an idiom nor a cliché anymore – it is the life blood of your business and to be competitive you need to have software that has high availability if not fault tolerant. A traditional IT infrastructure and software system needs downtime – can you afford such downtime? Cloud environments typically have redundancy built in so downtime is minimal to none.

 

(d) Performance – software as a service is vulnerable to internet band width. While that can be a drawback, most well-designed software allows an offline component that caches data locally while there is latency and syncs updates back to the cloud once band width is restored. However such latencies are slim to none in today’s broadband markets. If you are located in areas where you do not have good internet most of the time, then a remote cloud solution may not be viable. But your software can still enjoy high availability if it is “cloud ready” and runs in a server located within your premises and is not running locally on your devices. And when you have that broadband and you are ready to migrate a remote cloud solution all you need to do is network changes – your software is already cloud enabled!

 

(e) Support – cloud software solutions are a lot easier to support, administer and monitor. Your IT support will need to monitor one resource (or a few, depending on the architecture and complexity of the software) instead of end user devices. Patch installations, upgrades and release management is relatively easier due to the same reasons.

 

(f) Ease of access – this is a big benefit – a software as a service allows the software to be accessed from anywhere and if designed and developed correctly, from any device. No more worrying about VPN or connecting to remote terminals, printers etc – the software runs anywhere so long as the device is connected to the internet.

 

(g) Cost (short term and long term) – finally, the inevitable discussion re: cost. Is it cheaper to have a Saas model, desktop software, remote install? Short term? (1-6 months), longer term? (18 months+). The real question to ask is the value you are getting from a piece of software. There are upfront costs in all types of software – some are cheaper to install, others are cheaper when looking at lifetime ownership. This is a topic of big debate and the correct answer is “it depends” – although that is not an answer that you would like to hear as a consumer, it is also not that indeterminate. Cost comparisons can be done at proposal and a good software development company will provide both alternatives with pros, cons and value (short term and lifetime).

 

So to answer the main question – “To cloud or not to cloud” from a software development perspective – the answer is a big YES. Every software that gets developed in today’s business environments should be “cloud ready” – are you asking this question to your software developers?

 


Roni Banerjee

roniRoni has 16 years of experience in leading small to large scale IT projects for various markets. Roni successfully founded 2 companies spanning multiple locations and time-zones. He rolls up his sleeves and gets into software development anytime you ask him and database development is his passion – we call him “our sequel junkie”! Roni has a Bachelor’s in Engineering, his very valued PMP and is close to finishing his Global MBA from the coveted Warwick Business School in the UK. When asked about his personal life he says “We, my wife and 2 boys, live in the picturesque Hudson Valley region of New York. A Yankees and New York Giants fan, I also enjoy strumming my guitars every day, mixing recipes from different cultures when I get some time and hack away during an occasional round of golf.”

Posted on Leave a comment

The ONE thing that will make you a better software developer

 Simple 1 line answer: “Think as an end-user of your software.”  Let me paint the picture first. You are a software developer, resplendent in the knowledge of the latest and greatest technology out in the market. You are highly valued in a development project and your skills are sought after. You start a project, understand…

blog-theOne-2

The ONE thing that will make you a better software developer


Simple 1 line answer: “Think as an end-user of your software.” 

Let me paint the picture first. You are a software developer, resplendent in the knowledge of the latest and greatest technology out in the market. You are highly valued in a development project and your skills are sought after. You start a project, understand the spec and develop it with “Gillette” lines of code. It comes back with 30 changes – do you ever see a pattern? Is it mostly usability issues?

I have developed software since I was 16 years old – my first being a little bob-sled game with chunky graphics on my shining new Sinclair – 32K memory and all, which got used up to load that one game! It was accomplished in around 1000 lines of code and it worked quite well – I enjoyed playing it! But when my friends came to play it they pointed out several things that I did not think of – why use the control and shift buttons to move, can we not use the arrow keys (I did not know how to program arrow keys so used the Ctrl and Shift keys); when the sled hits the wall can it not bounce back with lost points, instead of having to start over? There were other ideas but I was not paying attention – was upset that they did not like so many things

It taught me a valuable lesson – before I work on my next “project” I need to understand a few things early on. And I realized that the more specific I can get, the closer I am to home stretch. Till date I still use the same thought process whenever I have to develop software.

(a) Who is going to use my piece of code?

I like to understand the user base – are they mostly Accountants, lawyers, Marketing folks? Average age helps – people in their 50s are used to entering data in a different way than say, people in their 20s. Geographic information is important as well – how do they enter address information in the UK?

(b) What is the end user environment?

Mobile, office, Microsoft, OpenOffice etc

(c) Will my code be used by only 1 company or will the customer’s customer or supplier have access to that?

You may have to think about usability if the users are across different companies, Geographies, cultures etc

(d) Never make the mistake that a lot of IT professionals make – “Uggh…users are so…” (You know what I am saying – bashing the end-users). Most users are very smart professionals – they can be Operations managers, field operators, technicians, Accountants, para-legals – can be anyone. However…leads me to the next point…

(e) Do not assume that the end-user will know how to use your software – give visual cues, put some hints (tooltips, labels, explanations) – help them love your software!

These are some starting blocks and should help a developer to start thinking along these lines. In today’s software development environments designers and UX developers are already taking care of such end-user experiences. But when you are coding, try to think like an end-user. Look at the software as a whole (or the part you can touch and feel) – ask questions to your project manager if something is not clear (say that you want to make the end-user experience the best there can be). You will be able to create a richer piece of code.

There are Project Managers, designers, analysts, subject matter experts and other specialized roles in a project. But the final product is being constructed by a developer. It is an empowering thought and when as a developer you feel empowered, you will go the extra mile.

 


Roni Banerjee

roniRoni has 16 years of experience in leading small to large scale IT projects for various markets. Roni successfully founded 2 companies spanning multiple locations and time-zones. He rolls up his sleeves and gets into software development anytime you ask him and database development is his passion – we call him “our sequel junkie”! Roni has a Bachelor’s in Engineering, his very valued PMP and is close to finishing his Global MBA from the coveted Warwick Business School in the UK. When asked about his personal life he says “We, my wife and 2 boys, live in the picturesque Hudson Valley region of New York. A Yankees and New York Giants fan, I also enjoy strumming my guitars every day, mixing recipes from different cultures when I get some time and hack away during an occasional round of golf.”

Posted on Leave a comment

5 points to consider in choosing a software development company for your project

The 1st question to ask, why choose, when I already have someone I work with or when my best friend has already referred me to some company? The simple answer is that as a business leader you have to ask questions, all the time, if you want to be ahead of your competition. Software is…

The 1st question to ask, why choose, when I already have someone I work with or when my best friend has already referred me to some company?

The simple answer is that as a business leader you have to ask questions, all the time, if you want to be ahead of your competition. Software is the shield and armor of every business today. If it is not properly implemented or supported, it can bring down a business. On the other hand a good software solution can provide big competitive advantages through operational efficiencies, customer management, supplier integrations and even create that entry barrier to your business that you have always wanted.

So ask these questions before the next big IT project that you want to undertake.

1) What is the software vendor’s innovation statement?

What is that you might say! There is the mission statement, some companies have vision statements but the innovation statement is there in the voice and culture of a forward thinking company. Where do you find that? Reading their blogs, their website content, viewing their offerings gives a decent idea; does it resonate with what you read about in the news? If you are not into tech news just follow a few blogs from the top technology companies for a few days – Microsoft, IBM, Google, Apple etc. In case you have not kept up with tech news, in the next few years it will be all about cloud, mobility, social media, big data, analytics etc. Maybe these are not crucial for your project needs, but a forward thinking IT Company will provide you a solution that will give you that competitive edge.

2) Are they a good fit for your business/business unit/team?

“Do not judge a book by its cover” so just going off of a website or blog should not be the only selection criteria. When you are looking for a software development company, a good starting point is their website, the testimonials, content etc. But before you do that, ask yourself this question – what is the culture of my business/unit/team? Is it traditional, corporate, functional, projectized, agile, DevOps oriented, emergent…? Culture is basically “the way we do things around here”. A software development company is not just delivering code; they are giving you a solution for your business need and/or problem. They will work with your team, end users and the solution will most probably permeate into your business, customers, suppliers and partners. So ask them questions like “What are your project management methodologies?” “Where are you heading in the next 18 months?” “How do you select projects?” Check their leadership team and see if they have online profiles – do they have similar business values/goals?

3) Check out their customer profile and industry focus and also ask them the same question

Do they have a varied customer base? In most cases that is a good thing for a software development company as they can bring best practices from different industries to your business. In today’s business the industry walls have been corroded and they spill over to each other. So having a diversified portfolio of customers and domain experience is a good thing for a software company. But there has to be some focus – a software company with no industry focus is a sign of a company that operates with no specific strategy – do you want to work with a company like that?

4) Do they list out their internal development, testing and implementation team for you?

Most software development companies have a front-facing sales person who has software development experience. But he/she will probably not be doing the actual work. Do you know who will do the actual development? You may say that that is up to the software company. But when you call a contractor to fix the roof of your house, you need to know who will be doing the actual work! Some companies list out their developers, testers in their website. You should ask the sales person about the team, including the specifics of the team members. You are the customer and you are in charge. If a software development company is uncomfortable with these questions or does not provide clear answers it should raise a flag in your mind.

5) What is their band width to do your project?

Every company will say there is ample band width! So how can you find that out? One way is to do a simple analysis. Ask yourself these 2 questions – What is the latest date by which this project needs to be done? When is the earliest that you can get started with the project? You will get a starting point. Next ask the software company (a) how many projects have they going on at the current moment? (b) How many developers do they have? If you are not getting these answers quickly or clearly there is a clear indication that the company is not in control of their band width. If you do get the answers do the math – take an average of 1 project per developer @ 3 months. So if there are 5 ongoing projects and there are 3 developers and your own project guestimate is 2 months, there is a good possibility of ample band-width (they can deliver in 1.5 months if they put in the 2 developers available). With the same company if your guestimate is 1 month, it might be tight. Again these are rudimentary numbers, but it does provide a guiding point.

At the end of the day you will pick someone you feel comfortable with. But having no guidelines is like picking up the yellow book, flipping to a page, closing your fingers and calling the 1st company you hit! While that may work out for some, it is a recipe for disaster when choosing your software development partner.

 


Roni Banerjee

roniRoni has 16 years of experience in leading small to large scale IT projects for various markets. Roni successfully founded 2 companies spanning multiple locations and time-zones. He rolls up his sleeves and gets into software development anytime you ask him and database development is his passion – we call him “our sequel junkie”! Roni has a Bachelor’s in Engineering, his very valued PMP and is close to finishing his Global MBA from the coveted Warwick Business School in the UK. When asked about his personal life he says “We, my wife and 2 boys, live in the picturesque Hudson Valley region of New York. A Yankees and New York Giants fan, I also enjoy strumming my guitars every day, mixing recipes from different cultures when I get some time and hack away during an occasional round of golf.”