Search

Digital Software Development

Learning's from my digital journey

Quote

“Cities were always like people, showing their varying personalities to the traveler. Depending on the city and on the traveler, there might begin a mutual love, or dislike, friendship, or enmity. Where one city will rise a certain individual to glory, it will destroy another who is not suited to its personality. Only through travel can we know where we belong or not, where we are loved and where we are rejected.”
― Roman Payne, Cities & Countries

Microservices : Reading List

Modern day businesses requires agility to survive and to be a leader. If you translate this business requirement into technology requirement, this means X Deploys a day (Time to market).

The big bloated, complex applications that we have built over a period of time is not allowing us to meet this X Deploys a day without compromising quality. If there is a way to decompose the big bloated monolith application blocks into smaller chunks it will help the business to extend, manage and deploy and eventually the X Deploys a day could become a reality.

How do we get there? Is there a way to achieve this? Microservices (lots of small applications) is one of the ways that could help in achieving this.

Microservices means developing a single, small, meaningful functional feature as single service, each service has its own process and communicate with lightweight mechanism, deployed in single or multiple servers.
Source

Additional Reading List
The Twelve-Factor App
http://12factor.net/

Microservices Reading List
http://www.mattstine.com/microservices

Understanding Microservices
http://kpbird.com/2014/11/Monolithic-vs-MicroService-Architecture/
http://shakayumi.tumblr.com/post/95688359079/whats-the-big-idea-with-microservices
http://kpbird.com/2014/06/Microservice-Architecture-A-Quick-Guide/
http://www.infoq.com/articles/microservices-intro
http://www.slideshare.net/mstine/microservices-cf-summit
http://java.dzone.com/articles/microservice-architecture
http://tech.gilt.com/post/35711763311/how-gilt-com-give-came-to-be

Microservices Architecture and Scalability
http://www.pst.ifi.lmu.de/Lehre/wise-14-15/mse/microservice-architectures.pdf
http://technologyconversations.com/2015/01/26/microservices-development-with-scala-spray-mongodb-docker-and-ansible/

Microservices Patterns
http://blog.arungupta.me/microservice-design-patterns/
http://microservices.io/patterns/index.html

Simon Brown’s Video : Software Architecture & Balance with Agility
https://vimeo.com/user22258446/review/79382531/91467930a4

Books
Building Microservices
Software Architecture for Developers

Frameworks
http://gilliam.github.io/concepts.html
http://projects.spring.io/spring-boot/
http://fabric8.io/
http://azure.microsoft.com/en-us/campaigns/service-fabric/

Management 101 : Bad job with a Good Boss is better than a Good Job with a Bad Boss!

fPuLkQNXRUKI6HQ2cMPf_IMG_4761

People management is probably the most difficult job in my opinion.  What I meant is for someone who is passionate about people management. What happens to someone who are not passionate about people management and when they are asked to suddenly manage a set of people who are experienced (May be 10+, 15+ years) and /or are a bunch of Alpha’s?

If you are tasked to manage a bunch of senior folks for the first time, following are a set of people management 101 that you could help you establish yourself.

  • Start with Communicating your Vision for the newly formed team/or the team you have taken over.
  • Meet with them on a regular basis and explain what are the steps the team would take to reach your vision.
  • Explain your team members why they are important to you.
  • Explain the team that how what they are doing is helping them, you, business unit and the company.
  • Setup a weekly cadence and repeat. People have short term memory. Bring them together (face to face) on a regular basis.
  • Have regular 1:1s and talk to them on a regular basis. Set Expectations, give feedback and take feedback. If you don’t know how to set expectations, then make it explicit. If you BS that they are senior members and they will self-manage and they don’t need direction etc.…

“Many people are unmotivated, not because they have a great reason to be, but rather because they have not been given a great reason to be motivated & engaged”Delegation

  • Be Honest and ask your team for advice/suggestions. When you get suggestions/advice, stop your normal BS and listen. You are asking for advice/suggestion, either because it’s not your specialization or may be the other person is better than you.

“People are either motivated or they are not. Unless you give motivated people something to believe in, something bigger than their job to work toward, they will motivate themselves to find a new job and you’ll be stuck with whoever’s left” ~ Simon Sinek

  • If you don’t know how their career will shape up, ask them on what they want to achieve, take help from other folks in the company who can help in defining their career roadmap. This is a very important step as most of the 15+ years guys would have hit the glass-ceiling at this point. Helping them with defining the career roadmap, you will earn their trust and respect .

