Only good way to develop apps is through focused effort of a single or small team of developers.
Agile software development practices
There are a lot of thinking going on how to organize development of software. There are some really cool methods and methodologies that came out as a result of this thinking and observing succesful software projects. I’ve been fan of agile software development practices for a long time. I wondered how come this beautiful and clever methodology is not giving results or not giving nearly as great results as it should.
There are organizations that expended quite an effort to implement agile methodologies, they hire what I like to call ‘overpriced consultants’ (like me) to help them. We all work hard and our efforts are honest, yet, results are mixed.
When you point this out to proponents of agile methodologies, they just wave their hand and say that process was not fully understood or properly practiced. I would say that any process that requires such deep understanding, and honestly agile and scrum are as simple as can be, is not worth knowing.
This is not to say that those processes are not bringing results, project on which I am currently working was created by consultants of ThoughtWorks in three months. Usually sites like those would take longer to create in corporate structure, so obviously agile does bring significant savings and those consultants are totally worth their rates.
One true way to get results
Now, what is the one true way to get results?
Very simple, if you are developer think about the time when you cranked out app in really short time, or if you are not, look at success stories of startups, you are bound to hear that founder(s) hunkered down for a weekend to krank out initial version, or alternatively that they spent a week or two developing it.
My personal experience is that when you have an idea, you get a rush of excitement over it, you sit down and code, code, code. You don’t sleep, you eat a little, drink a lot of coffee, you have everything in your head, things are coming into place and you are shaping your app… this is one awesome experience and you get your app developed in a weekend or prolonged weekend (3-4 days) or a week, not much longer. Well, you couldn’t stand this longer anyway.
Why is this a good way to do software development
I think reason why this is such a good way to do it is mostly in focused effort on production level code. For development to happen, it really needs a lot of information to be present in developers head, since we are talking about one to three, mostly guys, working in great synergy, they don’t spend too much time on anything else and can just focus on ‘production level code development’. Since all it matters are code that goes to production and this way you are trimming everything that is not production code, like: planning, meetings, coordination, discussions on standards etc. in order to get that level of code. Now you will of course do planning, but it will be leanest planning on the planet. And of course this way you are outproducing any big corporation, agency or consultancy that offers software development.
Many people don’t understand this and keep asking for larger teams when you can do this with single developer or developer/designer pair.
Where can I use this
This of course can’t be easily replicated in corporations because they have… well they want to see their employees present at their desks etc. Plus this is very intense way of development.
This is the way startups should develop their software and this is how initially they create value.
In the end, I mostly wrote this to remind myself of glorious times when I did exactly this with great results.