I specialise in Software Delivery Performance and regularly observe individual developers and teams losing focus and implementing things that do not matter for another couple of months or so. It seems senior engineers struggle most with focus and being "lean".
To give you an example:
Recently, I worked with a client and supported a team of five with web app development. It took the team three weeks to implement the initial backend to a level that it allowed the web app to store the first and last name into a database.
I tried to figure out why it took three weeks to just store the user's name and learned that the developers spend a significant amount of time struggling with setting up a security feature (cookie based single sign-on). The feature was deep down in the backlog and not required for another two months.
As founders, when starting off, have you ever hired developers or worked with a technical co-founder or outsourced development and got the feeling that things take longer or cost more than they should be?
I am curious to learn about your experiences during the initial months of your software product development.
That's a fantastic question.
As a Freelance Senior Software Developer I can tell you that the best scenario for start-ups is to hire developers that have experience in start-ups and understand that whatever optimization or feature that is not 100% integral to the benefit of the business should not be worked on. The problem is the difference of focus of the discipline of Computer Science vs the focus of Business. The former aims to build the most efficient technology for the sake of the science. The later aims to build the best product for the sake of the business. Because of this difference, developers that have not closely worked with start-up owners will not understand that something doesn't need to be optimized to a T unless it benefits the business.
Where technology meets business, technology should only be developed to the benefit of the business and anything else is inconsequential. Senior developers that have spent their entire career working for bigger companies, working far from the understanding of the needs of the business have no knowledge of this.
My best advice is to hire developers/companies that have experience in lean methodologies and are 100% focused on the benefit to your business. I actually write about this in one of my blog articles http://thecodebug.com/where-business-meets-technology/ Haven't written much recently but this is a passion topic of mine.
Last thing I'll say is that if a start-up owner does not have experience in technology the best thing to do is hire a team/freelancer that you trust: otherwise there's no way of knowing what the time/monetary estimate should be. Another one of mine: http://thecodebug.com/monetarytime-estimates-how-will-you-know/
I frequently come back to this point, but strategy always needs to come first, before development, before tactics, before sales, before everything except research.
When you have a group of developers who are not business people, they may not understand the priorities of the company or implement a priority-based development strategy on their own. If you aren't able to involve product developers in the strategy discussion, then consider how you measure them. Workers tend to perform to the incentives they're given. Set them up for "success" by informing them how they will be measured and make sure those measurements are leading them in the direction they need to be working.
In the circumstances you described, the failure is one of leadership, not of product development.
Strategy is an advanced synthesis of business skills and always should involve at least two people, mainly because no one person is a master of more than 2 of the 6 fundamental business skills, 3 of which are heavily involved in strategic planning. When product development comes from a straight task list instead of a strategy, it lacks a degree of intelligence and analysis that combining marketing, organization, and efficiency skills would bring.
This definitely sounds like a bad priority management, which is common among senior software developers without CS education who got promoted to a lead position rather recently. Their instinct to develop the best software practices in their team clashes with the practicality required to deliver products on time. A simple program that demonstrates this feature should be done within a day.
@Murat I agree, it should be a matter of a few days or hours, not weeks. Did you observe similar things, you want to share? And if yes, how did it affect your business? Cheers
In the example you give, the outcome could well be the result of crossed wires. Or more likely the "plan" met "reality" and needed to be changed - these are the "implementation iterations".
Perhaps the team found they'd need to set up the database a second time had security not been baked in. I find a business head being available within those "implementation iterations" invaluable. And the business head needs to be patient while they are brought up to speed with the detail so they can make the best decision based on their priorities.
@CarlHunterRoach I agree, the management could have done a better job in setting expectations and clarifying what is important now and what can wait.
Additionally, I got the impression that the developers were not able to work and deliver software in small(er) increments. They were drawn towards big upfront design. I assume they do not know how to build software in a way that it supports continuous delivery of weekly increments while still being highly adaptable over time.
Thanks, @David Crooke. Can you share a few more details about "Despite his presence it was a miserable failure"? Cheers :)
@Paul Carcia Can I infer from "no one person is a master of more than 2 of the 6 fundamental business skills" that you need at least 3 people to be successful with a business? Can you tell us a bit more about the 6 fundamental business skills? Cheers
@Aleksandra Czajka Great articles. Thank you so much!