How to run a successful Design Sprint

Design Sprints can generate remarkable output for your company such as a backlog of impactful ideas, functional prototypes, learning, and key insights from customers along with real business opportunities.Consider this situation: your company needs to solve a major real-world problem you need a novel solution, better than any other offering available in the market. You could be aiming for a product, a component, a system, a service, or a process.

How to run a successful Design Sprint 1

In an ideal scenario, before making any investments, you would need the set of candidate solutions, prototyped, and exposed to a controlled set of real users. This would enable enough signals and insights to make informed decisions and set up a better product development strategy.To get there from a problem to functional prototypes enriched with customer feedback you can follow standard paths.

For example, you can consult the experts in your organization, assign work-streams to different teams, coordinate the work, schedule brainstorming meetings, and wait in the queue to get UI designs and then to develop prototypes a lengthy process with several drawbacks, dependencies, issues, and risks.Or, you can set up a powerful multidisciplinary team and lock it in a room for a few days, with a clear goal: a shortlist of inexpensive, realistic prototypes of selected high-potential concepts, each enriched with feedback from real users.A rapid innovation process outputting potential solutions to your problem and evidence from real users on how effective they are.

This intense ideation and prototyping process comes in several forms and variations a popular one being the Design Sprint, which promises Solutions to big problems in just five days. It uses design thinking principles and introduces several techniques, tools, and rules.The success factorsTo get real value from a Design Sprint, you must emphasize on the right setup, preparation, and readiness or you may end up hosting an expensive multi-day brainstorming session outputting just noise.

Having joined a large number of ideation and prototyping sessions along with 10s of formal Design Sprints, I would summarize the critical aspects and success factors in the following way.1. Define the problem statementDont let the problem statement become your real problem!

Most of the unsuccessful Design Sprints and prototyping sessions I have experienced so far, share this specific single point of failure: a poorly defined problem statement, which triggers time-consuming discussions, iterations, and unnecessary regression setting the entire process at risk.In contrast, the Design Sprints that started with clarity on the problem to be solved moved on rapidly towards impressive solutions and prototypes. The Design Sprints that started with clarity on the problem to be solved moved on rapidly towards impressive solutions and prototypes.

Although the first day of the Design Sprint is usually about framing and re-framing the problem statement, I am convinced that having a good problem definition upfront is key for a successful outcome. You can always revise it and reset it as necessary during the first day, but a solid basis can make the difference. In any case, the team needs to be open to understand the problem and ready to consider different angles and unconventional approaches.

There are several templates and methods to help you construct a valid problem statement in general, you need to describe the current situation vs the ideal state and the related implications for the involved users.2. Set up the right teamThe synthesis of the team sets the foundation for the entire Design Sprint you need diversity of thought, skills, and perspectives along with expertise and creativeness all combined in a small multidisciplinary team with the right culture: a team willing to share, collaborate, challenge assumptions, think big but also be pragmatic and purpose-driven.

A few factors can introduce serious risks to the process:The wrong dynamics in the team (for instance, members do not express their ideas for fear of getting criticized by more senior members in the team)a large team (add more than 67 people and youll get additional problems to solve)or the wrong mindset (people tend to protect ideas versus sharing, or believe that they know the right solution, upfront).The members of the team must forget about seniority, hierarchy, and authority. They need to be open to new ideas, new perspectives, and different views.

They also need to be ready to influence and get influenced, and to minimize the impact of bias and work together towards a shared mission a great solution to a challenging problem.Physical space is also very important to allow the team to focus, express random thoughts and ideas, collaborate and quickly visualize concepts. You need a room with enough space, the right equipment and office supplies such as writable walls, whiteboards and well, plenty of sticky notes.

3. Make sure the team is well-preparedDesign Sprints are demanding fast and intense. The key to success is to have a well-prepared team.

Even if your dream team consists of domain experts and senior business leaders, they all have to put some extra effort to get prepared so they fully understand the problem and its wider context, the technology, the competition, and the relevant global trends. Make sure that you clearly communicate to the team not only the context and the problem to be solved but also the rules and the need to get prepared.4.

Focus on ideationAssuming that a solid problem statement and the right preparation is there, the next most important element is ideation. While the Design Sprint process provides some tools to empower ideation, I would strongly recommend that you:increase the time allocated to idea generation, sketching, and pitching andcapture the ideas in digital format with more detailed descriptions. A backlog of ideas is a great asset one of the most important outputs of the sprint and the key input to the prototyping phase.

Ideas should not be left on sticky notes even the non-selected ones could prove to be relevant and valuable in the future.This is why you need to feed the ideas generated in the Sprint into a centralized ideation system and make them discoverable by the right audience. 5.

Get ready for rapid prototypingDelivering realistic prototypes is a critical part of this process since they will be used to capture user/ customer feedback. You dont want your great concept to receive negative feedback due to a poor prototype implementation that could mislead related decisions and undermine the overall value of the Design Sprint. Your team must be capable of real rapid prototyping able to build realistic user experiences in just a couple of days or less.

Rapid Prototyping requires the right resources in the team along with general technological readiness. For instance, to speed up the process you need to leverage any reusable software components you have, standardized datasets, artificial/ static data, UI elements, APIs, models, and services. You will also need systems, tools, and processes for instance, wireframing, software development environments, and DevOps capabilities.

The availability of special equipment might be important. For example, if physical prototyping is involved, a 3D printer might be of real value. Or if you expect Augmented Reality prototypes, you will need access to related devices along with any templates, APIs, and documentation.

