So is your programming becoming slower the more you learn?

stevel05

Expert
Licensed User
Longtime User
Yes, an old friend of mine used to say that the last 20% takes 80% of the time. He's not wrong.
 

eps

Expert
Licensed User
Longtime User
I used to be locked in to quite lengthy delivery pipelines of years.. Then moved to projects where it was more like 6 to 12 months. Now it's more like 3-4 weeks.

I think what opened my eyes was assessing the risk associated and also being realistic about what can be achieved in the timeframe and with the resources available.
 

andymc

Well-Known Member
Licensed User
Longtime User
I agree totally. When you just start out you release apps that are very simple and have bugs, but you don't really mind as you're just trying to get something out. After time though you get nervous about showing stuff off as you want things to be more perfect.
 

Beja

Expert
Licensed User
Longtime User
In many cases, and as normal practice, you need to ship a software package, with known bugs deferred to v.2.0.1 :)
This is what used to do at IBM anyway.. deferred bugs should be third severity or lower (you don't want to ship a product
that can not install, do you?)
 

garyk1968

New Member
Licensed User
Longtime User
I think you need to get into the MVP (minimum viable product) mindset. Nowadays its about getting something out there and then refining as you go. This is reinforced even more if you are constraint commercially, i.e. you need to get some revenue. No point spending 12 months on something to find no-one wants it when you could have delivered a functional subset and got the app out in 3 months and spend 9 months tweaking it so people *do want it*.

Gary
 

HotShoe

Well-Known Member
Licensed User
Longtime User
The model for many large software companies is to use the end users as beta (and in some cases alpha) testers. It saves a lot of time to market and it's more efficient for them. This started some time back in the early 90's as far as I can recall.

As far as the original question posted by TDS, you take more time because as you learn more and more, you see how much can go wrong in a hurry... :)
 

hookshy

Well-Known Member
Licensed User
Longtime User
I can say I published 8 app in first 5 month from opening developer account
10 month later I have 8 app ... could not published anything due to updates wonder when it will come the 9th ..
so ... :)
 

Bob Rassle

New Member
Licensed User
Longtime User
The key to speeding up development lies in two areas, careful planning (yes, I know we all hate this part, but do it well and when you come to coding the app, it is little more than a typing exercise) and building your own libraries, and in particular Classes.

During development of any app, even for your own use, keep your eyes open for anything that could be reusable, then wrap it in a class and make this a part of your library.

Lets take an example,
You are writing a database app that takes it's data from a file location on your site, then displays it to the user in a table.

This is begging for several Classes,

Class DataBaseControl - Made nonspecific so that it can handle all of your databases, with just a file location being needed. From there you add
- Collect headers (columns) for the SQL statement that you passed to it
- Colect column types
- Collect data
Now every project that contains a DB has a head start.

Dealing with the file location can be a class of it's own, depending on the string, it may be a local file or ftp or html, But one class to work it out and handle it all.

Then the view, which is going to be clearly many classes,
Cell, Row, Column, text scaling and others.

All are made ready to plug into any app that needs it.

In my UNIX days the key to all development was "All functions must be tested with both good and bad data and must behave well with both. The bad data might mean 'Stop execution", but it must be your own code that calls a stop and not the operating system.

In the same way as you build your own libraries, test all with good and bad data, and ensure they behave properly. B4A helps this with the ty-catch, but you can reduce the number of these simply by checking the data is of the right sort and in the range acceptable to this function call.
 

LucaMs

Expert
Licensed User
Longtime User
I agree.

I would also add: a good organization of our "blocks" (classes / libraries), a utility db-based that does this.

But I want to emphasize that, even during the development of a reusable library or classes such as those you described, we try to achieve perfection, adding every possible variation and function and we will never be satisfied either of these blocks!

I think thedesolatesoul meant this last part and... I agree with him :(
 
Top