Written by Cyrus Taghehchian
I’ve founded and built three very different software companies across a wide set of verticals, including e-commerce, aviation, and academic social networking. Despite their differences, each company’s success was founded on collaborative knowledge and effective communication. You probably don’t need me to tell you the benefits of having team-members who possess uniquely valuable skill sets, work well together, and actively “lean” out waste. But while this is easy to say, history is full of failed companies built around strong, efficient team members with proven records. What is it that causes a group of skilled people working on a good idea to fail?
I believe it’s a lack of a coaching and learning mindset within management. Many leaders do not internalize (let alone instill in their team) processes, principles, and behaviors that increase team awareness to deliver maximum value and quality to customers in the shortest lead time. If a team isn’t aware of what its customers’ goals and preferences, or isn’t updated on the macro trends in the industry, it can lead to wasted opportunities to build apps or products of value. After years of coaching Agile principles to leaders of Fortune 500 companies (such as Kelley Blue Book, Bank of America, and Charles Schwab), I’m a firm believer that a Lean and Agile mindset is one of the best methods to improve development practices and team culture. Many project managers spend years studying Agile, and while there is a lot of material to master, I like to give anyone willing to learn these seven principles to instantly jump start team’s effectiveness from day one:
Always Test Your Assumptions
Starting a company is like setting off into unknown territory with a map built on guesswork. The first order of business should be to validate (or invalidate) your assumptions as quickly as possible. Maybe you think that people really want little umbrellas that attach to their socks and keep their shoes dry. But do they? Not everything that sounds good in your head will play well with the market.
This is what Agile development is all about: having frameworks for testing hypotheses, and mechanisms to get real feedback from users. The emphasis is on speed; the more quickly you can test hypotheses, the better. If testing shows that, yes, the demand is there – invest more time in it. If not, either pivot with new tests, or kill the idea.
Focus on the Customer
What experience do customers want? The reason anyone forks out money for your product is that it benefits them somehow.
Start by asking what a user or customer expects from using a product. Then, focus on building features and experiences to fulfill those expectations. Lean-Agile terms define the customer requirements and preferences as the user story, a technique that is borrowed from Kent Beck’s XP software development methodology. A user story captures the experience or feature that an end-user desires in plain business terms. This input from users helps drive conversations between engineers and product teams to collaborate effectively and focus on the user’s need. After user stories have been derived, rank user stories based on importance and the resources required to meet those needs. Finally, start building in small batches. This ensures efficiency in development as we are able to leverage feedback from users earlier in the software development lifecycle process to ensure we are building the right solution for their needs.
Eliminate Waste Caused by Overproduction
The Lean Mindset is all about eliminating waste, which is why many see it as highly compatible with Agile. One of the biggest sources of waste I’ve seen in early stage startups is overproduction.
At Spl.yt, we use a technique called weighted shortest job first. This simply means that we take our to-do list, estimate [A] the length of time each task will take, [B] the value of each task (i.e. how much it will improve the customer’s experience), and divide the value by the length. The task with the highest score takes priority. This makes it easy to create a fully functional feature defined by a group of user stories, sometimes called “Epics,” that create a minimum viable solution. This allows a team to try out the bare-bones feature. If there is demand and usage, invest more time and resources in building it completely out and if not, then “lean” out the remaining work. This produces the maximum economic benefit in the shortest time and leans out excess features.
Collaborate on Decision-Making
Encourage team members to collaborate on decision making for all functions of your company. Lean-Agile principles and frameworks such as Scrum are for everyone involved in the value delivering lifecycle. Diverse perspectives from engineers, marketers and sales members can cultivate innovative and effective solutions. After gathering everyone’s input, discuss their ideas and reasoning as a group. These conversations are important because they help build awareness and understanding throughout your whole organization, resulting in fluid knowledge transfer across teams aiding innovation and efficiency.
Unfinished Work is Wasted Work
Partial work has no value to the customer. It takes a while to reinforce this belief in your team, because it’s intuitive to think that ten user stories 90% done are better than one user story 100% done. Define one user story, complete it, and see it through until your users consume its value.
Working on multiple tasks without finishing one robs the customer of the value of that time. You have spun your wheels without improving the customer’s experience one bit, which is wasteful. You could have directed that time to improving the customer’s experience.
Find Defects Quickly
Have you ever uninstalled an app because it was buggy or kept crashing? Defects – big or small – can have a huge impact on the user’s experience.
Luckily, there is a method to ensure quality for you users. A test-first and continuous integration mentality will improve your quality and speed of software development. Acceptance Test Driven Development (ATDD) is one method to do this. ATDD requires a team to build and run all possible test-cases of how a user may use the product before any code is written. Everything (usually) fails these initial tests, but the process gives developers a clear path to successfully delivering value to the customer. Continuous integration means that every time new code is written, it’s automatically integrated into the development branch. This allows developers to instantly detect any clash of new code with previous work that cause unintended defects because the ATDD tests are continuously running. without longer testing cycles and missed defects, increased efficiency and quality will naturally follow.
Reward Success with Increased Autonomy
Too often companies move right from one task to the next, rather than giving employees a moment to savor the successful achievement of their goal. Celebrate wins!
Does that mean giving employees bonuses when they complete a task? Not necessarily. Autonomy is one of the greatest motivators; people feel rewarded when you expand their control over their work. Reward successful employees with the opportunity to choose what user story they want to implement next, provide resources to build a personal innovative project, or grant autonomy to create a flexible work schedule. This will empower employees to take a more active role of their career path with an added level of autonomy, and purpose.
Cyrus Taghehchian is a serial entrepreneur, and the co-founder and CEO of Spl.yt. Cyrus previously worked at Deloitte Consulting and his own firm advising companies on Lean-Agile methodologies.