Monologue
As I write this question I have already prepared myself psychologically that very soon this question will be flagged and closed as being too broad and general than specific. I am prepared for that as I feel the same too. Nonetheless I must ventilate my doubts to the community which has been indispensable to my survival in IT.
Context
Designing a ticket based knowledge management system
Problem
While reading about ITIL V3 and IT Service Desk I pondered that if I were to build a trouble ticket based knowledge management system where users can raise tickets for any problem/incidents and get its resolution which can then translate to a knowledge base then what could be the approach?
The traditional ITIL V3 jargons of Incident/Problem---> Service---->Resolution------> Knowledge actually are too conservative and cumbersome to my opinion.
When I compare that to the Stackoverflow design of handling questions/answers I find the latter to be far impressive. Stackoverflow has the same concept of Questions (read tickets) and corresponding answers (read resolutions) to a question (again read ticket).
What are some of the good designs for knowledge management against a trouble ticket?
Isn't stackoverflow another great knowledge management system against tickets (questions)?
Related
I am a beginner but know the basics and am peering into more advanced data mining and stored procedure routines. I have learned small concepts that mimic C# Design Patterns such as looping structures but have not seen much (on the web) about SQL Design Patterns.
I ask because I ran across this book http://www.amazon.com/SQL-Design-Patterns-Programming-Focus/dp/0977671542 but have also always been told that you will find better information on sites like Stack than in a book.
I've been told that for programming professionals Design Patterns are a must. Is this also the case for SQL programmers?
*(Wasn't sure if this belonged on Meta or not. It's not a question about the site but is a general discussion question)
Design patterns for SQL are very useful as well. Is it any good to gather data if you do not store it properly and retrieve it back to make useful decisions?
I have found Joe Celco's books very useful on database design patterns. http://www.amazon.com/Joe-Celko/e/B000ARBFVQ
Of course you should read books. In the first place they tend to be written by people recognized for their expertise (not just anyone who happens to log into the site) so the information is likelier to start out as more accurate. Then they have editors who help make the presentation of the information better. Finally a good book should discuss in more depth than an SO post can do and thus you will get information at a deeper level than just the code to fix your current problem. This means your understanding will grow and you will know why you would do X vice Y and be able to expand that understanding to new problems.
DBAs who don't read books probably don't understand the internals of how the database works very well and are likely to be less effective than those who do read in depth about their profession.
A book I recommend is:
http://www.amazon.com/SQL-Antipatterns-Programming-Pragmatic-Programmers/dp/1934356557/ref=pd_sim_b_1
Also books on performance tuning are critical to read if you want to use good patterns in your SQL. A huge number of performance problems are caused by badly designed SQL. YOu should know what works well and what doesn't. Those tend to be databse backend specific, so look for ones realting to the type of databases you support.
I work on a project known as the Security Development Lifecycle (SDL) project at Microsoft (http://microsoft.com/sdl) - in short it's a set of practices that must be used by product groups before they ship products to help improve security.
Over the last couple of years, we have published a great deal of SDL documentation, as customers ask for more information about what we're doing.
But what I'd like to know is:
What are you doing within your organization to help improve the security of your product?
What works? What doesn't work?
How did you get management to agree to this work?
Thanks.
Honestly, Reading your book was a good start. :-)
Responding to your questions:
Crypto is a hobby of mine that I sometimes blog about (e.g. on TLS and AES). After writing my own implementation of AES, I learned enough to know beyond a reasonable doubt that I should never use my own implementation but rather use the ones written by the CryptoAPI and OpenSSL guys.
Code reviews where people that are good at security issues are marked as required.
Having a class on-site with labs to raise awareness of issues mentioned in your book as well internal mailing lists discussing new issues.
Several folks listen to the Security Now podcast to keep current on what types of issues are out there and what is getting attacked. This indirectly affects design.
Except for an on-site course and buying the code review tool, none of these require management approval.
I'm an indie mac developer, but also a platform security evangelist: I'm the author of Pro Cocoa Application Security published by Wrox. In that book I champion the secure dev technique I use myself: it's based on the Swiderski and Snyder threat modeling, but with two changes. I make it lighter weight by considering which entry points access which assets without using DFDs. I also put more focus on identifying users and misusers, which I think makes it more applicable to shrinkwrap software.
As far as tool support is concerned, I use the Xcode static analyzer (based on clang), but have found it doesn't detect some common vulnerabilities. I did file bugs though :-). I also always use the gcc _FORTIFY_SOURCE macro. There aren't good Mac risk analysis tools but I'm working on that... ;-)
I've spoken on security to Mac devs at conferences and in podcasts and gotten plenty of feedback, if you want me to clarify anything I've said or are interested in the community feedback please ask in comments. Private questions are welcome to (though I'd prefer to stay on the forum): iamleeg at securemacprogramming dot
com.
We think before we code. Strangely enough, it avoids many bugs, including those which are exploitable by adverse parties and henceforth known as "security holes".
Part of the trick is not letting anyone near a keyboard unless he has a solid amount of experience and expertise.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
Is there any website specifically for sharing and accessing actual software development processes implemented in software organizations?
There are lots of resources that give advices and descriptions for implementing these processes. They are very useful. But I think having actual example process definitions would be very useful as well. Specifically, I am now looking for an example process definition in CMMI. I overviewed several books but none of them presents any specific example implementation.
I think the authors are probably concerned that the readers might just copy these process definitions without understanding specific customization decisions in them. They are very rightful in this concern. But anyway, I think this is an important need for general software community. Understanding and interpreting an example document properly should be the responsibility of the reader.
If you don't know any good resource that shares specific implementations of the processes, what do you think about this need? Don't you think that we, software engineers and developers, should share our process definitions as we share our code?
There is a good wikipedia article with a lot of resources. Also searching for "UCM Workflows" on IBM Rational web would lead to good examples, I'd rather not deep link into their page. The question is how far into detail you want to go into the process. Most resources available will only give you a rough overview of basic development processes.
What you mean by examples is probably going into the details of specific implementation of such development process. For larger and established software development companies their development process will most likely not be readily reusable, because it will involve many custom made tools and configurations and the process itself could be in some cases considered proprietary, giving the company a competitive edge over others. Going into details about the process could also pose a security risk, because it would reveal a lot about the company infrastructure. So I don't think you would find much in form of examples from successful software development companies and what you find is either too general or written by theory-crafters.
This is a field of special interest for me for almost a decade now and I only ever found bits and pieces published about specific processes used by major software corporations. I would certainly welcome a forum to share experience with other professionals in this field.
Try looking at EPFC - Eclipse Process Composing Framework, there are some example processes, tools and best practices to develop them.
There are merits in providing some sample templates which would assist someone getting started. The limitation is that it could force the user to adopt the templates without thinking about the application.
Most methodologies adopt a 'guideline' approach with some tailoring. For example, the RUP system, promoted by Rational (now IBM) traditionally suffered from the assumption that it was only applicable to large scale projects. This prompted discussion on how RUP can be applied to a one person project. Of course it takes work and effort and if you are a small project team sometimes tailoring the methodology could overshadow the project; i.e are you trying to build a methodology or a product ?
As for samples some examples are:
Agile Unified Process - gives good examples of both process, artifacts and also commentary on the process and it's application,
Open Unified Process - again samples, artifacts and easily navigated system.
I do not know of such a "process repository". I only see general description like this one.
Note: While the CMMI implementations I have come across are quite tailored for a specific enterprise/environment, I found them truly effective when evaluated/challenged.
In that regard, the study Six Sigma and CMMI interesting, not so much as a practical example of CMM, but rather as a way to put CMM in perspective.
The OPEN Process Framework Repository Organization's web site contains an online repository with over 1,100 method components.
It doesn't contain final methods because, according to method engineering precepts, you must compose your methods from these components depending on your product, project and organisational needs.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I learned about Microsoft BizSpark the other day and started the sign up process. Has anyone else heard about it or had success with it?
I can't speak for BizSpark specifically (it's so new), but Microsoft has had the similar Empower program in place for 5 or so years. When our company was originally getting started, we joined the program (and participated for two years) and it was an excellent program.
The main benefit, of course, is that you get access to MSDN Subscriptions at such a low cost. Aside from that, though, it put us in touch with the local Microsoft office and gave us a clear path to working toward the typical ISV Partner relationship. You also get some technical support incidents, which are handy when/if you need to escalate an issue you're running into.
The requirements for Empower were/are pretty straightforward... basically commit to releasing a commercial software product based on the current Microsoft stack within two years.
Hope that helps... I look forward to hearing more about how BizSpark is different - or if it's simply the next evolution of Empower.
Well I have just signed up... yes of course there is an "end game" amount to pay.. but if you were going to use Microsoft technologies anyway.. then it's an awesome deal.. I have the software now (today), and there is everything I need to develop the project I am working on... Open source is excellent, don't get me wrong.. but you have to decide for the right reasons...
I think it is a great initiative, they are giving away the highest (most expensive) licenses of Visual Studio and VS Team System. With Empower you get Visual Studio Professional Edition with MSDN.
It is important to point out that this is NOT intended for consultatnts, there is a seperate program called Microsoft Action Pack Subscription that is more geared toward that audience. The Bizspark program is for software vendors, I suppouse it will have some kind of requirement similar to what Empower had, where you have to release commercial software within certain time period.
Let us know how your enrollment goes...
I joined it and empower recently. I think it is a great deal. I had an old MSDN set of software I was using and wasn't relishing the thought of spending all that money for my startup that has no current revenue.
Apparently MS really wants to get back to enticing developers to its platform.
One of the downsides I could see (or upsides depending on your view) [and this requires a health cynicism] is that MS uses this program to
identify potential markets for it to jump into and trounce the competition
identify startups it wants to purchase.
It has all your information in its database - the type of business, etc.
I still joined - no big deal, but for those who already think MS if the big bad wolf this might rub them the wrong way.
I think BizSpark is a great opportunity for startups which either
know they will use Microsoft technology
doesn't know what technology to use
The ones who doesn't know which software tools or programming language to use can test the Microsoft ones along with Open Source or other freely or inexpensive alternatives.
This way they can choose the technologies which suit them best - also when it comes to expenses for licenses - and remember to calculate the time you use to manage the licenses too.
The most enjoyable greetings
Claus Agerskov, SALDI - the Danish Open Source ERP
My $0.02 is that it's a trap. MS knows that many startups, especially the ones without venture capital (which in my book makes them "real" startups), are flocking to open source technologies both because of the cost savings and the control over your destiny -- the ability to fix bugs, modify things, and prevent vendor lockin that are the best parts of open source. MS is trying to trick them into becoming locked in. I'd steer clear. But I'd also steer clear of venture capital for similar reasons. IMHO, a startup that is going to actually go places (more than just being acquired and becoming a money sink like most bubble companies) is founded by a small group of knowledgeable people and funded out of those people's own pockets. Doing what you love because you want to, not because you're getting rich at it is why they have the drive to succeed and innovate that bigger companies don't have.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I've been working with applications interfacing with SAP via a web service for a little while now and I want to get into programming the BAPI's behind the web services as well. My company has been using a SAP consultant for the BAPI programming and I'd like to move into filling that role also.
I have a decent amount of experience with the core functionalities of SAP as an end user, so I'm not completely new there. But I've never done any BAPI programming before and I've had a hard time finding good beginner guides. I'd like to find something for experienced programmers that takes you from the SAP equivalent of "hello world" to writing business critical BAPIs.
I've heard that BAPI coding is similar to coding in SQL, is that true?
Also, I'd like to find a free online guide, but I realize that might be wishful thinking so any comprehensive books would also be helpful.
I'm not sure about online resources, but there are a couple of quite good books to learn ABAP programming, you'd be looking for ABAP basics and/or ABAP objects (the latter one sounds better and more "advanced" but is typically just a more modern version of the language). One suggestion I've used in the past that is going quite a long way is this book. As these are "Enterprise books", be prepared to spend a bit more money than for a paperback book.
Topics that should be covered:
Data dictionary (SAPs term for definining tables, structures etc.)
Report programming
GUI programming (not really required)
functions (not sure about the English translation for "Funktionsbaustein", it is a function with parameters etc,. but defined in the data dictionary)
transactions
This would be some basics you should know before advancing to understanding BAPIs ..
BAPIs are just SAP provided functions (coded in ABAP and extensible) that are more "stable" between releases (i.e. they do not change all that much) and that can be called from within a SAP system or from "the outside" (either another SAP system or a non-SAP program).
SAP provides a lot of BAPIs (you can add your own if you want) that allow programs to do a lot / more of the stuff that users can do through the SAPGUI. Even though SAP's preferences are changing "daily", it is the preferred way of programming the SAP system on a higher level than just ABAP, comparable to plain Java vs. programming with an elaborate class library.
A lot of ABAP programming is like working in a 4GL (that's why it used to be called ABAP/4), lots of handling data you are reading/writing to a database, but also outputting that data to a user and handling user input. I'd describe it as a weird mixture between COBOL and VB ,,, and certainly a good skill to have.
What your developer calls 'BAPI coding' really is RFC coding.
BAPI's are an object oriented approach to coding where each method is an RFC.
If you want to write RFC (Remote Functional Calls), then there is this good step by step RFC tutorial:
http://help.sap.com/saphelp_nw04/helpdata/en/26/64f61dfa8911d386e70000e82011b8/content.htm
(Only step 1 and 2 are of real importance to you)
Biggest beginner errors is:
Not setting the remote callable flag
Beware though, ABAP seems deceptively easy and I've seen terrible things written by developers who thought that knowing the syntax and SE11 was enough. As a junior ABAPer you should always have your specs/code vetted by a senior ABAP coder.
There are some specifics around BAPI programming as well - it's not just that the interface is stable or a fancy name for an RFC function module.
If a remotely-callable ABAP function module is to be called a BAPI, then it must meet certain transactional criteria (ACID).
See http://help.sap.com/saphelp_nw04/helpdata/en/a5/3ec8654ac011d1894e0000e829fbbd/frameset.htm