function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
DanBCDanBC 

Starting on the right foot (please help)

Hi everyone.

 

Wow - an overwhelming amount of information.  Excellent in so many ways, a little  disconcerting for someone new. While I practically know very little about Force.com, I have an extensive background in BI, with a good understanding of tools like Informatica and Cognos. 

 

 

In a nutshell - I have an app idea (who doesn't ...), but I honestly don't know where to start.  Watched a few YouTube videos, read some posts - but still need  help.  My gut tells me that a good place to start would be a solid DB model with:

 

  • standard objects left untouched
  • standard objects repurposed (renamed etc)
  • standard objects modified (e.g. adding custom fields)
  • custom objetcs

This model would have to be based on what the app would want to accomplish, perhaps expressed as use cases initially.  I am sure that some process maps would be useful sooner than later.

 

How should I reconcile all of the above - I need some blueprint of the app before I jump into "no-coding" it.  Also, any specific tools in Force.com that would allow me to keep all these requirements in one place, mark them as complete as I implement them, divide them up in releases etc?

 

If anyone knows of a logical and comprehensive resource on architecting an app - please let me know.

 

Thanks, much appreciated!

Dan

Best Answer chosen by Admin (Salesforce Developers) 
Chris760Chris760

I would recommend this order:

 

1) Do the complete Force.com Workbook to understand all the basic tools available to you to make an app on the cloud platform.  You need to at LEAST do that to know your basic tools.  Once you understand what you can do with standard salesforce "clicks not code" automation in that workbook, as well as how data is basically structured via objects and fields, you'll be able to start coming up with a general idea of how to build your app.  But it would be amature city until you really understand your APEX, because that's where all the magic happens. So the next step would be...

 

2) Do the Apex Workbook to learn all the basics of how to code.  Once you grasp classes and triggers and methods, you can really start cooking with gas.

 

3) At that point, you'd no longer refer to your workbook when you have problems, and instead, refer to your Apex Handbook, which tells you how to do anything you can imagine using APEX.

 

Then if you also want to do crazy layout / front end design "what the user sees and how they interact with the database" type stuff, you would need to do the Visualforce Workbook, and then once you've gotten through that, you'd refer to your Visualforce Handbook every time you want to do some crazy visualforce thing.  What's nice is that every one of the handbooks have a "Search" function like google, that aggregates the most relevant answers to your questions.

 

For myself, the Apex Handbook is my holy bible.  I quote it regularly every time there's a plague.

 

I know what it feels like to want to skip right to the part where you start building your awesome app, but without knowing all your tools and how to structure your app correctly using all the tools available to you, it would be a little like a guy trying to design a skyscraper because he's been inside several tall buildings before and knows what the walls look like.  Sure, you can draw up "pictures" of how you want your building to look, but you'll still be depending on someone who knows his Force.com, APEX, and to a lesser extent Visualforce, to actually do the *real* designing.  

 

It also means you'll be a lot less creative when you design your app because you won't know all the tools at your disposal to "do anything you want to do", and you'll have to *hope* you're working with a good APEX programmer (and not to disparage my fellow apex programmers... but 80% of them are crappy).  If you want something done TRULY right, you need to CARE about what you're doing... and the only way that you truly care about something, is if it's "your baby", and you're making it yourself.

 

You have the first (and hardest) thing already accomplished though... you have a project that you really care about.  If you want, you can easily wield that in to the motivation needed to learn everything you need to learn in order to build your app.  When I teach the most "focussed" people who have no interest in learning APEX how to program, it takes them a year.  When I teach the most ADD kid you could imagine who has TRUE interest in how to program, he learns it all (starting from nothing) in less than a month and becomes the best there is.  It depends 100% on whether you have a light at the end of the tunnel to motivate you to get to the end, and eat, drink, and breathe it in the process.  If that light for you is your app, then wield it to your advantage, and build your app the right way... or, show someone your drawings and hope they design it the right way.  Either/Or.


Just my two cents.  Good luck.

 

PS. When I design a system or app, I use draw.io to map the object relationships and lookups.  That would be the closest thing I use to making a "blue print" that people can see that's also capable of helping me organize my thoughts.  Half the time though, my best ideas come from building a rough version of an app, and that's when I suddenly have a "Eeurka!" moment where I see the direction I need to truly go in to make a usable version of my app (and I may have several "Eureka!" moments where I change direction several times before getting to the finish line).  

 

So be prepared to "start with a plan", but you'll likely throw it out the window and remake your plan various times during your journey.  Programming in this mehod is called Agile and usually results in a far superior product, compared to planning out every detail from beginning to end (often without a clear picture of how to accomplish each goal along the journey that future goals depend on), which is called Waterfall and usually has FAR more problems and delays in getting to the finish line as a result.

All Answers

Ranu JainRanu Jain