“The problem when someone feels burned out, bored, unchallenged, or stifled by their work is not the job itself but rather the environment and playground rules given to them to do the job at hand” ~ Tony Hsieh

  • When you want someone to work on something, don’t just forward emails with FYI. Call your team members and give them the context. Explain them why you are expecting them to work on it. Emails may not communicate everything. At the end you don’t want your team members to call you as “Post Master“.
  • Show your confidence. When you see email exchanges, don’t keep silence. There are times where you need be assertive, authoritative etc. You might think you are helping your team by being silent, wherein they might think differently.
  • Lead from the front. If only your team members are expected to work and if you work only on managing your manger’s perception, I don’t think you will be successful.
  • Show that you really care. If you say to your team members that they are really very important, then they should also feel it that way. Stop providing only Lip service.

I am sure if you show people that you really care , people will listen and work for you.

At an Organization Level
Whenever there is a change at the leadership level, please handhold your leaders/managers. There are certain cultural aspects and reasons why certain things happen in a certain way. Understand how the new person is managing their team members. Some people are very good in managing perception. You don’t want your team to vanish in a flash.

Software development is based on People and if your best guys don’t perform, there is something more than what you see. Maybe, it is time for the senior guys to speak to your best people and understand. Ultimately, if people don’t perform, company will not be performing either.

Happy Learning!

Image Credit
Harvey Enrile | Unsplash.com
Ambro | FreeDigitalPhotos.net

The Phoenix Project

It’s been a while since I have enjoyed reading a book end to end. I first heard about this book “The Phoenix Project” last year and it kept appearing in my list for a long time. Recently, I met Vivek Juneja and he was talking about it and I felt that it is time for me to read this one.

There are way too many things one can learn from this book. Irrespective of one’s title and role in Software development, one can enjoy reading this book.

Some excellent comments all over the web
http://cloudarchitectmusings.com/2013/01/28/book-review-the-phoenix-project-aka-karate-kid-meets-devops/
http://www.goodreads.com/book/show/17255186-the-phoenix-project
http://swreflections.blogspot.in/2013/03/book-review-phoenix-project.html

Happy Reading!

Digital Businesses and APIs

I first heard the term API during 1996-97, when I was programming in VB (Win32 APIs). Hence this is not a new term for sure. But you can hear this term quite frequently these days. What is happening? What has changed? Let us take couple of traditional businesses and see how they have operated.

Before 1990 During 1990-2010 Now
A bank used to transact only between certain business hours till some time back. Internet Banking Came into Picture. One needed a Desktop to operate. Center and Web as Channels. Internet and Mobile Banking All one need is some form of mobile device to operate. Operations are 24/7 and the channels are multiple.
The business model for an University to run courses on-premise between certain business hours. Universities started providing online courses. Online, Offline Courses available. Courses are provided via Web , Mobile and Tablet channels Newer models like MooC coming into picture
A Book store selling books in their stores/chain of stores between certain business hours Internet Shopping via Browsers Store still exist. Most of the shopping happens via Tablets, Mobile and Web. Price Comparison Sites/Applications. Sell via Blogs and other websites (Widgets). Retargeting

What is the underlying trend? Internet Explosion and growth of Smart Phones/Devices has forced companies to rethink the way they have done business. The disruption has made companies to rethink their business models. Newer Digital Business Models are evolving which is enabling companies to reach to newer markets, global customers and gain competitive advantage. Few examples You can pay utility bills via the popular chat application you are using http://www.innovativechina.com/2013/07/china-merchants-bank-launches-its-own-wechat-bank/ http://www.opptrends.com/2014/04/after-alibaba-tencent-now-baidu-inc-bidu-comes-with-mobile-wallet/ Internet companies are providing interest for your deposits. http://qz.com/160589/alibaba-yu-e-bao-money-market-account-serious-threat-to-chinese-banks/ It’s a great thing for a consumer and definitely a great opportunity for companies. To address this increasing number of channels and look at newer business opportunities and models, companies needed a way to expose and consume data. APIs have become the common way to expose, consume and communicate to the various channels and fuel innovation.

An API — Application Programming Interface — at its most basic level, allows your product or service to talk to other products or services. Via What is an API?