6. Find a great FacilitatorThis is a key role in fact, I see the facilitator as the real protagonist of the Design Sprint. The facilitator must maintain the right pace, direction, energy levels, and interaction patterns, to lead the team towards a clear, shared goal: define and prototype a great, novel concept solving the problem for real users.

It is a difficult profile to find you need somebody mastering the process itself, but also having a deep understanding of the problem and the particular business context. The facilitator must be capable of reading the characters in the room and take necessary action to make sure that all voices are heard and considered.7.

Capture everythingDesign Sprints are typically very noisy with tons of sticky notes, ideas, and stories on the walls all these, in-between discussions, arguments, decisions, and random thoughts. And yes, this controlled chaos is exciting, but unless you have a dedicated person responsible for taking (digital) notes, you will end up frustrated, trying to decode colorful sticky notes and reverse-engineer random drawings. To make the most of the thoughts and ideas, you need to capture them in a modern way so they are discoverable and potentially usable.

8. Find a Leader, not just a deciderI find the proposed decision-making process with the super-voting concept and the sticky votes on the sketches oversimplified and very sensitive to team dynamics and the overall state of the team. Moreover, given the extra power, the decider must demonstrate a deep understanding of the concepts, the ability to think strategically, and communicate with clarity.

You need a real leader there, not an authority or political person.The facilitator and the team should feel free to challenge whatever decisions made by the decider, by asking for justification the business or technical reasoning.9.

Measure SuccessA design sprint is an expensive process consider the associated direct and indirect costs of having x members full-time for z days. Thus, measuring the success of the Design Sprint itself is important. In the case of an isolated sprint, success can be measured by processing direct feedback, outputs, and mid-term outcomes for example business opportunities and success stories linked with the deliverables of the Sprint.

If you are running successive Design Sprints, you need a framework to capture and quantify Sprint outputs and impact a flow towards a centralized idea and knowledge repository. This data store should enable full tracking of the real business opportunities and financial gains associated with each of your Design Sprints while specialized KPIs allow tracking the success of the overall innovation program.The key question, in this case, is regarding the baseline to compare this quantified innovation output against to be covered in a forthcoming article.

Design Sprints can generate remarkable output for your company such as a backlog of impactful ideas (also with IP opportunities), functional prototypes, learnings, and key insights from customers along with real business opportunities. At the same time, assuming proper and frequent execution, Design Sprints can lead to significant cultural improvements towards the innovation mode.The Innovation Mode - Book and Innovation ResourcesDiscover methods and techniques to transform your organization into an innovation machine.

Innovation Blog and statement wikipedia. org/wiki/Problem_statementDesign Sprint book Thinking by Will H McMahan on UnsplashRelated: How to lead innovation and drive change in engineering teamsRelated articlesStartups and the Importance of Agile Product DevelopmentRapid Prototyping practices for Software Engineering teamsHow to lead innovation and drive change in engineering teamsHow (and Why) to Write Great User StoriesHow to become a great Product ManagerIs this a prototype or an MVP? Well actually, its a proof of concept.

How to setup and lead a great product development teamTechnology Innovation Trends and Opportunities in 2018.