You can start reading Force.com Workbook. 

DanBCDanBC

Thanks Ranu,

 

It seems to me like the workbooks are diving very quickly into "doing".  What I am after is the "solution architect" path, going hand in hand with business requirements.  

thisisnotaprilthisisnotapril

Hi Dan! Welcome to the Force.com Community. :)

 

Workbooks are a great way to start and get a feel for how things work; I'd also suggest you register for one of our Force.com Friday sessions if you haven't already. We run them each Friday and they're a short 30-minute look at building an app on Force.com; AND you get to ask questions. http://www.developerforce.com/events/webinars/forcedotcomfriday/registration.php?d=a1K30000002UGY0

 

You may also want to check out our pages on App Logic & Database - lots of articles, etc that apply to those topics all in one place. http://wiki.developerforce.com/page/Database

http://wiki.developerforce.com/page/App_Logic

 

sandeep@Salesforcesandeep@Salesforce

You need to get started with very basic knowledge like 

1. getting understaing over cloud computing ( why you should opt this platform)

2. getting touch with APEX and VISUAFORCE as back hand and front hand respectively.

3. then build some sample Apps there is very famous App first App in force.com platform. 

Force.com Workbook: Get Started Building Your First App in the Cloud

 

 

Chris760Chris760

I would recommend this order:

 

1) Do the complete Force.com Workbook to understand all the basic tools available to you to make an app on the cloud platform.  You need to at LEAST do that to know your basic tools.  Once you understand what you can do with standard salesforce "clicks not code" automation in that workbook, as well as how data is basically structured via objects and fields, you'll be able to start coming up with a general idea of how to build your app.  But it would be amature city until you really understand your APEX, because that's where all the magic happens. So the next step would be...

 

2) Do the Apex Workbook to learn all the basics of how to code.  Once you grasp classes and triggers and methods, you can really start cooking with gas.

 

3) At that point, you'd no longer refer to your workbook when you have problems, and instead, refer to your Apex Handbook, which tells you how to do anything you can imagine using APEX.

 

Then if you also want to do crazy layout / front end design "what the user sees and how they interact with the database" type stuff, you would need to do the Visualforce Workbook, and then once you've gotten through that, you'd refer to your Visualforce Handbook every time you want to do some crazy visualforce thing.  What's nice is that every one of the handbooks have a "Search" function like google, that aggregates the most relevant answers to your questions.

 

For myself, the Apex Handbook is my holy bible.  I quote it regularly every time there's a plague.

 

I know what it feels like to want to skip right to the part where you start building your awesome app, but without knowing all your tools and how to structure your app correctly using all the tools available to you, it would be a little like a guy trying to design a skyscraper because he's been inside several tall buildings before and knows what the walls look like.  Sure, you can draw up "pictures" of how you want your building to look, but you'll still be depending on someone who knows his Force.com, APEX, and to a lesser extent Visualforce, to actually do the *real* designing.  

 

It also means you'll be a lot less creative when you design your app because you won't know all the tools at your disposal to "do anything you want to do", and you'll have to *hope* you're working with a good APEX programmer (and not to disparage my fellow apex programmers... but 80% of them are crappy).  If you want something done TRULY right, you need to CARE about what you're doing... and the only way that you truly care about something, is if it's "your baby", and you're making it yourself.

 

You have the first (and hardest) thing already accomplished though... you have a project that you really care about.  If you want, you can easily wield that in to the motivation needed to learn everything you need to learn in order to build your app.  When I teach the most "focussed" people who have no interest in learning APEX how to program, it takes them a year.  When I teach the most ADD kid you could imagine who has TRUE interest in how to program, he learns it all (starting from nothing) in less than a month and becomes the best there is.  It depends 100% on whether you have a light at the end of the tunnel to motivate you to get to the end, and eat, drink, and breathe it in the process.  If that light for you is your app, then wield it to your advantage, and build your app the right way... or, show someone your drawings and hope they design it the right way.  Either/Or.


Just my two cents.  Good luck.

 

PS. When I design a system or app, I use draw.io to map the object relationships and lookups.  That would be the closest thing I use to making a "blue print" that people can see that's also capable of helping me organize my thoughts.  Half the time though, my best ideas come from building a rough version of an app, and that's when I suddenly have a "Eeurka!" moment where I see the direction I need to truly go in to make a usable version of my app (and I may have several "Eureka!" moments where I change direction several times before getting to the finish line).  

 

So be prepared to "start with a plan", but you'll likely throw it out the window and remake your plan various times during your journey.  Programming in this mehod is called Agile and usually results in a far superior product, compared to planning out every detail from beginning to end (often without a clear picture of how to accomplish each goal along the journey that future goals depend on), which is called Waterfall and usually has FAR more problems and delays in getting to the finish line as a result.

This was selected as the best answer