To see an API in action, check this https://developer.pearson.com/apis/topten-travel-guides/#!/travel/listCategories_get_0Portal shows all the APIs that are available. Good one. This is one of my favorite example. Is this happening in just one industry? No, the changes are across the industries (Banking, Retail, Healthcare, Energy, Transportation, Automotive) to name a few. Check this link to see the fastest growing API Categories http://www.slideshare.net/programmableweb/fastest-growing-web-api-categories-last-6-months/ Different types of APIs

  1. Open APIs (Public, Web APIs – Open to All)
  2. Partner APIs  (Protected, Open to Select Few)
  3. Enterprise APIs (Private, Your traditional SOA Based mostly, Open to Employees only)

In a nutshell, APIs are a must-have in any technology strategy today. APIs power the Digital Business and acts as the Glue in SMAC stack. References: http://apievangelist.com/index.html http://www.cutter.com/content-and-analysis/resource-centers/agile-project-management/sample-our-research/apmu1306.html Happy Learning!!!

Technology Ecosystem for the Modern Day Business Application Developer

Technology is changing at a rapid pace. Everyday you see something new to be learnt, which did not exist few months back. If you are like me, who has come from an application development background, what does this change means to you?

For sure, this is not for gyan. Tried depicting this in a form, which i could use as a reference.  I purposefully, hace not included Desktop applications in this. If you are working in some of them, you may have include it for yourself. Obviously, this may change when we revisit this in couple of months.

Similarly, things like Programming Languages (Java, C#, Ruby), OOPS Concepts, TDD, SOLID Principles are foundations.

Technology Ecosystem

Is this Perfect? Not Necessarily. This is my version and you may have a different way of visualizing this. If you create one, please do share it with me :)

Did I cover all aspects? Not really. Take Analytics as an example. If you take Descriptive Analytics, you start looking at traditional Business Intelligence, Data Warehousing, Data Visualization etc. Each one is a separate block diagram on its own. Hence, i have stopped it at a very high level for this.

Can i be a master of all this? May not be possible. But if we have to call ourselves as techies, then we at least need to know what these are, where we can use them and may be pick and choose couple of items that could be of our interest and master it.

Happy Learning!!!

Why do i need to understand the business model canvas?

One quick question, that comes to everyone’s mind is that why do i need to understand the fundamentals of Business model canvas? It is a very common misconception that a Business model canvas is used only to visualize new business models. You need to know this only if you are going to have your own start up.

In reality a business model canvas allows you to visualize a new or existing business models, how your organization is creating, delivering, and capturing value. If it is a existing business, business model canvas is  based on a series of facts. Operating divisions execute the known business model.  Inside existing companies and divisions, the business model canvas is used as a tool to implement and continuously improve existing business models incrementally. This might include new products, markets or acquisitions.

Reference: http://steveblank.com/2012/12/03/the-future-of-corporate-innovation-and-entrepreneurship/

Use a Business Model Canvas :

  • If you are joining a new company, you use this to understand the business model of the new company.
  • If you are working with a customer, you can do use this to understand your customers better.
  • If you are talking to a new prospect you can use the canvas to have a better understanding of your new prospect, so that you can engage in a better conversation.

If you are working with a services organization, it is very important to understand this in detail, so that you will be able to help your company sustain and farm their existing relationships.

Happy Learning!!!

Business Model Canvas

The first time, i came to know about Business Model Canvas was couple of years ago. I always thought i understood the fundas. But recently tried this and realized it was not the case.

I was recently working on creating a strategy map and landed in this excellent post by Steve Blank “The Future of Corporate Innovation and Entrepreneurship“.  This post is a must read, if you want to understand why we are doing this.

While org charts provided the “who” of a business, companies were missing a way to visualize the “how” of a business. Strategy Maps are one of the ways companies visualized the “How” of a business. Strategy Maps are a tool to translate the strategy into specific actions and objectives to measure the progress of how the strategy gets implemented.

By the 21st century, organizations still lacked a tool to create and formulate new strategies. Enter the Business Model Canvas. The canvas describes the rationale of how an organization creates, delivers, and captures value (economic, social, or other forms of value). The canvas ties together the “who and how” and provides the “why”. External to the canvas are the environmental influences (industry forces, market forces, key trends and macro-economic forces.) With the business model canvas in hand, we can now approach rethinking corporate innovation strategy and structure.