Articles recommandés
Amazon & Antitrust: the Cheat Sheet
If you arent familiar with Amazons prominence (some would say dominance) in the online market, you need to leave the cave youre living inside and soak in the sunshine. If you are interested in Amazons ability to navigate the murky waters of antitrust regulations and anti-competitive practices, youve come to the right place.BackgroundWhat started over 20 years ago as a small, online book seller based out of a two-car garage has grown into an online retail empire. Amazon has gained a loyal following of consumers due to its floor pricing strategies. The majority of the products it sells cannot be found for a lower price anywhere else.Although Amazons roots are entrenched in the book industry, it has expanded to include so many other services that the books market is no longer its primary focus. Nevertheless, the books market is where the bulk of antitrust cases and arguments against Amazon stem from.Fast Forward to 2010Apples release of the iPad in 2010 coincides with the Big 5 publishers push for fairer e-book prices. Fairer for whom, you may ask? At the time, Amazon had approximately 90% market share in the e-books market, and Apple, along with the Big 5, wanted to disrupt Amazons dominance in this area. These companies tried to dismantle Amazons share of this market by raising e-book prices. The publishers claimed that Amazons lower prices were unfair in relation to writing quality. These publishers believed they couldnt adequately subsidize authors writings while still remaining competitive compared to Amazons prices. The Big 5 did not want to compromise written quality for lower prices, stating that Amazons low prices were prioritizing price over quality, something they deemed as unfair to consumers. Apples iPad was released with the hope of wrestling part of the digital book market out of Amazons hands.20122016: The Antitrust BackfireApple and the Big 5s plan to unseat Amazons dominance in the e-book market backfired. They felt Amazon was acting anti-competitively, crowding competitors out of the e-book market. Their collusion to raise digital book prices was in response to fears about Amazons large, monopolistic market share.However, monopolies are not inherently illegal. A monopoly obtained through superior product and/or performance is difficult to build a case against. (Source: Girard Gibbs)Additionally, many antitrust cases are focused on the harm being caused to consumers. Amazon, with its low prices, was not seen as a nuisance to consumers enjoying widespread book availability at floor prices. Rather than prosecuting Amazon in court, Apple and the five publishers were cited for conspiring to raise e-book prices. Deliberate, collusive price-raising is in violation of the Sherman Act. The case, filed in 2012 and settled in 2013, ended with the five publishers settling their claims and Apple being scheduled for a trial to determine the actual damages. After several appeals, the Supreme Court ruled Apple must pay $450 million for attempting to fix e-book prices.Amazon Wins AgainOffice Depot and Staples, both of which have closed hundreds of stores in the last couple years, felt Amazon was stealing market share away from them. The two stated that in order to stay competitive in the office supply market, a merger was necessary to stay afloat with Amazon. The Federal Trade Commission ruled that the proposed merger would greatly affect business consumers, and would be seen as anti-competitive. In May 2016, the court rejected the proposed merger between the companies.The court decided that Amazon had no track record of being the company of choice for businesses searching for office supplies. Bulk purchases were still mainly conducted at Office Depot and Staples, and the merger would potentially result in raised prices for bulk office items, without an alternative.The court acknowledged Amazons large share of the market and history of innovation, but determined that in the near future, no harmful practices toward consumers were being executed by the online behemoth. Amazon was mainly a place for individual consumers, not a place for business customers like Office Depot and Staples. Is it Antitrust Immunity? Are they a monopoly?Amazon, contrary to what some critics argue, is not immune to antitrust laws. Whether Amazon is becoming a monopoly is still up for debate, although this likely wouldnt change anything.As stated earlier, a monopoly is legally considered harmful when it negatively impacts consumers. In the case of Apple and the Big 5, the claims that Amazon was affecting book quality were not tangible enough to the court. More tangible were the concrete ways these companies tried to increase and fix e-book prices, an anti-competitive tactic.Amazons low-price strategy is a blessing to consumers, something antitrust laws would view favorably, as the consumers best interests are at the forefront of their decisions. While companies have accused Amazon of predatory pricing to eliminate competition in the market, Amazon has not raised their prices when there is a notable lack of competition. Without documented price increases, Amazon is not using its potential monopoly power to hurt consumers, but rather quite the opposite.Concerns will continue to be raised about the future of consumers choices, but for now, Amazons low prices continue to keep market prices low and competitive. Originally published to the Seamgen blog.
Four Ways to Lead Your Software Team to Success
This article is for anyone wanting to step up their teams performance and cohesion. It discusses 4 key components to keep in mind when running teams. Great for Team Leads, Managers, Directors, and CTOs. Additionally great for engineers that are team members and not necessarily in a leadership position. The best culture shifts in a company start at the grassroots level.Long story, short:Invest serious time into building real trust in your team. Embrace good conflict and discussion, dont avoid it.Give your team a purpose. Measure and share the progress the team makes on themselves, the product, and the business. Ensure teams know what AND why they are building the product. Autonomy breeds creative problem solving. Hire the right people and set up a support structure for success. Give up control. Dont micro-manage.Instill good habits in your team like a daily standup or a weekly retro. Muscle memory and discipline for your team sets the stage for a culture of continuous improvement. As a Software Engineer thats worked for different startups, Ive experienced a lot of ways to lead a software team. Some were fly by the seat of your pants and break everything to eventual code completion. Others were debilitating with the amount of processes and procedures. There is however a small minority of teams that have found the right balance of flexibility and process. These teams are able to provide business value to their stakeholders on a consistent basis.Very few teams have achieved this balance. Having seen such a wide spectrum of teams and their dynamics, I would sum up my philosophy on team management in a tech company around 4 key components.Trust is the central foundation for great team dynamics and discussions. Giving your team a sense of purpose to the overall business goals will build an intrinsic motivation for your team to create great work. Great products are only going to come from a team that has a level of autonomy for creative problem solving. Good habits and processes can help your team move in a disciplined, concise way thats easy to predict and ultimately moves your team faster.1. TrustGreat teams do not hold back with one another. They are unafraid to air their dirty laundry. They admit their mistakes, their weaknesses, and their concerns without fear of reprisal.- Patrick Lencioni, 5 Dysfunctions of a TeamReal trust in a team can lead to healthy conflict, commitment, accountability, and selflessness. Theres a direct connection with these qualities a team has and the success of a product, or even the business at large.Do you trust your team?Ask yourself:Can I trust that we can be vulnerable with each other?Can I depend on everyone on the team to put in great work?Can I trust that everyone on the team has the same passion and vision for the team (and the company as a whole) that I do?When a team trusts one another, they can be comfortable being vulnerable in front of them. They are more willing to take risks or talk about an unpopular opinion. They feel safe contributing to an idea, even if its high risk. Its exciting to see how open and honest teams are when they dont feel judged when sharing.As a leader, you should admit weaknesses and limitations, showing that you can be vulnerable with your team. Your team will feel more at ease with their own limitations, thus these habits will start to build the first foundation of a great team. Pro tips to help get you started:Do an offsite somewhere with your team where you can do excerises like a Personal Histories and/or Team Effectiveness. These conversations can start to break down barriers needed to build trust, deal with conflict, commit to each other and your goals as a team. Peer code review for pull requests helps to build a mindset of being comfortable with vulnerability.2. PurposeGreatness and nearsightedness are incompatible. Meaningful achievement depends on lifting ones sights and pushing toward the horizon. - Daniel Pink, DriveHave you ever seen the engineer that just wants the specs to a feature to then be left alone? Have you ever been that person?Ive been that person several times in my career, and every time I burn myself because I didnt properly understand the purpose behind my work. I was too focused on getting my unit tests to pass that I didnt even understand the product requirements.When I didnt understand the product, why it we were building, and most importantly the customer, the stage was set for eventual burnout. We get up each and every day, do our work, and go home. Because of this repetitive nature, we can easily slip into taking our purpose and customers for granted.A team can find a deeper motivation than just $$ when they understand the value of how their work contributes to a specific business outcome. Your team can be motivated by building x backend system, then motivated by y new customers, then motivated by disrupting z industry.This creates an intrinsic motivation that your team will see how their work will ultimately change the market.Ask your team these questions to see if they know Whose Purpose is it anyway?What is my purpose at the company?What is the purpose of my team?What is our companys purpose? Pro tips to help get you started:Depending on the type of product your team is working on, have them run a mile in the customer or users shoes. Have them experience the exact UX the user would experience.Try out Reichs Pronoun Test, does your team refer to their company as they or as we?Be open and honest about how the company is doing. Metrics reporting software like Metabase allow any employee to see the companys KPIs (Key Performance Metrics)/burn rate. 3. AutonomyWhen you treat people like children, you get childrens work.- Jason Fried, ReWorkNow that theres a cohesive team that trusts one another, its time for you to empower your team to push their creative and entrepreneurial limits.Instead of ad-hoc decision making on the technology stack and architecture as a Tech Leader, ask your team. Let them come up with a consensus on software design decisions (within a reasonable amount of time)More heads are better than one, right?Youll start to see more elegant solutions to technical and business problems.Granted youve hired the right people, your team will take this new control and responsibility seriously. Theyll have the best interests of the product and the business during those discussions. While many struggle to keep a team motivated, using autonomy as a strategy will actually make it pretty straight forward.When charging ahead with letting go of control with your team, ask yourself these questions:Am I giving my team direction and intent, and room to solve problems in their own way?Is my team excited about how creative problem solving helps the business?Am I involving my team in goal-setting for our team and company KPIs?By giving enough room for creative problem solving without saying exactly how to solve it, you will motivate people with more than a paycheck.If you place realistic goals in front of your team, the tools to do it, and a sense of purpose for why they should, they will impress you every time. Pro tips to help get you started:The next time theres an issue that needs resolved, instead of telling your team what needs to happen, have them come up with a solution.Gather your team and conduct an Autonomy AuditAllow your team to work on other projects for a specified time consistently each week/Sprint/month. Whatever is comfortable for your team. More often than not theyll be working on something that benefits the business. 4. Good HabitsAlthough discipline demands control and asceticism, it actually results in more freedom. When you have the discipline to get up early, you are rewarded with more freedom.- Jocko Willink, Extreme OwnershipWith the pace of technology in todays world, its tough to see whats around the next corner. Figuring out the next move in the product or the business can become overwhelming and stressful.Many teams differ process and structure in their work flow in the attempt to stay flexible with the changing market.What they often dont realize is how ambiguity and lack of process will actually hurt a teams ability to deliver code. It doesnt give a team more freedom, it bogs the team down with no systematic way to work.The flexibility teams want to achieve will ultimately improve through disciplined procedures.A disciplined software team will create processes, and adhere to those processes. This allows them to provide business value in a sustained and predictable way. When teams become predictable, it provides a great atmosphere for experimenting with innovative ideas and features.A software team that has good habits will also be very disciplined. This discipline will free up time to automate those systems as much as possible to ensure they keep up with team/company growth. Pro tips to help get you started:Start your own morning routines and build great habits. Use this framework to help get you started. Once you experience the power and freedom you get from routines, discuss with your team what good habits they would like as part of normal routines.Discuss with your team what Done means in regards to a full product, feature, update, or bug. Come up with a consensus, document and/or automate the procedure. Create a Pull Request Template with your team that everyone agrees to. Have the team hold each other accountable to it.Long story, short:Invest serious time into building real trust in your team. Embrace good conflict and discussion, dont avoid it.Give your team a purpose. Measure and share the progress the team makes on themselves, the product, and the business. Ensure teams know what AND why they are building the product. Autonomy breeds creative problem solving. Hire the right people and set up a support structure for success. Give up control. Dont micro-manage.Instill good habits in your team like a daily standup or a weekly retro. Muscle memory and discipline for your team sets the stage for a culture of continuous improvement. Looking for more inspiration on running a great software team?The Phoenix ProjectThe GoalThe AdvantageThe Power of HabitThe One ThingDriveDo More FasterAccelerateThe Hard Thing About Hard ThingsBrief
What We Cant See
Close a deal and money gets transferred into your bank account. That feels real. Hire three new people and increase your burn by $50k per month ouch! That feels real too. If only our wins, risks, and losses were always so salient. The central problem is that the many of the costs we incur do not feel real. The impact is barely felt, or misdiagnosed entirely. Its not visible and salient, like beating the quarter or closing a round. Suddenly you turn around and it smacks you in the face, and theres not much you can do to turn back the tide. Or you see the dark clouds coming from miles away, but the various remedies seem to further exacerbate the problem.What can you do? Are we destined to get caught in these traps? Is the only answer to spend our way out of it when the shit hits the fan?I dont think so. I think it takes awareness, and engaging the front-lines in relaying their feedback. You have an org filled with sensors, and they are capable of sensing the drift into failure. Plus, you can always do a better job of making certain costs more visible. Just being open that these things exist can have a big impact. But youll have to free your own mind, and start listening.What types of costs and impacts are we looking for? We are looking for movement/changes/vacillations in the following:Cost of technical, UX, and instrumentation debtCost of leadership/organizational debtCost to communicate context/data with minimal signal loss across organizationImpacts on team morale and engagementImpacts on resiliency, ability to adapt/adjust to changing contextImpacts on ability to pursue novel solutions / fortuitous accidentsImpacts on overall efficiency (velocity/headcount, etc. )Cost of multitasking and context-switchingCost to service diverse market segments, user personasCost to maintain increasing technical complexityCost to compete with smaller, yet more nimble competitorsCost to document and support new functionalityImpacts on new skill attainment (professional development)Cost of knowledge/skill silosCost to hire and onboard new team membersCost of unrecognized, untapped human potentialImpacts on goodwill with customer/user communitiesCost to maintain integrations and partner relationships
Why Not XP? Because Everything Cant Be Simple
Heres a quote from the comments of someone elses blog entry exploring how a number of open source projects tend to shy away from documentation:youre ignoring cultural issues with coding. In an extreme programming project, for example, comments are generally considered to be a bad thing, even the helpful ones. But thats because the reaction of an XP developer, upon seeing a comment, is, How can I change the code to better express its ideas so that the comment is not necessary. Because it avoids comment obsolescence, this is a better approach than using comments to describe code, yet it would be penalized by your count.I cant tell you how much trouble the idea of commentless code has caused me in the last few years. The idea that code can be self-documenting is only applicable in the most concrete and straightfoward systems imaginable, and the XP belief that code with comments needs to be refactored to be more obvious, tends to lead to systems that purposefully shy away from anything deemed too complex. In other words, in a true XP environment any code that requires any level of explanation must be refactored to become more obvious, more self-documenting.Not having to explain yourself might provide a illusory feeling of agility to developers who cant bother putting nouns in front of verbs, but were talking about logic, and, very often, logic needs some exposition. A small, elegant general proof can require pages and pages or justification and explanation, and code is no different. Code without documentation contains little in the way of justification (we did this because of X), it contains little in the way of direction, and almost always tends to frustrate and confuse the next batch of developers to assume control of a codebase. The two examples of comment-less code Ive witnessed over the past few years have both been somewhat of a disaster. In one case, an organization with very rapid turnover continues to wonder about the motivation behind an ornate multilevel mess, and, in the other case, the codebase was useless unless the documentation averse engineer was sitting right next to you, walking you through every line. If you are currently working for some dictatorial XP zealot, resist by writing comments, pages and pages of comments. Dare to explain yourself. At least provide some hints for the poor sap that needs to take over your mess in a couple years
Why You Cant BE YOURSELF in India!
Just be yourself! they said.But dont do that! they also said.As a kid born in an Indian middle class family I will tell you why this is the most bullshit phrase that I had been told for twenty years.In every instant of my life I have failed to grab the true meaning of what the phrase meant, until I started to think independently. I realized that they were just empty words inspired by Western propaganda, just intellectual enough to be emulated only in words. When it came to actually creating an atmosphere where being oneself was recognized and celebrated, hardly anyone ever came close.Millions of Indians my age are asking themselves how they are successful but fail to be happy, to follow their dreams. It starts when a child reaches the formal knowledgeable age. As weve negotiated every transaction our society requires us to undergo on the dicey road to adulthood (and in India adulthood doesnt mean independence, but starting a family of your own), we have carried the burden all the way.Every audition of our worth at every transition pre-school, kindergarten, high school, college, university, job, making new friends and keeping the old, choosing a life partner has been a tantalizing game of balance between being ourselves and being accepted. The dilemma resounding insidiously in our heads as we had made choices since an early age, like what clothes to wear, what food to like, what music to listen to, what hobbies to cultivate, how to share feelings and maintain privacy ultimately being stifled by the overriding choices of parents and society at large. Just be yourself son, but as long as you get top marks in school, get prizes in almost every curricular we have enrolled you in but you cant make a career out of, dont mix with so and so friends, behave in a certain way acceptable to society, pray to a deity of our choice, get a high paying job, get married at a certain age and so on.Where is the time and scope to figure out who we are, what kind of person we want to be or think we should be?Who will teach us the means to understand and know ourselves first?Instead of pressuring children to sit and study in order to defeat their classmates how many have actually encouraged learning the subject they find most interesting?Or, instead of burdening children with the expectations of landing a good job how many have encouraged them to convey our unique perspective rather than trying to impress the interviewer by pretending to know or understand something?Or, instead of instilling a false sense of achievement how many have actually taught their children to be humble and open-minded not only through words but also by examples?Or, instead of belittling someone for being too shy, socially awkward or lacking a presence of mind how many have actually celebrated their kids for being who they are, knowing themselves better and discovering what they are good at?You can be yourself as long as you limit that to your personal imagination out of your academia, your job, your relationships, your life and your reality. Finding that escape from the imposed reality is a luxury only a percentage of us can afford. Most of us just keep on following the inflicted reality and their only way of escape is to impose their dreams and aspirations on their kids thereby circulating the cycle. Thus, we never find our identity early in life.What could have been done differently?For starters, stop saying be yourself. We dont come with a manual from birth that lists who we are. It is a process of discovery that lasts probably for most part of our lives. So instead of dissing out empty words create an environment for children to find themselves and who they want to be. Make room for mistakes and lessons theres nothing wrong with being kinder to those who dont deserve kindness, taking calculated risks, showing love to those who are in need, doing the best to be true to your instincts, to be open-minded and generous in a cynical world even when in self-doubt and skepticism.No one is sure of their true self but either way, trying to find it involves a journey through the hard parts of life.Do I regret my life?To those reading this and thinking that it is so easy to point fingers distributing blame, I will say that I am. I am incriminating the society and how it thinks and operates, not anyone in particular. I may be wrong but that is what I have felt growing up and seeing the same happen to my friends. It should be kept in mind that our parents will do everything that they think is good for us. What my parents felt was lacking in their parents, they would have tried to overcompensate with me.I know, not everyone have faced the same situations but a majority of children do. I would like to say though that my parents were more than accommodating to my point of view once I had made it clear to them but not everyone is lucky in that way. I feel its our responsibility to be create a better world by allowing the future generation to realize their inner self to the fullest. It has to come from the society as whole each and everyone counts.Looking back, do I regret my life? Of course not. Maybe I wish that I could have done without all the imposed expectations that do not resonate with who I am, especially when I was an adolescent. But, I am here growing and discovering myself everyday.I would make sure my future generations enjoy the existential freedom of soul-searching and introspection from their childhood. I would not say Be yourself but would let them be themselves.Your honest response on this is welcome.Find me here
8 Books Every Manager Should Get Their Hands On
Being a manager can be intimidating at times.But one thing that might be even scarier is sifting through all of the management advice the internet has to offer. Lucky for you, weve done the legwork and compiled a list of 8 standout books that every manager should read. Whether you are a new manager seeking to learn best practices or a seasoned professional who wants to optimize their teams performance, theres a book for you on this list.Radical Candor: Be a Kick-Ass Boss Without Losing Your Humanity by Kim ScottWhat youll learn: How to personalize motivation to each team member, how to positively challenge everyone on your team including yourself, how to engage in difficult conversations that add value, and how to critically learn from the wins and the losses.Summary: After leaving Google and moving to Apple, where she created a class on optimal management, Kim Scott is now the CEO of her own business, Candor, Inc. , where she helps companies follow the advice she gives in this book. Radical Candor turns the classic if you dont have anything nice to say, then dont say anything at all approach on its head, and is described as the sweet spot between managers who are obnoxiously aggressive on one side and ruinously empathetic on the other.What type of manager would benefit? Any managers who want to learn how to communicate feedback and build great relationships with their teams. This will be particularly useful if you struggle with being direct with your team.Drive: The Surprising Truth About What Motivates Us by Daniel H. PinkWhat youll learn: How to motivate your team beyond the old carrot and a stick approach and how to tackle your own struggles with motivation. Summary: In his fourth novel, Daniel Pink explores the three factors that are proven to increase performance and personal satisfaction in the new era of work: autonomy, mastery, and purpose. Studies show that we are more motivated by internal factors than external ones. Once our employees are compensated enough to not worry about monetary stress, people crave a self-directed approach towards mastering a task for a greater purpose. What type of manager would benefit? Managers who are struggling to consistently inspire the right habits on their team.Creativity, Inc.: Overcoming the Unseen Forces That Stand in the Way of True Inspiration by Ed CatmullWhat youll learn: How to develop a culture that promotes creativity, how to trust your employees and allow them to make decisions without approval, and how to leverage creative tools to improve a teams performance.Summary: Created by one the co-founders of Pixar Animation Studios, Creativity, Inc. seeks to answer the question, what does it mean to manage well? Ed Catmulls response? Creativity. In this novel, the reader is taken into the inner workings of Pixar to learn the strategies that made it the great success it is today.What type of manager would benefit? Managers looking to empower their employees to be independent or managers who want to facilitate creativity. Inclusion: Diversity, The New Workplace & The Will To Change by Jennifer BrownWhat youll learn: How to empower team members from any background and how to positively alter organizational systems to support employees in a changing workforce.Summary: The one aspect of diversity and inclusion (D&I) that everyone seems to forget about is inclusion. Studies have found that the organizations that most effectively support their diverse talent are most likely to be successful. Managers play a key role in fostering inclusion in a workplace, and that will only become increasingly true in the future of work.What type of manager would benefit? All managers have something to learn from this book, but particularly those managers who are unfamiliar with D&I or work in organizations without a lot of D&I learning resources.Act Like a Leader, Think Like a Leader by Herminia IbarraWhat youll learn: How to rethink your job in order to improve your performance, how to grant yourself the ability to alter your leadership style, and how to foster deeper connections with those in your network. Summary: Sometimes managers need to take a step back and reevaluate all of the demands surrounding them. Herminia Ibarras novel discusses small changes that can help managers change old mindsets and position themselves for success. This book is filled with actionable items that will help managers plan their strategy for taking on new wave management techniques. What type of manager would benefit? New managers growing into their first leadership role or seasoned managers seeking to modernize their leadership style.Good to Great: Why Some Companies Make the Leap and Others Dont by Jim CollinsWhat youll learn: How to foster a culture of discipline and the remarkable results that creates, how to confront the mistakes your organization has made, and how to effectively use technology to advance performance.Summary: How do companies move from being mediocre to obtaining long-lasting greatness? By assembling a team of researchers and closely studying a small batch of high-achieving companies, Collins discovered the differences between mediocre and standout companies. Nearly any question one could ask about management strategy and practice can be answered in Good to Great.What type of manager would benefit? Managers looking to refine their management style with a focus on improving culture.The Essential Drucker by Peter F. DruckerWhat youll learn: How your role as manager has evolved over time and Druckers insight on the two most important roles of a manager: decision-making and communication just to name a few. Summary: Peter Drucker has more than sixty years experience of studying economics and society, and is considered a real management legend. This novel serves as a CliffNotes of Druckers career and his advice that has withstood the test of time. It encapsulates his most relevant and engaging material surrounding management. What type of manager would benefit? All managers.High Output Management by Andrew GroveWhat youll learn: How to skillfully leverage your time as a manager, how to identify the limiting step in a business process, how to hold efficient meetings (everything from a one-on-one to entire team meetings), the importance of employee training, and so much more.Summary: High Output Management, widely considered the management bible in tech, is a classic management novel written by the former Chairman and CEO of Intel. This book thoroughly dives into the science of management. Its filled with real-life management scenarios from Groves own experiences and the ways in which highly-effective managers and teams should operate. As Ben Horowitz states, the power of High Output Management is that it creates experts rather than merely competent managers. If you havent read this one yet, theres just one question to ask: what are you waiting for?What type of manager would benefit? All managers. Really.Management isnt easy, and though a book might not change your teams performance overnight, we can guarantee you will get something useful out of each of these titles. Take your personal development into your own hands to take your team to the next level. Are there any books we missed that should be on this list? Have you read any of these books and found them helpful? Let us know!
How to Make Microservices Communicate?
Im sure you want to build scalable apps, right? Who doesnt? If so, you must have come across the words Cloud Native. This approach is like an angel which can resolve most of your scaling challenges. So, what exactly is cloud native?Cloud native is an approach used to build apps which can harness all the capabilities of the cloud. Yup, you got that right. Its an approach. Not a framework. Not a bunch of steps to follow. And due to this, there are a million different approaches to go cloud native and achieve cloud computing Moksha.One key principle of cloud native is microservices. Microservices are tiny (sometimes not so tiny) modules which can work independently of each other. They could have dependencies on other microservices or even a data persistence layer like a database. But the key is to use loose-coupling. Microservices coordinate by means of communication.This means each microservice sits in a different repository and is being deployed independently. For the DevOps folks out there, you have an independent continuous delivery pipeline dedicated to each microservice.But that brings me to the most important question.How can we make microservices talk?Keeping aside the difficulties in deciding on a forward compatible API for microservices, just making them talk isnt as simple as it looks. There are multiple parameters you need to consider. These are throughput, latency, and scalability.Now there are many ways to classify the different modes of communication. Synchronous (blocking) and asynchronous (non-blocking) are used quite often, but I feel these are mostly the characteristics of a programing language. Im also going to disregard half vs. full duplex modes since these days its very easy to use either (or even both) in most cloud architectures.So lets dive in.The Brokerless DesignWhat it is: In here we make our microservices talk to each other directly. You could use HTTP for traditional request-response or use websockets (or HTTP2) for streaming.There are absolutely no intermediary nodes (except routers and load balancers) between two or more microservices. You can connect to any service directly, provided you know their service address and the API used by them. Sounds pretty basic right? It pretty much is. There are wonderful protocols like GRPC to make life much easier.The Pros:Low Latency: This method has the lowest latency possible. There is no middle man here. Its fast. The limitations are imposed mostly due to poor API implementations. But again, tools like GRPC make sure you get maximum performance at the API layer.Easy to Implement: A brokerless design is easy to visualise and implement. This makes life much easier and the world a happier place to live in.Easy Debugging: This method is fairly easy to debug, especially from the next one Im going to talk about. Debugging or tracing where the errors are is a super important topic in distributed systems. This becomes even more important when you are releasing new updates multiple times a day.High Throughput: In this mechanism, more CPU cycles are actually spent on doing work rather than routing. It may not be that apparent now, but a broker design would make this a bit more clear. Its not a surprise that most of the database APIs actually use a brokerless design.The Cons:Service Discovery: In such a design, service discovery has utmost importance. The service discovery mechanism needs to be responsive and scalable enough to reflect the latest state of the cluster. Connection Nightmare: Imagine if all the microservices need to connect to each other. That would be a lot of connections. Most of these connections are fairly idle. As a result, a lot of resources are wasted due to this. Tightly Coupled: By nature, brokerless designs are tightly coupled. Imagine you have a microservice to process online payments. Now you want another microservice to give you a real-time update of number of payments happening per minute. This will require you to make modifications in multiple microservices which is undesirable.In many cases, a brokerless design just doesnt work. You often have requirements to simply publish the message once and have multiple subscribers consume it. This is where a broker design comes into the picture.The Messaging Bus (Broker) DesignWhat it is: In this architecture, all communication is routed via a group of brokers. Brokers are server programs running some advanced routing algorithms. Each microservice connects to a broker. The microservice can send and receive messages via the same connection. The service sending messages is called a publisher and receiver is called a subscriber. Messages are published to a particular topic. A subscriber receives those messages for topics to which it has subscribed.The Pros:Load Balancing: Most messaging brokers support load balancing out of the box. This makes the overall architecture much simpler and highly scalable. Some brokers (like RabbitMQ) have built-in retries and more for making the communication channel more reliable.Service Discovery: Service discovery is not required when using a messaging backend. All microservices act as clients. The only service which needs to be discoverable is the message broker. Fan In and Fan Out: A messaging backend makes it easier to distribute workload and aggregate the results. The best part is that adding worker microservices can be done transparently without having to update the other microservices.Stream Based Design: Such an approach also gives birth to a concept of streams. Each topic is essentially a stream of messages. Any subscriber can tap into these streams as and when required. The possibilities of modelling a system design using streams are endless. The Cons:Scaling the brokers: While the advantages are amazing, scaling the brokers themselves becomes a challenge for highly distributed systems. Its just another piece to maintain alongside your microservices.Higher Latency: The number of hops in a message bus increases the overall latency. This is especially true for an RPC-like use case. In mission-critical apps, this might not be a feasible solution.Higher Resource Utilization: The brokers need CPU, memory, and storage resources to run. These resources could otherwise be utilized for running other microservices. The overheads associated with a broker design could be too much for a small cluster.Just knowing the advantage and disadvantage of various architectures isnt enough. It is important to know when to use what.You must always default to a brokerless design. Make the switch if you need the flexibility of streams or need to leverage the pub-sub semantics of a message bus. If youre starting off fresh, it would make sense to start with a brokerless design and then switch once the need arises.Its not necessary to choose just one. You can use both. For our tool, we are using a broker design to implement the RPC calls. The communication with our database layer is brokerless to provide lower latencies. If you are opting for a microservices based architecture, I always recommend going event driven. Event driven architectures can be seen as having an advanced broker at its core which has a a ton of capabilities (like task scheduling) built in.Wrapping UpUsing the right approach for the job is important. Choosing the mode of communication is a fundamental decision which needs to be taken with great care.There are multiple options for both. Sticking to a well-established framework almost always makes more sense than making something from scratch. There are so many options out there. For message brokers, youve got RabbitMQ, Nats, Kafka, etc. , and each one is built for particular messaging semantics.Another awesome way is to use a Backend as a Service like Space Cloud. Space Cloud will automate the entire backend so you can focus on the business logic rather than cloud architecture. Did this article help you? How do you make sure your apps are cloud native? Share your experiences below
A Checklist for Deploying Code to Production
Every developer gets at the point that after working on some fancy features it is time to deploy your code. However, deploying code to production can be just as exciting as scary. You dont want to break anything of course. You might be quite confident about your own work, but what about that one feature that got implemented by someone else?In order to make sure that everything goes well you need to check, check and double-check. The aim is to make your deploys as controllable as possible, so you can limit the number of things that could go wrong. Thats exactly why well be going over this checklist that you could use when it comes to deploying code to production. Know what you put in version controlIm assuming that any self-respecting developer or team uses some sort of repository management tool like GitLab or BitBucket. If not, you probably should. It comes with tons of advantages that I wont even bother listing here right now simply because the list of advantages is way too long.Ok, back to the point. It is extremely important to know exactly what you put in version control. There are certain files that you dont want in your version control, like a .env file that contains all environments variables. Make sure you mask passwords, or better put them in your file with environment variables. Dont forget to hide private keys as well.Whats less impactful, but definitely not what you want, is to put config files from the IDE in your version control.TestingBefore any piece of code gets deployed it should be tested thoroughly. Testing the code comes in different degrees. And although most developers dont like testing its something that shouldnt be thought of lightly.Code reviews should be part of the routine of every team just to have an extra pair of eyes look at what is being deployed. This filters out the most obvious bugs and makes sure that the code meets certain quality requirements, such as that its formatted properly.In the best-case scenario writing code should go hand-in-hand with writing automated tests for that same piece of code. Automated tests give a developer more confidence since the developer can test if the changes caused anything else to break. PipelinesA pipeline in a Software Engineering team is a set of automated processes that allow Developers and DevOps professionals to reliably and efficiently compile, build and deploy their code to their production compute platformsPipelines are flexible in a way that you could configure them however you want since there are no rules set in stone of what it should look like and what it should do. However, the most common components of a pipeline are build automation, test automation, and deployment automation.If youre working with GitLab or BitBucket having a pipeline is a true life-saver. Since code is integrated into a shared repository several times a day in most cases you want to verify that code by an automated build that allows you to detect problems early. On top of that, you want to ensure that every change to the code is releasable and as easy pushing a button.The pipeline allows you to automate all sorts of testing from unit tests to testing if code is formatted properly. When a pipeline is well implemented it makes releases boring and increases the frequency of how often you can deliver. This results in a fast feedback loop on what users really care about.When to Deploy?Or maybe its better to ask the question: when not to deploy? This answer is probably a lot easier. Its better not to deploy late in the afternoon since this leaves you with almost no time to fix things in case things go south. Deploying your code to production early on the day leaves you with plenty of time to either revert changes or fix them.Ive also seen teams that avoid deploying on Friday for the same reason. And some teams are even more extreme about their day of deployment they only deploy in the first few days of the week.Be strict about the rules that you agreed upon within your team about when to deploy. You may find yourself in a situation where a critical bug needs to be fixed just after youve deployed since it crashes an important part of the application. You want sufficient time to work on a hotfix.BackupsAlthough this one might sound obvious the moment when backups finally get implemented is usually when its already too late. Backups often get implemented once you need a backup. You start wondering if there actually is a backup. Thats when youre too late.You could automate this process if youre using pipelines. You could create a dump of your database every time you deploy to production, for example. You could also choose a different backup strategy like once a day.The Big MomentFinally! The big moment is here; time to deploy!All the hard work that you and your team have put in is about to get deployed to production. This step in itself shouldnt cause you any trouble. Since youve followed all the steps that weve gone through this should be a piece of cake by now.If youre deploying via a pipeline you should get instant feedback whether tests are passing and code is formatted properly. If youre not using a pipeline and something tends to go wrong theres always the possibility for a revert. Once the revert is successful you could take a better look into what the actual problem is.Test on the live serverNow that youve deployed and everything is live its time for the final step. The final step in this checklist is to check your live server for bugs once the changes have been applied. Be as thorough as possible, as it is much better for your team to notice a bug and record it than leaving the job to the customer.If you find a critical bug that you simply cant ignore, it may even be worth considering a roll-back. Hopefully, due to all the previous checks, this shouldnt be the case. When minor bugs are being found on the live server they can be reported as a new user story, if youre using some sort of agile methodology.Wrapping it up: the Checklist The checklist, as we went through this, looks like this:Know what is going to get deployedExcessive testing; preferably using a pipeline with automated testsKnow when is going to get deployedCreate backupsDeploy to productionTest on the live serverWhen following this checklist, deploys should be less chaotic and make them more boring which is a good thing.Make your teams deploys as boring as hell, and stop stressing about it Zach Holman.
pas de données

KingBird Home Furniture