Existing companies and their operating divisions implement known business models. Using the business model canvas, they can draw how their organization is creating, delivering, and capturing value. A business model for an existing company or division is not filled with hypotheses, it is filled with a series of facts. Operating divisions execute the known business model. Plans and processes are in place, and rules, job specifications, revenue, profit and margin goals have been set. Forecasts can be based on a series of known conditions.

Inside existing companies and divisions, the business model canvas is used as a tool to implement and continuously improve existing business models incrementally. This might include new products, markets or acquisitions.

Couple of good references to understand this in detail
Understanding Business model fundamentals
Business Model Canvas 101
Understanding Facebook Business Model
Understanding Google Business Model

Happy Learning!!!

Business Model vs Business Plan

How do you explain the difference between a  business model and business plan? I recently tried and struggled to explain. Found this excellent post by Steve Blank here.

Business Plan

A business plan is the execution document that existing companies write when planning product-line extensions where customer, market and product features are known. The plan is an operating document describes the execution strategy for addressing these “knowns.”

Entrepreneurs treat a business plan, once written, as the culmination of everything they know and believe. All they need to do is add money and magically that five-year forecast in Appendix A will simply happen if they execute to the plan.

 Business Model

A business model describes how your company creates, delivers and captures value. A business model is designed to change rapidly to reflect what you find outside the building in talking to customers. It’s dynamic and it reflects the iterative reality that businesses face. 

References:

Validate Your Business Model Start With a Business Model, Not a Business Plan

No Plan Survives First Contact With Customers – Business Plans versus Business Models

From Business Models to Business Plan

Happy Learning!!!

Stop Blaming Others. Take ownership of your own team members… at the least!!!

Hiring good people is not easy. It doesn’t matter what role you are hiring (Architect, Manager, Tech Lead, Developers, Automation Engineers. Don’t question me why I have not mentioned manual testers in this list :(), it takes a while to find the right person.

Hire MeI am involved in Hiring people for the last 10 years and my average is 40:1. Unless you are lucky and know someone for the job, you may have to speak to 40 candidates before finding 1 Good guy. This average has not reduced in the last 10 years and I don’t see that reducing. It means on an average to get one good guy into the system, it takes approximately 40 hours (at the least).

After you spend so much time and on board a member, there is still no guarantee that the person whom you hired will work.

If it takes so much time to hire and on board a member, why not we spend time with those people, keep them motivated and retain them in our own teams. This is a question I get every time when I hear a good guy leaving.

I have heard multiple good people leaving off late and my frustrations has gone to its peak last week.

I recently heard a manager saying a good team member is leaving because this guy heard someone else talking for 10 minutes, got frustrated and leaving. I know that, I am a naive person. I don’t manage team members now. But, this immediately came out of my mouth.

Really…. Really…. Really…. Really….

May be, it could be just a triggering point. But, this guy would have left even otherwise. Why can’t this manager see this coming?

More than 1 million employees can’t be wrong, so bosses take heed of this. A Gallup poll of more 1 million employed U.S. workers concluded that the No. 1 reason people quit their jobs is a bad boss or immediate supervisor.

People don’t leave jobs, they leave managers. 

If it takes so much time to hire a person, why don’t managers generally spend time with their best guys, motivate them and retain them?

After thinking for a long time this is my conclusion. Generally not every manager gets involved in Hiring. They don’t even speak to candidates and spend enough time before getting them on board. Otherwise, stand in the road with a board “I am hiring” and whoever comes in their way, offer them a job.

When you don’t spend time in hiring (like spending 40 hours), you will not even know what is involved in getting a good guy work for you. It’s someone else’ blood. Why should I care in that case?

Worried People

Guys… Let us stop blaming others. At least let us take ownership for our own people. Start spending time with your team members. Speak to them (1:1 – Once in a month) and understand them. Be available, honest and transparent. Help them resolve their day to day issues. Trust will automatically build. 1 Lac here and there will not become a major issue.

Better Bosses, Better Retention!

Happy Learning!!!


Image courtesy

Stuart Miles / FreeDigitalPhotos.net
Ambro / FreeDigitalPhotos.net

Blog at WordPress.com. | The Baskerville Theme.

Up ↑

Follow

Get every new post delivered to your Inbox.

Join 50 other followers